[Intel-gfx] [RFC xf86-video-intel] sna: Call dirtyfb for all non-tear-free cases

Paulo Zanoni paulo.r.zanoni at intel.com
Mon Mar 21 19:26:55 UTC 2016

The sna_mode_wants_tear_free() function tries to detect FBC and PSR
based on Kernel module parameters. Currently it fails to detect FBC
due to the default enable_fbc value being -1. While this can easily be
fixed in the Kernel, I had a conversation with Daniel and he expressed
unhappiness with that solution, claiming that yet another different
code path just for a feature that should be transparent is not a good
way to go, and that we should do proper frontbuffer rendering.

So with this patch, we'll have the DDX issuing dirtyfb calls even if
TearFree is not enabled, fixing FBC when i915.enable_fbc=-1.

This fixes a bug that happens on SKL with FBC enabled: if you run
lightdm, your login/password won't appear as you type on your
keyboard. You have to move the mouse over the input box for them to be

Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
 src/sna/sna_driver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index b245594..84e8e55 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -654,7 +654,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int probe)
 	scrn->currentMode = scrn->modes;
-	if (!setup_tear_free(sna) && sna_mode_wants_tear_free(sna))
+	if (!setup_tear_free(sna))
 		sna->kgem.needs_dirtyfb = sna->kgem.has_dirtyfb;
 	xf86SetGamma(scrn, zeros);

More information about the Intel-gfx mailing list