PDA

View Full Version : Anyway to get Vsync without high CPU usage on XGL?


houkouonchi
April 26th, 2007, 12:59 AM
Vertical sync works great on AIGLX/Beryl but not on XGL. I know I can get vsync using XGL by using the nvidia environment variables but that gives me super high CPU usage. I was wondering if anyone knew a good way to get vsync with XGL/Beryl. I use XGL as it feels much faster and also because I don't get black windows after a while and is generally more stable for me. It looks like it is limited to limiting the framerate by 1 frame every x amount of milliseconds IE when you cap it to 60 it does it @ 62 because it can only do 1000/2, 500 FPS, 1000/3 333 FPS, 1000/4 250 FPS, 1000/5 200 FPS 1000/6 167 FPS, 1000/7 143 FPS, 1000/8 125 FPS, etc.... until 1000/16 = 62.5 FPS, or 1000/17 = 58.8 FPS, no way to get 60 FPS exactly. Turning on Vsync in the beryl config doesn't do anything other than limit to one of those sets of framerates.

Whups, forgot to post some system info:

My System:
Core 2 DUO E6600 3.6 GHz
4GB PC2-800 ram
Geforce 8800 GTX

Distro:
Sabayonlinux

Beryl:
0.1.9999.2

Nvidia drivers version
1.0.9755-r10

arthur_kalm
April 26th, 2007, 01:13 AM
May I ask why? Why do you want Vsync on in the first place?

houkouonchi
April 26th, 2007, 01:17 AM
[quote="arthur_kalm":b55b6]
May I ask why? Why do you want Vsync on in the first place?
[/quote:b55b6]

I want syncing to the vertical refresh rate (IE 59.98 or 60 FPS) so that I don't get tearing all over the place when dragging windows around but the biggest reason is the tearing when watching a video. I currently set beryl up to run @ 200 FPS which atleast minimizes the amount of tearing I get or atleast can see.

houkouonchi
May 4th, 2007, 10:17 AM
bump

Jupiter
May 4th, 2007, 06:18 PM
bump

this is a good question i been looking for an answer too
i don't use XGL full time because of this
i hope someone here has a clue how to solve this