On 03/18/2010 08:54 PM, DRC wrote: > The first thing I'd try is to enable tracing in VirtualGL (vglrun +tr) > and get a sense of how many glFlush() calls are being made for each > frame and whether front buffer rendering is in fact enabled. Next, try > commenting out the call to _doGLreadback() in VirtualGL's version of > glFlush() and see if that improves performance and whether it causes > visual anomalies.
It's doing a fair share of flushes.. but from monitoring the trace log output, I got the impression it's not wine or virtualgl, but something else on my laptop. While the game was running, the trace output stopped in the middle of some of the glFlush() calls and only resumed like 10+ seconds later.. during that time, I could only move the mouse pointer on the laptop, but not select any window or drag something. I get a similar effect when I just start my laptop, it automatically goes away after 2-3 minutes then everything continues to work fine for the rest of the day...haven't been able to find the cause as it was very tricky to debug.. but since I'm now able to 'trigger' the exact same effect when using wine+virtualgl and the wine patch I posted about earlier, I have a starting point to track the issue down. So the good news is, it's not VirtualGL afterall :P Sorry for the confusion. Anyway here's what the trace looked like when wine was running the game: [VGL] glXSwapBuffers (dpy=0x7c6c1f90(localhost:10.0) drawable=0x04c000a0 pbw->getdrawable()=0x04e0000a ) 3.504992 ms [VGL] glViewport (x=0 y=0 width=1024 height=768 ) 0.020027 ms [VGL] glPopAttrib (pbw->_dirty=0 pbw->_rdirty=0 pbw->getdrawable()=0x04e0000a ) 0.015020 ms [VGL] glFlush() [VGL] glFlush() [VGL] glViewport (x=5 y=5 width=501 height=501 ) 0.016928 ms [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glDrawBuffer (mode=0x00000405 pbw->_dirty=0 pbw->_rdirty=0 pbw->getdrawable()=0x04e0000a ) 0.010014 ms [VGL] glFlush() [VGL] glViewport (x=0 y=0 width=1024 height=768 ) 0.012875 ms [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glXSwapBuffers (dpy=0x7c6c1f90(localhost:10.0) drawable=0x04c000a0 pbw->getdrawable()=0x04e0000a ) 3.796101 ms [VGL] glViewport (x=0 y=0 width=1024 height=768 ) 0.020027 ms [VGL] glPopAttrib (pbw->_dirty=0 pbw->_rdirty=0 pbw->getdrawable()=0x04e0000a ) 0.017166 ms [VGL] glFlush() [VGL] glFlush() [VGL] glViewport (x=5 y=5 width=501 height=501 ) 0.014067 ms [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glDrawBuffer (mode=0x00000405 pbw->_dirty=0 pbw->_rdirty=0 pbw->getdrawable()=0x04e0000a ) 0.010014 ms [VGL] glFlush() [VGL] glViewport (x=0 y=0 width=1024 height=768 ) 0.012875 ms [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glFlush() [VGL] glXSwapBuffers (dpy=0x7c6c1f90(localhost:10.0) drawable=0x04c000a0 pbw->getdrawable()=0x04e0000a ) 4.189968 ms [VGL] glViewport (x=0 y=0 width=1024 height=768 ) 0.022888 ms [VGL] glPopAttrib (pbw->_dirty=0 pbw->_rdirty=0 pbw->getdrawable()=0x04e0000a ) 0.017881 ms etc etc ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ VirtualGL-Users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/virtualgl-users
