Hi everyone,
today I noticed that with X server 1.15.1 and current xf86-video-ati
master that page flipping won't work any more after I switched the mode
using xrandr. It looks like Ilija Hadzic already stumbled over the same
issue back in 2012 but didn't reported it upstream (at least I couldn't
find any reference to it):
https://github.com/ihadzic/vcrtcm-doc/blob/master/patches/X_1_12/0001-xf86-crtc-HACK-do-not-touch-DPMS-in-xf86DisableUnuse.patch
Basic problem is that xrandr calls xf86DisableUnusedFunctions while
switching the mode which in turn calls the DPMS off function which is
then never turned on again. This results in both page flipping getting
disabled and vblank handling not working any more.
Attached is a workaround for xf86-video-ati which just turn DPMS on
again when the mode set happens, but I'm pretty sure that this isn't the
right solution to the problem.
Ideas?
Thanks in advance,
Christian.
>From 18b745f0ea94c3f7048d11ef5b86b652019c9fed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <[email protected]>
Date: Sat, 26 Apr 2014 19:39:46 +0200
Subject: [PATCH] workaround for xrandr turning DPMS off, but never on again
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König <[email protected]>
---
src/drmmode_display.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index fc99128..a0a1ea1 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -457,6 +457,9 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
uint32_t tiling_flags = 0;
int height;
+ /* workaround for xrandr turning DPMS off, but never on again */
+ drmmode_crtc_dpms(crtc, DPMSModeOn);
+
if (info->allowColorTiling) {
if (info->ChipFamily >= CHIP_FAMILY_R600)
tiling_flags |= RADEON_TILING_MICRO;
--
1.9.1
_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati