Understanding the IE9 Software Rendering Mode

I recently heard from some users who are seeing lower-than-expected scores on the Speed Reading and FishIE Tank benchmarks. I went to check these tests myself and found that my laptop’s score was low. In fact, it was much lower than I’d seen last year. What happened?

First, a bit of background: These graphically rich demos are designed to use your PC’s Graphics Processing Unit (GPU) instead of the Central Processing Unit (CPU) to do most of the heavy lifting. Generally speaking, a faster GPU will give better performance than a slower GPU. However, there are cases where the GPU is not used for rendering, and instead the CPU is used. The primary case where this occurs is when the GPU has an outdated driver version which is not supported by the browser. In those cases, the browser will use software emulation mode, forcing the CPU to do the work instead of the GPU.

You can determine whether Internet Explorer 9 is in software mode by clicking Tools > Internet Options > Advanced. The first checkbox in the list indicates whether IE9 is running in software mode.

When I went to check my setting, I found that the software rendering box was ticked and disabled:

image

This indicates that my GPU is on the Software Emulation fallback list. This list contains a list of GPUs and GPU Driver versions which are known to have reliability, functionality, or performance problems when running Internet Explorer. The most common case is that the driver crashes when IE attempts to use the GPU for hardware acceleration. Because IE9 uses hardware acceleration for all web content, this means that these drivers will constantly crash IE when you try to browse. Our telemetry data indicates that such crashes, along with crashing browser add-ons, make up the vast majority of IE crashes.

The Software Emulation fallback list is delivered as a part of the Internet Explorer Compatibility View list. In my case, the Intel Series 4 Family GPU in my Lenovo X200 laptop was using driver version 8.15.10.2202 (ig10umd64.dll) released in August 2010. Tip: You can learn more about your graphics driver version by running the dxdiag.exe tool that comes with Windows.

I found an updated version of my GPU driver by visiting Lenovo’s support site. In the Downloads section for my laptop, the latest driver versions were provided. (Note: Driver updates often eventually make their way to WindowsUpdate, but that isn’t always the case.)

After I updated to the latest driver version, 8.15.10.2226, released in October 2010, I found that my laptop was back in hardware mode, with great benchmark scores for Speed Reading and FishIE Tank. Now that hardware acceleration is enabled, my Internet Control Panel option looks like this:

image

If I find that my browser is crashing a lot and I suspect the graphics driver is at fault, I can go turn off hardware acceleration myself and see if it helps.

Until next time,

-Eric

Update: See https://blogs.msdn.com/b/ie/archive/2011/04/01/getting-the-most-from-ie9-and-your-gpu.aspx for some interesting data points about how many different GPUs IE9 supports in hardware mode, and some screenshots showing why some drivers are on the software fallback list.

Tip:  Users of Hyper-V and Windows Server 2008 R2: When used on machines with the Hyper-V role installed, Internet Explorer 9 will only be able to use a supported GPU for hardware-accelerated rendering if Service Pack 1 is installed, and the processor supports SLAT.

Tip: Non-Internet Explorer hosts of the Web Browser control use software rendering mode by default, even when hardware acceleration is available. Applications can set FEATURE_GPU_RENDERING to opt-in to hardware acceleration, if the user’s hardware is compatible.