Поделиться через


VS2010 Performance and Bad Video Drivers/Hardware - Redux

Since we shipped Visual Studio 2010 we've continued to have a small but notable series of complaints about performance that we've been able to attribute to bugs in video drivers and GPUs.

The issue first came up back during VS 2010 beta in October of 2009. Since then we've learned that while old, buggy drivers are the usual cause, some newer drivers and GPUs aren't as good at supporting VS's UI as we'd like. (This is also an issue with VMs and VM hosts as Video Virtualization technology isn't very good and requires CPU level TLB virtualization support for decent performance, which most CPUs don't have.)

Fortunately, the software rendering inside WPF is pretty good, so the easy fix here is to force WPF to ignore the GPU and use software rendering (I've tested this on my own system, and I found that WPF's software rendering was actually slightly faster than GPU based rendering on my high end CPU with a mid-range graphics card - your mileage may vary).

But first, if you're seeing slow / broken screen updates you should verify you have the latest display drivers for your system. (See "Guidelines for troubleshooting graphics issues in WPF applications" for more information.)

If that doesn't fix it, then there are three ways to force WPF to use software rendering. 

First and preferred, the final RTM version of VS2010 includes a UI for forcing hardware rendering off - for just VS. With VS2010 open, go to Tools | Options, then select Environment | General (as shown below). Then uncheck "Automatically adjust visual experience..." and "Use hardware graphics acceleration..." 

 

That should be sufficient. 

However, if you want to force software rendering mode for ALL WPF applications (not just VS), you have a second option. Change (or add) one registry key:

 [HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics]

"DisableHWAcceleration"=dword:00000001

Note that this key probably won't exist, and you'll probably need to create it. To turn hardware acceleration back on, just change the "1" to a "0".

A third alternative is to adjust the hardware acceleration options from the display control panel. However, we don't recommend this option as it impacts the entire machine, the details vary by manufacturer, and the exact impact of all the different options is untested.

If you try any of these - let us know how it works for you (DevPerf@Microsoft.com). If it does improve performance, be sure to let us know how much and attach a DXDIAG output so we'll know which video driver / hardware configurations aren't working well.

Regards,

David Berg

Developer Division Performance Engineering Team

Comments

  • Anonymous
    October 14, 2010
    I have a partially fried graphics card right now on my laptop. No artifacts whatsoever in any application, but frequently total lockups when trying to play any kind of video in any application. In addition in WPF applications (my own and VS2010) I am seeing a problem with a Wacom tablet whereby the mouse cursor refuses to move over my window or allow me to click on anything. Oddly enough I can use the trackpad and it works fine. This only started after my graphics card got partially friend. Interesting and bizarre!

  • Anonymous
    December 24, 2010
    Hi, After I disabled the hw acceleration within VS, VS 2010 is much faster on my machine---faster to load, faster to do everything. Thanks for your suggestions! -Al

  • Anonymous
    May 23, 2011
    So what do I do if I use XP at work but RDP to my work machine from home? This article blogs.msdn.com/.../performance-troubleshooting-article-and-vs2010-sp1-change.aspx suggest doing the opposite, i.e leaving Auto adjust on.

  • Anonymous
    May 24, 2011
    Using RDP turns off hardware acceleration because the RDP driver doesn't support hardware acceleration.

  • Anonymous
    October 19, 2011
    David Berg, thanks for your topic! Very helpful!

  • Anonymous
    February 13, 2012
    This is what i've been looking for

  • Anonymous
    March 21, 2012
    I think this fixed my issue in VS 2010, i started seeing it after i upgraded my video drivers to latest. Go figure old drivers were working fine.

  • Anonymous
    March 15, 2013
    very useful information. thank you very much. i unchecked the options and it worked immediately.

  • Anonymous
    July 23, 2013
    Wow, big difference.  Thank you, I was about ready to start editing my files in Notepad.