Unable to disable Vsync with multiple graphics cards?

I have been running pretty old 270.x drivers because the newer ones changed the behavior where vsync is enabled by default now (NOOOO).

I have a triple monitor setup at work and it syncs to my lowest refresh rate monitor which is only 48Hz which is horrible for the other two (67Hz and 60 Hz).

I have tried adding:

nvidia-settings --load-config-only

to my xinitrc and also in kdm’s kdmrc file I tried adding:

Additional environment variables KDM should pass on to all programs it runs.

LD_LIBRARY_PATH and XCURSOR_THEME are good candidates;

otherwise, it should not be necessary very often.

Default is “”

ExportList=__GL_SYNC_TO_VBLANK=0

I wonder if its not taking effect as maybe these things environment variables dont work until after X is loaded? That is a problem as XGL is openGL based and what everything runs under and is pretty much the main process which is running =(

Nothing seems to work. beryl bench is still showing 48 FPS which is driving me nuts. With steam for linux coming out I really want to use newer drivers now. Anyone have any ideas on getting around this? An option in /etc/X11/xorg.conf would have been nice for over-riding this

I guess back in the day I tested this and found that it seems like it only forced vsync with multiple graphics cards in use. When I did a single display/single graphics output it did not happen:

http://www.nvnews.net/vbulletin/showthread.php?t=180612

I have even verified the environment variables are being set but vsync is still being enabled. Using the old driver I get 200-300 FPS after the first boot and with the newer ones I am stuck at 48 FPS:

root@sigoto: 03:27 PM :~# ps aux | grep X | grep -v grep | grep -v Box
root     17205 24.1  5.0 1385100 1257364 ?     R    15:22   1:12 /usr/bin/Xgl.actual -accel xv:fbo -accel glx:pbuffer -nolisten tcp -fullscreen -br +xinerama -nolisten tcp -dpi 75 :0 vt7 -auth /var/run/xauth/A:0-dH33XM
root     17218  0.9  0.1 111704 45912 tty7     Ss+  15:23   0:02 /usr/bin/Xorg -br vt7 -auth /tmp/.Xgl-auth-68Xx9z -nolisten tcp :93 -terminate
root@sigoto: 03:27 PM :~# cat /proc/17205/environ  | awk -F'_GL' '{print "__GL"$2}' | cut -c 1-21
__GL_SYNC_TO_VBLANK=0
root@sigoto: 03:28 PM :~# cat /proc/17218/environ  | awk -F'_GL' '{print "__GL"$2}' | cut -c 1-21
__GL_SYNC_TO_VBLANK=0

Any other way to disable vertical sync other than environment variables? They don’t appear to always work with everything.

Try “nvidia-settings --assign SyncToVBlank=0”. You can add it to xinitrc, and you can also try making a script for XGL that runs it with that setting.

Its chicken and the egg. nvidia-settings needs X to be running already and does not effect programs already running. The problem is My X (XGL) is using openGL and already has vsync enabled before nvidia-settings can be ran). This really sucks =(

Can you explain your usecase for Xgl in this day and age?

XGL is superior performance compared to AIGLX especially when your dealing with a an 18 megapixel desktop over 3 monitors.

XGL is required for compositing over multiple video cards.

These are the two main reasons…

This issue appears to be specifically with multiple video cards. The environment variables work when I am only using a single video card. I recently upgraded to a two geforce 650 ti boost’s and now I have to run newer drivers and this is seriously screwing me. Is there anyway nvidia could add the old behavior back via an Xorg option or a module load option?

Pretty pretty please?