summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Kleiner <mario.kleiner.de@gmail.com>2014-08-28 03:49:55 +0200
committerBen Skeggs <bskeggs@redhat.com>2014-09-01 08:50:41 +1000
commit6d49f3f7aaaec872b6f9841f744a0bf09cc98492 (patch)
tree585de10f9783a2c1315cbaca2f672c52957d4312
parent10729a442be3cf018c5806c95ec4218977917ef3 (diff)
dri2: Set default SwapLimit to 1 for double-buffering.
This used to be 2 for pseudo-triplebuffering on XOrg 1.12+. However, it caused problems like unthrottled swapping at up to twice the video refresh rate for redirected windows under desktop composition, which can't be easily fixed under dri2. Default to double-buffering. Users can override this, but dri3 provides better solutions for this. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--man/nouveau.man2
-rw-r--r--src/nv_driver.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/man/nouveau.man b/man/nouveau.man
index 0bf6e1e..129bb7f 100644
--- a/man/nouveau.man
+++ b/man/nouveau.man
@@ -124,7 +124,7 @@ OpenML OML_sync_control specification and will cause failure of software
that relies on correct presentation timing behaviour as defined in that
specification.
.br
-Default: 2 for XOrg 1.12+, 1 for older servers.
+Default: 1.
.SH "SEE ALSO"
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
.SH AUTHORS
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 6045095..4bad985 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1138,10 +1138,10 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
reason = ": Caution: Use of this swap limit > 1 violates OML_sync_control spec on this X-Server!\n";
}
} else {
- /* Driver default: Double buffering on old servers, triple-buffering
- * on Xorg 1.12+.
+ /* Always default to double-buffering, because it avoids artifacts like
+ * unthrottled rendering of non-fullscreen clients under desktop composition.
*/
- pNv->swap_limit = (DRI2INFOREC_VERSION < 6) ? 1 : 2;
+ pNv->swap_limit = 1;
reason = "";
from = X_DEFAULT;
}