dmorris
07-01-2002, 03:30 PM
I am using GL for a Windows application that needs almost-real-time control of the CPU. The polygon count is very low and I'm using fairly simple graphics, so it seems that the current limitation on my graphics performance is the time I have to block to call SwapBuffers().
On an ATI FireGL2, this operation seemed to be really fast (~100 microseconds for a small window size), but I'm also trying to use a GeForce4-based card (for cost and for what appears to be better dual-display support), for which the buffer swap time seems to be over a millisecond for the same window size. That's plenty fast to satisfy my frame rate demands, but that's a millisecond during which I'd like to use the CPU. My questions :
1) The first card is AGP; the GeForce4 is a PCI card. Is the difference in buffer swap time likely due to the difference in bus speed, or to a difference in the cards? (The FireGL2 does cost $800 more than the GeForce after all...)
2) Is there any hope of calling swapbuffers asynchronously either using standard GL tricks or using manufacturer-specific extensions? I've heard this is likely to be a component of the GL2.0 standard, but is there any way to do this now? I will play around with some thread-based approaches to doing the same thing, but I feel like I can't beat 1ms with that approach.
3) Does anyone here know whether DirectX provides any support for asynchronous transfers that might not be available yet in OpenGL?
Thanks...
-Dan
On an ATI FireGL2, this operation seemed to be really fast (~100 microseconds for a small window size), but I'm also trying to use a GeForce4-based card (for cost and for what appears to be better dual-display support), for which the buffer swap time seems to be over a millisecond for the same window size. That's plenty fast to satisfy my frame rate demands, but that's a millisecond during which I'd like to use the CPU. My questions :
1) The first card is AGP; the GeForce4 is a PCI card. Is the difference in buffer swap time likely due to the difference in bus speed, or to a difference in the cards? (The FireGL2 does cost $800 more than the GeForce after all...)
2) Is there any hope of calling swapbuffers asynchronously either using standard GL tricks or using manufacturer-specific extensions? I've heard this is likely to be a component of the GL2.0 standard, but is there any way to do this now? I will play around with some thread-based approaches to doing the same thing, but I feel like I can't beat 1ms with that approach.
3) Does anyone here know whether DirectX provides any support for asynchronous transfers that might not be available yet in OpenGL?
Thanks...
-Dan