I am still unclear why the normal mechanism of setting VGL_FPS and disabling 
frame spoiling wouldn't work for you. Have you tried that? It's not that I'm 
opposed to this feature, but I also don't want to implement something that 
isn't actually necessary. Please make a case for why VGL_3DFPS solves a problem 
that couldn't be solved by using VGL_FPS with frame spoiling disabled.

On Jun 2, 2013, at 3:58 PM, Dyweni - VirtualGL-Users <t7nhgfds7...@dyweni.com> 
wrote:

> Hi DRC/All,
> 
> I have mucked around with the VirtualGL 2.3.2 code and have come up with a 
> solution that seems to work well.  I have to mention that the solution is 
> rather rough around the edges.  Some of the code / ideas were drawn from 
> Mesa's GLXGEARS program (i.e. calculating and reporting the current FPS and 
> the location to do so in).
> 
> Here is how this works:
> 1. User provides -fps3d <n> argument to vglrun.  N is any double 0 or greater.
> 2. The function 'glXSwapBuffers' (server/faker-glx.cpp) continually monitors 
> the current fps and adjusts 'delay' to keep the fps around the requested fps 
> value (the fps3d argument).
> 3. User can tweak the fps3d value via the vglconfig (CTRL+SHIFT+F9) GUI 
> utility.
> 
> I am sure that the algorithm for adjusting the delay can be improved.  It was 
> what I could come up with in the limited time I had today.
> 
> I have attached a patch that applies to VirtualGL 2.3.2.  Please feel free to 
> review / test and provide feedback.
> 
> ---
> Thanks,
> Dyweni
> 
> 
> On 2012-07-26 13:41, DRC wrote:
>> Since VirtualGL redirects the 3D rendering into offscreen buffers, there
>> is no concept of VSync, because there is no monitor involved until the
>> pixels are drawn on the client machine, and by that time, the 3D
>> rendering is already done.
>> In the current implementation, there is no way to limit the 3D rendering
>> rate except to disable frame spoiling.  Disabling frame spoiling couples
>> the 3D rendering and compress/send stages of the pipeline, so the frame
>> rate will be the lesser of (a) the VGL_FPS setting or (b) the rate at
>> which the client can process frames.  However, that's probably not what
>> you want, because you may experience "mouse lag" when frame spoiling is
>> disabled.
>> This issue has never come up, because in visualization apps, the frame
>> rate is ultimately limited by the sampling rate of the mouse, which is
>> generally 40-60 Hz.  I'm honestly not sure what would be the best
>> approach to applying a frame rate governor on the 3D side (a VGL_3DFPS
>> option, if you will.)  It might be as simple as putting a delay into the
>> buffer swap function.
>> What I'm wondering, however, is whether our long-term plans to replace
>> Pbuffers with FBO's and hidden windows might magically fix this, since
>> VSync might still work when rendering to a hidden window.
>> If anyone else has further insight, please share.
>> On 7/26/12 12:56 PM, Dyweni - VirtualGL-Users wrote:
>>> Hi All,
>>> I'm wondering if VirgualGL has support for VSync?  I know that VirtualGL
>>> has support to output only x frames per second, but that is different
>>> from VSync.
>>> I have a game (EVE Online) that can limit itself to the VSync.  In
>>> normal X, it limits itself to 60 FPS (my monitor refresh rate) thanks to
>>> VSync, and that keeps the CPU usage low.  However, when running on
>>> VirtualGL, it does not limit its FPS and they skyrocket to 120+ FPS
>>> which drives the CPU usage high.
>>> I would like to be able to lock the game to the VSync (say 60 FPS, to
>>> keep the CPU usage low) and then export x frames per second (as I do
>>> know with the -fps) switch.
>>> Is this possible?
>>> --
>>> Thanks,
>>> Dyweni
>>> ------------------------------------------------------------------------------
>>> Live Security Virtual Conference
>>> Exclusive live event will cover all the ways today's security and
>>> threat landscape has changed and how IT managers can respond. Discussions
>>> will include endpoint security, mobile security and the latest in malware
>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>>> _______________________________________________
>>> VirtualGL-Users mailing list
>>> VirtualGL-Users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> _______________________________________________
>> VirtualGL-Users mailing list
>> VirtualGL-Users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
> <0001-Support-limiting-3D-application-framerate-into-Virtu.patch>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2
> _______________________________________________
> VirtualGL-Users mailing list
> VirtualGL-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtualgl-users

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
VirtualGL-Users mailing list
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to