From 16820c4bfcfcdfad7c787bc4d04e03f08ee8f80a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 13 Apr 2018 10:40:45 +0100 Subject: [PATCH] sna: Handle wedged devices during sna_crtc_redisplay If the device is already wedged (no GPU), jump straight to the swrast path for performing the per-crtc transformations. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105420 Signed-off-by: Chris Wilson --- src/sna/sna_display.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index cf5a96f5..62cd3ab5 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -8816,7 +8816,8 @@ sna_crtc_redisplay(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo *bo) region->extents.x2, region->extents.y2, region_num_rects(region))); - assert(!wedged(sna)); + if (wedged(sna)) + goto fallback; if (priv->clear) { RegionRec whole; @@ -8861,10 +8862,13 @@ sna_crtc_redisplay(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo *bo) return; } - if (can_render(sna)) + if (can_render(sna)) { sna_crtc_redisplay__composite(crtc, region, bo); - else - sna_crtc_redisplay__fallback(crtc, region, bo); + return; + } + +fallback: + sna_crtc_redisplay__fallback(crtc, region, bo); } static void shadow_flip_handler(struct drm_event_vblank *e,