summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-03-01 17:35:59 +0900
committerMichel Dänzer <michel@daenzer.net>2017-03-02 16:13:08 +0900
commitcc9d6b7db9c2078be1e530a64af6d517c6a42024 (patch)
tree2c4fafcec717e4911f7de98d2ab322868d64e6a7 /src
parent0a12bf1085505017068dfdfd31d23133e51b45b9 (diff)
Move DPMS check from radeon_scanout_do_update to radeon_scanout_flip
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.
Diffstat (limited to 'src')
-rw-r--r--src/radeon_kms.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index c2089eba..572dfcc8 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;