Buffer swapping

New Message Reply Date view Thread view Subject view Author view

From: Yves Strube (czys++at++ocag.ch)
Date: 09/26/2001 23:17:26


Hi,

I have a question concerning buffer swapping under Linux. I use
Performer 2.4 (or 2.4.2) and the NVIDIA driver version 1.0-1512 (or
1.0-1541). The problem is the same no matter which configuration I use.
I have a double buffered window and expect the buffer swapping to be
done during the vertical retrace. The NVIDIA driver offers the
environment variable __GL_SYNC_TO_VBLANK to let the GLX buffer swap
function glXSwapBuffers() do the swap during the vertical retrace. If I
start e.g. the town.perfly demo I oberve a horizontal "cut" in the image
where the upper part and lower part of the image seem not to display the
same frame. This looks to me as if Performer does not swap the buffers
during the vertical retrace?
I also know that Performer needs the GLX extension GLX_SGI_video_sync to
really detect the vertical sync. The NVIDIA driver does not implement
the server side of this extension so that it is not reported to
Performer. So I get the message "No vsync GLX extension. Emulating
vsync" when starting Performer with a notify level of 7. But I think
that this extension is only needed when having a locked frame rate to
determine the frame to call glXSwapBuffers(). So what I would like to
know is:

1. Does anyone else observe these cuts in the rendered image?
2. Does Performer call glXSwapBuffers() to swap the buffers (nm -D
libpf.so contains a glXSwapBuffers symbol)?
3. Is it correct that the emulation of the vertical snyc is not needed
when running Performer in FREE_RUN because the swapping is initiated as
soon as possible?
4. May the problem be solved by installing a swap buffer callback
(pfPipe::setSwapFunc()) and calling glXSwapBuffers() in this callback.
Then I have the problem that I do not know how to get the GLXDrawable
object to input in glXSwapBuffers()? Does glXGetCurrentDrawable() give
the correct GLXDrawable? Is there any Performer function to get the
GLXDrawable of the window (I did not find one)?

I hope to get some help...
Yves

-- 
Oerlikon-Contraves AG
Yves Strube, S-EMI
Birchstr. 155                                Email: czys++at++ocag.ch
CH-8050 Zurich                               Phone: +41 1 316 2675
Switzerland                                  Fax:   +41 1 316 2032


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Wed Sep 26 2001 - 23:10:39 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.