summaryrefslogtreecommitdiff
path: root/src/sna/sna_dri2.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-06-28 12:26:55 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-06-28 15:07:35 +0100
commitbc369bbf4aed9df3c802bf8759bbdcdd1232f893 (patch)
tree4a3c44544edab52ebbdd362ca68509ee2f2c81fd /src/sna/sna_dri2.c
parentcac7c8dc4b154d37ff27430aa7b714ac84f3d092 (diff)
sna: Avoid recursion by testing shadow.wait
References: https://bugs.freedesktop.org/show_bug.cgi?id=96695 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_dri2.c')
-rw-r--r--src/sna/sna_dri2.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index dd4598c2..38384681 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -2513,7 +2513,7 @@ static void chain_swap(struct sna_dri2_event *chain)
switch (chain->type) {
case SWAP_COMPLETE:
DBG(("%s: emitting chained vsync'ed blit\n", __FUNCTION__));
- if (chain->sna->mode.shadow && chain->sna->mode.shadow_wait) {
+ if (chain->sna->mode.shadow_wait) {
/* recursed from wait_for_shadow(), simply requeue */
DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
if (sna_next_vblank(chain))
@@ -2608,7 +2608,7 @@ void sna_dri2_vblank_handler(struct drm_event_vblank *event)
/* else fall through to blit */
case SWAP:
assert(info->signal);
- if (sna->mode.shadow && sna->mode.shadow_wait) {
+ if (sna->mode.shadow_wait) {
/* recursed from wait_for_shadow(), simply requeue */
DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
} else if (can_xchg(info->sna, draw, info->front, info->back)) {
@@ -2654,7 +2654,7 @@ void sna_dri2_vblank_handler(struct drm_event_vblank *event)
info->pending.bo->handle, info->pending.name, info->pending.bo->active_scanout,
get_private(info->front)->bo->handle, info->front->name, get_private(info->front)->bo->active_scanout));
- if (sna->mode.shadow && sna->mode.shadow_wait) {
+ if (sna->mode.shadow_wait) {
/* recursed from wait_for_shadow(), simply requeue */
DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
if (sna_next_vblank(info))