summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2009-03-09 17:37:12 +0100
committerDanny Baumann <dannybaumann@web.de>2009-03-09 17:37:12 +0100
commit46960f12a9d213e5f0e841557e2ed2f7ea18cc79 (patch)
tree05231dbe74b9e77dc40dfcb9a5ed7186dba2c47e
parent5986d200330476b23b5ebdebdfed20d908e4089a (diff)
downloadworkarounds-46960f12a9d213e5f0e841557e2ed2f7ea18cc79.tar.gz
workarounds-46960f12a9d213e5f0e841557e2ed2f7ea18cc79.tar.bz2
Add workaround to force X-to-GLX synchronization, which should help for
the race condition in the XDamage protocol Nvidia users are suffering from.
-rw-r--r--workarounds.c3
-rw-r--r--workarounds.xml.in5
2 files changed, 8 insertions, 0 deletions
diff --git a/workarounds.c b/workarounds.c
index 5e0c221..f987fa0 100644
--- a/workarounds.c
+++ b/workarounds.c
@@ -198,6 +198,9 @@ workaroundsPaintScreen (CompScreen *s,
currentScreen = s;
+ if (workaroundsGetForceGlxSync (s->display))
+ glXWaitX ();
+
UNWRAP (ws, s, paintScreen);
(*s->paintScreen) (s, outputs, numOutputs, mask);
WRAP (ws, s, paintScreen, workaroundsPaintScreen);
diff --git a/workarounds.xml.in b/workarounds.xml.in
index 5eb072d..1648e88 100644
--- a/workarounds.xml.in
+++ b/workarounds.xml.in
@@ -53,6 +53,11 @@
<_long>Fix for broken GLX_MESA_copy_sub_buffer on XGL in fglrx.</_long>
<default>false</default>
</option>
+ <option type="bool" name="force_glx_sync">
+ <_short>Force synchronization between X and GLX</_short>
+ <_long>Force synchronization between X and GLX, which may help for window parts not redrawing correctly when using Nvidia drivers, but also may decrease performance.</_long>
+ <default>false</default>
+ </option>
<subgroup>
<_short>Window stickyness</_short>
<option type="bool" name="sticky_alldesktops">