From: Bogdan Costescu (bcostescu_at_gmail.com)
Date: Fri Mar 08 2013 - 11:56:12 CST

Hi John!

Any news on this ? Also, to rephrase a question at the end of the
previous message: is it worth even for the faster cards having a MSAA
with 16-samples-per-pixel ?

Cheers,
Bogdan

On Tue, Mar 5, 2013 at 10:27 PM, John Stone <johns_at_ks.uiuc.edu> wrote:
> Hi,
> If the new drivers are causing VMD to pick up an OpenGL context with
> MSAA set to 16-samples-per-pixel, that could cause a very significant
> performance drop vs. 4-samples-per-pixel. I'll have a look at the
> startup code and see if there's a good way for you guys to control
> this more easily, without having to depend on knowing driver-specific
> environment variables.
>
> Cheers,
> John Stone
> vmd_at_ks.uiuc.edu
>
> On Tue, Mar 05, 2013 at 09:01:21PM +0100, Bogdan Costescu wrote:
>> Hi!
>>
>> I seem to have a very similar problem with the one described in a
>> previous thread starting at:
>>
>> http://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/21064.html
>>
>> VMD updates the OpenGL window significantly slower than before;
>> display frame rate drops from several tens or even higher than 100 to
>> less than 10, independent of the representation (tested with lines,
>> new cartoon and new ribbons), with a rather small system of 30K atoms
>> of protein in water box.
>>
>> I have initially discovered it when upgrading to recent Fedora
>> releases (17 & 18) and the latest versions of nVidia drivers (310.xx).
>> As previously I had Fedora 14 and a 280.xx driver which worked fine, I
>> used F14 as a basis and changed only the nVidia driver. VMD was in all
>> tests version 1.9.1 for 64-bit Linux, which displays at
>> initialization:
>>
>> Info) Detected 1 available CUDA accelerator:
>> Info) [0] GeForce 9400 GT 4 SM_1.1 @ 1.38 GHz, 511MB RAM, KTO, OIO, ZCP
>> Info) OpenGL renderer: GeForce 9400 GT/PCIe/SSE2
>> Info) Features: STENCIL MSAA(4) MDE CVA MTX NPOT PP PS GLSL(OVFG)
>> Info) Full GLSL rendering mode is available.
>> Info) Textures: 2-D (8192x8192), 3-D (2048x2048x2048), Multitexture (4)
>>
>> I have also tested VMD 1.9 and 1.8.7 for some of the driver versions,
>> with no change. I have disabled composite extension for these tests,
>> but on the working configuration (F14 + nVidia 2xx.xx) it was enabled
>> without any side effects. Within VMD, I have tested with and without
>> GLSL, also with no change in outcome.
>>
>> The results:
>>
>> - nVidia drivers 2xx.xx (tested 280.13 and several 295.xx up to the
>> most recent 295.75) work fine
>> - nVidia drivers 3xx.xx (tested 302.07, 304.64, 310.32, 313.09)
>> reproduce the slowness
>>
>> In all cases, I've also tested pymol and I could not see any
>> significant degradation of its display speed, which makes me think
>> that it's specific to VMD. Unlike in the previous thread, I do not see
>> improvement with more recent 3xx.xx drivers. The VMD-specificity seems
>> to be supported by the highly non-scientific glxgears figures which
>> vary slightly around 3000fps for all tested driver versions.
>>
>> I have then realized that the display of Features line shows a slight
>> difference: working drivers have MSAA(4) while slow ones have
>> MSAA(16). Setting the corresponding environment variable:
>>
>> export __GL_FSAA_MODE=5
>>
>> (which according to docs corresponds to 4x AA, though it's not clear
>> to me what the value reported by VMD is) before starting VMD, made it
>> run with its normal speed. Yey!
>>
>> Some funny things:
>> - any setting of this variable makes it run faster than not setting it
>> ! Obviously higher settings are slower than lower ones, as more AA is
>> done at higher settings; at highest documented setting (12), the
>> OpenGL window is still updated at ~25fps. Only by unsetting this
>> variable, I could recover the default slowness with 3xx.xx drivers.
>> - the docs say that 'nvidia-settings --assign FSAA=5' should have the
>> same effect as setting the environment variable - but this doesn't
>> work at all for me, it's as if I didn't run it, although a
>> 'nvidia-settings --query=fsaa --verbose' reports the change.
>> - the value reported by VMD - MSAA(16) - doesn't seem to depend on the
>> __GL_FSAA_MODE.
>>
>> I also tested some of the 304.xx drivers on a newer generation nVidia
>> card (GT 640). The same MSAA(16) is reported by VMD, but because the
>> card is faster, the default speed is several tens of fps. Setting
>> __GL_FSAA_MODE=5 brings the speed to 400+ fps, while setting it to 12
>> brings it to ~200fps. So it seems to me that the problem exists also
>> on the newer cards but, because they are generally faster, it's more
>> difficult to observe it.
>>
>> Now some questions: what could have changed in the drivers to make VMD
>> run slower on newer drivers ? Anything that can be done in VMD to make
>> it play nicer with the newer drivers ? Are there going to be any
>> noticeable AA artifacts in VMD if setting this variable to something
>> like 5 ? Does the answer to the previous question change whether GLSL
>> is enabled ? What does VMD do differently from other OpenGL programs,
>> like pymol, to make it sensitive to this change in driver ?
>>
>> Cheers,
>> Bogdan
>
> --
> NIH Center for Macromolecular Modeling and Bioinformatics
> Beckman Institute for Advanced Science and Technology
> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> http://www.ks.uiuc.edu/Research/vmd/