I've checked in support for the swap control extensions to the VirtualGL subversion trunk. Notable differences in my implementation relative to yours:
-- The swap interval is treated as a per-window attribute, per the spec, and stored in the pbwin instance corresponding to the drawable. -- glXSwapIntervalSGI() has the same effect as calling glXSwapIntervalEXT() using the current drawable (also per the spec.) -- The timing mechanism in glXSwapBuffers() reuses the code from the VGL_FPS implementation. -- The virtual refresh rate is controlled via a new environment variable, VGL_REFRESHRATE. This variable is documented in the User's Guide. Since this variable is not a commonly-used configuration option for VGL, it is not included in vglrun or in the vglconfig GUI. On 6/4/13 4:07 PM, Dyweni - VirtualGL-Users wrote: > > Attached is the third version of the patch. This adds the following > functionality to VirtualGL 2.3.2: > > - Advertise support for the GLX Swap Control extensions > (GLX_EXT_swap_control, GLX_SGI_swap_control). > - Modify glXQueryDrawable() to intercept the attributes > 'GLX_SWAP_INTERVAL_EXT' and 'GLX_MAX_SWAP_INTERVAL_EXT' and return our > simulated interval values. > - Modify glXSwapBuffers() to simulate the "sync to vblank" functionality. > - Add glXSwapIntervalEXT() to set the glxSwapInterval (required for the > GLX_EXT_swap_control extension). > - Modify glXSwapIntervalEXT() to set the glxSwapInterval (required for > the GLX_SGI_swap_control extension). > - Modify VGLConfig to expose the "Emulated Monitor Refresh Rate" setting. > - Modify VGLRUN to override the default value (60) of the "Emulated > Monitor Refresh Rate" setting. > > > --- > Thanks, > Dyweni > > On 2013-06-04 15:16, Dyweni - VirtualGL-Users wrote: >> Hi DRC, >> >> You are correct. Running vglrun with '-sp -fps 60' limits the 3D >> rendering rate as you described. The 3D rendering rate follows the -fps >> value. I didn't realize that -sp would lock the two rates together. >> >> I have another patch coming soon that implements GLX_SGI_swap_control / >> glXSwapIntervalSGI and perfects the delay within glXSwapBuffers. >> >> >> --- >> Thanks, >> Dyweni >> >> >> On 2013-06-04 14:13, DRC wrote: >>> Dyweni, >>> >>> I await your response on this before I proceed any further. I need to >>> resolve the matter of whether you simply forgot to disable frame >>> spoiling (which is what I suspect, since your previous messages made >>> no >>> mention of using the -sp switch to vglrun or setting VGL_SPOIL to 0) >>> or >>> whether, for whatever reason, disabling it did not lock the 3D >>> rendering >>> rate to VGL_FPS (and if that's the case, I'm not sure I understand how >>> that could happen.) >>> >>> >>>> You have to disable frame spoiling in order for the -fps option to >>>> limit >>>> the actual 3D rendering rate: >>>> >>>> Did you pass 'sp' to vglrun? >>>> >>>> vglrun -sp -fps {f} {application} >>>> >>>> I am more keen on the idea of implementing GLX_EXT_swap_control as >>>> opposed to implementing a separate frame rate governor, and I will >>>> look >>>> at your patch in detail. However, I also want to understand whether >>>> doing the above (using the existing frame rate governor without frame >>>> spoiling) accomplishes a similar effect and, if not, why not. >>> >>> ------------------------------------------------------------------------------ >>> >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> VirtualGL-Users mailing list >>> VirtualGL-Users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users >> >> ------------------------------------------------------------------------------ >> >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> VirtualGL-Users mailing list >> VirtualGL-Users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/virtualgl-users > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > > > > _______________________________________________ > VirtualGL-Users mailing list > VirtualGL-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/virtualgl-users > ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. A cloud service to automate IT design, transition and operations 2. Dashboards that offer high-level views of enterprise services 3. A single system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j _______________________________________________ VirtualGL-Users mailing list VirtualGL-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/virtualgl-users