From: Michel Dänzer <[email protected]>

When radeon_scanout_do_update is called from
drmmode_crtc_scanout_update, drmmode_crtc->pending_dpms_mode may still
be != DPMSModeOn, e.g. during server startup.

Fixes intermittently showing garbage with TearFree enabled.

Signed-off-by: Michel Dänzer <[email protected]>
---
 src/radeon_kms.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index a0961199c..a9fc0676c 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -882,7 +882,6 @@ radeon_scanout_do_update(xf86CrtcPtr xf86_crtc, int 
scanout_id)
     Bool force;
 
     if (!xf86_crtc->enabled ||
-       drmmode_crtc->pending_dpms_mode != DPMSModeOn ||
        !drmmode_crtc->scanout[scanout_id].pixmap)
        return FALSE;
 
@@ -1069,7 +1068,8 @@ radeon_scanout_flip(ScreenPtr pScreen, RADEONInfoPtr info,
     uintptr_t drm_queue_seq;
     unsigned scanout_id;
 
-    if (drmmode_crtc->scanout_update_pending)
+    if (drmmode_crtc->scanout_update_pending ||
+       drmmode_crtc->pending_dpms_mode != DPMSModeOn)
        return;
 
     scanout_id = drmmode_crtc->scanout_id ^ 1;
-- 
2.11.0

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to