[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Sync with vertical refresh does not work(?)



Can you share the code or some minimal sample that exhibits the problem for you? It would probably help if others could confirm they see the issue, and if it's a code issue, it would be easiest to see and solve having code.

if you can't, do you get the tearing in both windowed and fullscreen or just fullsccreen? do you get tearing with any/all of the examples? (like aliens.py)

On Fri, Jan 30, 2009 at 4:14 AM, Matthias Treder <matthias4all@xxxxxxxxxxxxxx> wrote:
Hi.

I saw a number of similar posts here and elsewhere on the web, but it
didn't really answer all my questions.
I run an experiment wherein I have to present a number of objects
(each a circle with text on it). At certain poins in time, objects
flash on and off (the circle radius and font size is increased, I wait
5 frames, and then the circle radius is decreased again). I
implemented each object as a Sprite, so I call the update method.
I use fullscreen mode, the objects are relatively large (circle radius
60-70 px) and arranged in a circle spread across large parts of the
screen.

PROBLEM: It seems there is no sync with the vertical screen refresh.
My objects are sometimes torn.

I tried about everything I could conceive of and I am kind of
desparate now. I tried using surface.convert() after I made the Sprite
images, and passing HWSURFACE and/or DOUBLEBUF (I also tried
SWSURFACE) to the set_mode() function. I tried out both
display.update() (passing the corresponding rectangles) and
display.flip(). In the nvidia settings I also enforced vertical sync.
Nothing seems to have any effect.

My questions:

1. Is this a hardware problem or a software problem?
2. In the pygame docs, it says that display.update() is a more
efficient version of display.flip(). However, does display.update()
also wait for screen refresh just as flip() is doing?
3. Is the problem due to the fact that I update large parts of the screen?
4. Is there are any way to get rid of that flickering?

Cheers,
Matthias

PS: I run Windows XP on my laptop @ 3GB RAM and 1,6 Ghz dualcore.
Graphic card is Geforce Go 7600. It's connected to an external TFT
monitor at a resolution of 1280x800@60 Hz.