From: John Stone (johns_at_ks.uiuc.edu)
Date: Fri Mar 15 2013 - 09:25:32 CDT

Bogdan,
  I posted a new test build of VMD, give it a try and let me know
if it cures the performance issue you'd observed previously.

Cheers,
  John Stone
  vmd_at_ks.uiuc.edu

On Fri, Mar 08, 2013 at 01:09:13PM -0600, John Stone wrote:
>
> Bogdan,
> I've already made a change to the OpenGL code to reduce the default
> multisample antialiasing sample count we request down to 8 samples
> per pixel. The 16-samples-per-pixel default came from high-end
> SGI and Sun machines from 10 years ago that were able to do large
> antialiasing sample counts with no significant performance cost.
> On modern GPUs, where shading costs are much higher (e.g. GLSL)
> the cost of antialiasing is also higher. Anyway, I am going to reduce
> the default, and I've added a new environment variable to override
> the default. I'll send another email when I have a new test build
> posted containing these features, so you can test it out.
>
> Cheers,
> John Stone
> vmd_at_ks.uiuc.edu
>
> On Fri, Mar 08, 2013 at 06:56:12PM +0100, Bogdan Costescu wrote:
> > 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/
>
> --
> 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/

-- 
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/