From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue Mar 05 2013 - 15:27:41 CST

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/