One thing I'm curious about is how you were able to get Mesa and
VirtualGL to work together.  Mesa doesn't support Pbuffers, AFAIK.


On 7/18/11 7:47 AM, Mark Howison wrote:
> Here are the FB configs that it is grabbing when I use :0.0
> 
>    visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav  drw
>    id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat  typ
>   
> --------------------------------------------------------------------------
> 
> 0x7d  0 tc  0 32  0 r  y  .  8  8  8  0  4 24  0 16 16 16 16  0 0 None PXW
> 
> and when I use :0.1 (we have two M2050s)
> 
> 0xb0  0 tc  0 32  0 r  .  .  8  8  8  8  4 24  8 16 16 16 16  0 0 None PX
> 
> Are either of these static gray? I don't know how to interpret the
> different fields in this list. It seems strange that they are different,
> and that one has an "a" (alpha channel?) and the other doesn't.
> 
> We also see these null values in the dlopen calls (and no open of
> NVIDIA's libGL.so?):
> 
>   987  [VGL] dlopen (filename=NULL flag=257 retval=0x2aabf0398000)
>   988  [VGL] dlopen (filename=NULL flag=1 retval=0x2aabf0398000)
>   989  [VGL] dlopen (filename=/lib64/libc.so.6 flag=1 retval=0x2aabf1773000)
>   990  [VGL] dlopen (filename=/lib64/libdl.so.2 flag=1
> retval=0x2aabf03993d0)
>   991  [VGL] dlopen (filename=/lib64/libpthread.so.0 flag=1
> retval=0x2aabf1fdb4c8)
>   992  [VGL] dlopen (filename=libnvidia-tls.so.260.19.29 flag=1
> retval=0x2aabf21f75e8)
>   993  [VGL] dlopen (filename=NULL flag=1 retval=0x2aabf0398000)
>   994  [VGL] dlopen (filename=libc.so.6 flag=1 retval=0x2aabf1773000)
> 
> I don't know if they are relevant.
> 
> Thanks for your help,
> 
> Mark
> 
> On Jul 15, 2011, at 5:44 PM, DRC wrote:
> 
>> It's possible that, for whatever reason, it's not giving you a visual
>> with a depth buffer.  You can use 'vglrun +tr' and examine the trace
>> output to see what FB config ID is being mapped to the X visual whenever
>> the application calls glXCreateContext(), then you can run
>> '/opt/VirtualGL/bin/glxinfo -c' on display :0 (or whatever display
>> you're using as your 3D X server) to see what attributes that FB
>> config has.
>>
>> I just checked in a fix yesterday which works around an issue whereby,
>> under rare and somewhat hard-to-define circumstances, the nVidia GLX
>> client library would return a bizarre 128-bit StaticGray FB config
>> whenever VirtualGL tried to call glXChooseFBConfig() to obtain an FB
>> config for one of its Pbuffers.  The workaround is currently in the CVS
>> head and 2.2 stable branch (tag "stablebranch_2_2") if you want to try
>> it out.
>>
>> As far as performance, I'll give my standard spiel on that:
>>
>> VirtualGL's default behavior is to spoil frames so that, in interactive
>> applications, the 3D rendering on the server will keep pace with user
>> interaction.  Thus, as long as a sufficient frame rate (typically 15-20
>> fps or above) is maintained so that the human eye doesn't perceive the
>> frame changes, then the application will "feel local".  There are
>> definite exceptions to this, such as immersive environments in which a
>> higher frame rate has to be maintained to avoid nausea, but what I'm
>> referring to is the normal case of running desktop 3D applications.  In
>> fact, with frame spoiling, applications are still quite usable even
>> below 15 fps-- although you will be able to perceive the frames change,
>> the rendering still keeps pace with your mouse movements.
>>
>> It is precisely this frame spoiling mechanism, however, that makes
>> benchmarks meaningless in a VirtualGL environment, so frame spoiling
>> must be disabled (via 'vglrun -sp') when running benchmarks.  Otherwise,
>> the benchmark is going to be running nearly unimpeded on the server, but
>> only a very small percentage of those frames will actually make it to
>> the client.  In an interactive application, the frame rate is gated by
>> the speed of user interaction, so letting the 3D app run unimpeded
>> doesn't really tell you anything useful.
>>
>> Once frame spoiling is disabled, then you can use a 3D benchmark to
>> measure the frame rate of the entire VGL system.  It's important to
>> understand what you're measuring, though.  Since VGL is a pipeline, 3D
>> rendering and pixel readback occur in parallel to compression and
>> transmission on the server, so in most cases, the compression will be
>> the primary bottleneck limiting the frame rate (depending on the client,
>> you may find that decompression is the bottleneck instead.  And, on slow
>> networks, the network can become the bottleneck.)  However, I
>> re-emphasize that you can't simply hold this up next to local rendering
>> and say "local is 100 fps, but VirtualGL is only 40 fps, thus local is
>> better."  It's an apples-to-oranges comparison.  Because of frame
>> spoiling, VGL will feel local, even though the actual number of frames
>> being drawn in front of the user is not as high as the local case.  It
>> goes without saying, also, that pretty much anything higher than 60 fps
>> has no meaning, either, since that exceeds the refresh rate of most
>> monitors.
>>
>> Thus, the notion of benchmarks in a VirtualGL environment is a bit
>> different.  Typically, people run 3D benchmarks so they can attempt to
>> quantify whether 3D rendering will become a bottleneck to user
>> interaction.  In VirtualGL, however, 3D rendering is usually not the
>> bottleneck, so you have to have an understanding of what the other
>> likely bottlenecks are in order to get meaningful data out of the
>> benchmarks.  You also have to really examine the user's experience,
>> which is harder to quantify.  We have some tools, such as TCBench (which
>> measures the frame rate as seen on the client), which can be helpful
>> there.  It's unavoidable, however, that nebulous concepts such as
>> "perceptual performance" come into the conversation.
>>
>> Further, GLXGears is a horrible benchmark to use under any
>> circumstances.  It has a very low triangle count and a small window
>> size, so its execution time is dominated by overhead rather than actual
>> OpenGL rendering time.  Even when running locally, the numbers it
>> generates have little correlation to actual 3D performance.  In a
>> VirtualGL environment, the images it generates are not complex enough to
>> really give the JPEG compressor a workout (too much solid color, and
>> most of the window is static from frame to frame.)
>>
>> That's why we have GLXSpheres.  GLXSpheres generates more complicated
>> images, with a more realistic percentage of change between frames as
>> well as a more realistic use of color.  It also defaults to a somewhat
>> larger geometry, and you can increase the number of triangles even
>> further via command line options to simulate the types of geometry
>> workloads you may encounter in a real-world application.  It has other
>> features designed specifically to give VirtualGL a workout.
>>
>> Try comparing, for instance,
>>
>>  vglrun -sp /opt/VirtualGL/bin/glxspheres -p 1000000
>>
>> vs. running
>>
>>  /opt/VirtualGL/bin/glxspheres -p 1000000
>>
>> in Mesa, and I think you'll find that the difference between VirtualGL
>> and Mesa is a lot more than 4x.  :)
>>
>>
>> On 7/15/11 12:51 PM, Mark Howison wrote:
>>> Hi,
>>>
>>> We've been trying to install VirtualGL with TurboVNC on our GPU
>>> cluster that uses NVIDIA M2050 cards. We can successfully run
>>> glxgears through vglrun, access the pbuffer, etc. but we see these
>>> strange artifacts around the triangles, like in the attached
>>> screenshot. If you zoom in, it looks as if the borders of the
>>> triangles aren't being rasterized correctly. This happens both when
>>> we use the NVIDIA OpenGL driver and with MESA.
>>>
>>> Do you have any ideas what might be causing this? We have all of this
>>> installed on a stripped-down CentOS image, with some libraries
>>> provided over a parallel file system, so this is by no means a
>>> standard environment.
>>>
>>> Also, we are seeing frame rates for glxgears in the 1100-1200 FPS
>>> range. Does that sound like reasonable performance? With MESA, we get
>>> more like 250 FPS (dual quad-core Nehalems).
>>>
>>> Thanks,
>>>
>>> Mark Howison
>>> Application Scientist
>>> Center for Computation & Visualization
>>> Brown University
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> AppSumo Presents a FREE Video for the SourceForge Community by Eric
>>> Ries, the creator of the Lean Startup Methodology on "Lean Startup
>>> Secrets Revealed." This video shows you how to validate your ideas,
>>> optimize your ideas and identify your business strategy.
>>> http://p.sf.net/sfu/appsumosfdev2dev
>>>
>>>
>>>
>>> _______________________________________________
>>> VirtualGL-Users mailing list
>>> VirtualGL-Users@lists.sourceforge.net
>>> <mailto:VirtualGL-Users@lists.sourceforge.net>
>>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
>>
>> ------------------------------------------------------------------------------
>> AppSumo Presents a FREE Video for the SourceForge Community by Eric
>> Ries, the creator of the Lean Startup Methodology on "Lean Startup
>> Secrets Revealed." This video shows you how to validate your ideas,
>> optimize your ideas and identify your business strategy.
>> http://p.sf.net/sfu/appsumosfdev2dev
>> _______________________________________________
>> VirtualGL-Users mailing list
>> VirtualGL-Users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
> 
> 
> 
> ------------------------------------------------------------------------------
> AppSumo Presents a FREE Video for the SourceForge Community by Eric 
> Ries, the creator of the Lean Startup Methodology on "Lean Startup 
> Secrets Revealed." This video shows you how to validate your ideas, 
> optimize your ideas and identify your business strategy.
> http://p.sf.net/sfu/appsumosfdev2dev
> 
> 
> 
> _______________________________________________
> VirtualGL-Users mailing list
> VirtualGL-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtualgl-users

------------------------------------------------------------------------------
Storage Efficiency Calculator
This modeling tool is based on patent-pending intellectual property that
has been used successfully in hundreds of IBM storage optimization engage-
ments, worldwide.  Store less, Store more with what you own, Move data to 
the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/
_______________________________________________
VirtualGL-Users mailing list
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to