I would still try commenting out the _doGLreadback() call. That should tell you whether the hang is being triggered by VirtualGL calling glFlush() in the underlying OpenGL subsystem or whether it is triggered by the glReadPixels() call.
On 3/18/10 6:38 PM, Karl Vogel wrote: > 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 ------------------------------------------------------------------------------ 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
