Confirmed.  To give some background, the way that VirtualGL normally 
detects window resizes is to monitor the application's X event loop for 
ConfigureNotify events, which are sent by the X server to the 
application whenever the window is resized.  However, this assumes that 
the application is selecting those events.  In the case of "normal" GLX 
applications, this is almost always a valid assumption, because GLX 
applications need to know whenever the window has been resized so they 
can adjust the OpenGL viewport.  There exists a class of applications, 
however, that separates OpenGL and X rendering into multiple processes 
(the old Chromium 3D parallel rendering package used to do this, and 
Abaqus/CAE was known to do this as well.)  To handle those cases, 
VirtualGL reads the event mask for the 3D window, and if this mask 
doesn't contain StructureNotifyMask (meaning that the application is not 
electing to receive ConfigureNotify events for that window), then VGL 
sets up its own event handler for those events.  The assumption is that, 
if the application isn't receiving ConfigureNotify events, then it must 
be handling them in another process.

However, in the case of Qt5, what I'm observing is that it behaves as if 
it isn't receiving ConfigureNotify events (or any events at all, for 
that matter) in the OpenGL rendering process, but the event mask for the 
3D window still contains StructureNotifyMask.  A cursory look at the 
code does not reveal why this is occurring, but I haven't given up yet.


On 7/25/14 5:17 AM, peter.ty...@csiro.au wrote:
> Hi All,
>
> We have been having trouble running OpenGL Qt5 apps with VirtualGL
> including 2.4 beta1.  One easily reproducible issue is the OpenGL
> examples supplied with Qt5 don’t resize with their windows when run with
> VirtualGL. This is seen with both Qt 5.3 we built ourselves and the Qt
> 5.2 shipped with Ubuntu 14.04 in the qtbase5-examples package.
>
> On Ubuntu running the following command and resizing the window produces
> six lines as per the trace below. Should we see a glXCreatePbuffer call
> if all is working properly?
>
> vglrun +tr /usr/lib/x86_64-linux-gnu/qt5/examples/opengl/cube/cube
>
> [VGL] glXMakeCurrent (dpy=0x006c75a0(:1) drawable=0x01400006
> ctx=0x0089fed0 config=0x00000135(0x135) drawable=0x01200003
> renderer=Quadro K2000/PCIe/SSE2 ) 0.036001 ms
>
> [VGL] glXSwapBuffers (dpy=0x006c75a0(:1) drawable=0x01400006
> pbw->getglxdrawable()=0x01200003 ) 1.675844 ms
>
> [VGL] glXMakeCurrent (dpy=0x006c75a0(:1) drawable=0x01400006
> ctx=0x0089fed0 config=0x00000135(0x135) drawable=0x01200003
> renderer=Quadro K2000/PCIe/SSE2 ) 0.014782 ms
>
> [VGL] glViewport (x=0 y=0 width=737 height=590 ) 0.006914 ms
>
> [VGL] glXMakeCurrent (dpy=0x006c75a0(:1) drawable=0x01400006
> ctx=0x0089fed0 config=0x00000135(0x135) drawable=0x01200003
> renderer=Quadro K2000/PCIe/SSE2 ) 0.010014 ms
>
> [VGL] glXSwapBuffers (dpy=0x006c75a0(:1) drawable=0x01400006
> pbw->getglxdrawable()=0x01200003 ) 1.435041 ms
>
> Regards,
>
> Peter

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
VirtualGL-Users mailing list
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to