When recovering from DPMS screen blanking, TearFree in my xorg configuration doesn't seem to have any effect anymore.
xf86-video-intel = 2.99.917+381+g5772556-1 on Haswell refresh
mesa = 10.6.7
How to reproduce
1. Enable TearFree: https://wiki.archlinux.org/index.php/Intel_graphics#Tear-free_video
2. Restart X and enjoy no tearing
3. Run: xset dpms force off
4. Resume from blanking
5. Enjoy your broken TearFree/tearing
Please attach your Xorg.0.log.
Created attachment 118323 [details]
Added the Xorg log. This happens with both UXA and SNA
If it helps: If I disable TearFree and enable compton with the glx backend, I get no tearing after unblanking
Also, the tearing seems to be most noticeable in firefox, with smooth scrolling on
It should be that the only way TearFree fails is when it is disabled by some allocation failure, or a failure whilst flipping. The latter is permanent (since the kernel is upset and we have no reason to expect it to recover) and logged (notable by its absence in the attached!). The former should be transient, and only noted in the debug logs. If you have the patience, recompiling with ./autogen.sh --enable-debug=full and attaching the massive Xorg.0.log following the failure would be very useful.
I'm having the same issue, see xorg.log with debugging enabled.
Created attachment 119186 [details] [review]
Always progess the shadow buffer after redisplay
Thanks, I can see what the problem is, just need to think carefully about the ramifications. The attached should help, but at the very least it is treating the symptom rather than the cause.
Created attachment 119198 [details] [review]
Always flag the shadow buffer after resetting it fr DPMS on
This should be the real fix!
Thanks Chris, it works.
And thanks for the bug report and feedback.
Author: Chris Wilson <firstname.lastname@example.org>
Date: Sun Oct 25 15:41:10 2015 +0000
sna: Always flag the shadow buffer after resetting it fr DPMS on
When switching the outputs back on, we show the current front buffer and
so for TearFree we always then need to flag the front buffer as active.
Failing to do so left us rendering straight onto the scanout, defeating
the notion of TearFree.
Signed-off-by: Chris Wilson <email@example.com>