IE9… not so fast?

Like many, I installed IE9 today (on two machines, actually).  I went right away to the Beauty of the Web to check out some of the cool sites and games that people have been developing with HTML 5, CSS3, and other features of IE9 in mind.   One machine worked great; the other was rather sluggish on the Firework Interactive Video and downright dismal on Jitterbugs.  So what gives?

GPU > CPU?  Not always

As you might know, IE9 was the first browser to introduce hardware-accelerated rendering across the board, but not all GPUs and drivers are created equal.  In the beta and RC, you were able to turn off hardware rendering and revert to – generally –slower but perhaps more stable software rendering. So that was the first place I looked – namely the Advanced tab of the Internet options.  Right at the top, you’ll see an Accelerated graphics option, and if yours is checked, but disabled, (as mine was) then you’re not getting any of the benefits of hardware acceleration.

Internet options menu option

Internet Options - Advanced tab

Of course if the option is disabled, there’s not much tweaking you can do here!  So why’s it disabled?  Well, through information collected through beta and RC, Microsoft has compiled a list of scenarios in which the GPU/hardware-accelerated experience may be worse for you: perhaps the GPU and driver combination is actually slower than software rendering or was found to be less stable or secure.  IE9 checks against a list of known combinations that produce a less desirable result and opts you in (er…forces you) to software rendering.  That list is not static though so as drivers and GPUs mature, it’s updated, and IE9 will re-assess your machine’s capabilities accordingly.

By the way, I have to chime in that I find the UI here counterintuitive.  Accelerated graphics is the section title, and generally I’d say, “yeah, I want that” so would be inclined to check the box… but the option is “Use software rendering instead of GPU rendering”, and it’s probably not the option that will provide the best experience.  It fails my mother-in-law test too: only a geek can decipher what all that means!

Getting to a happy place

In the meantime though, you might have some luck forcing an update to the latest video drivers on your own.  While Windows Update does include driver updates, you may find that something available from your hardware vendor hasn’t quite yet found its way to your machine – and happily that was the case for me.

Device ManagerFirst step was determining my video driver – easy enough via Device Manager.  From the image to the right, you can see I’ve got an NVIDIA card. (I’ve also used this article in the past to identify my video card, but I can’t vouch for its complete accuracy. Also, there’s a relevant MSDN article from the beta period with a link to a laundry list of driver vendor sites and contact information.)

It’s easy enough to update drivers from right in Device Manager: just right-click on the device and pick the Update Driver Software… option from the context menu.   I was informed though that I already had the most up-to-date driver. 

Leaving no stone unturned, I next visited the NVIDIA site, which like many vendors do, includes an option to download a small plug-in which sniffs out your exact hardware and recommends the appropriate driver update.  In my case, there was an update in January 2011, so I installed it… and life is now good (although I can’t say the same for my Jitterbugs high score).

How’s your Chakra (or 64-bit < 32-bit)

Since I was posting on performance, I wanted to throw in an extra little tidbit.  It relates not to rendering, but rather to the performance of the multi-threaded JavaScript engine that’s in IE9 – known as Chakra.  If you take a look at some of the recent benchmarks on Adrian Kinsgley-Hughes’ blog, you’ll notice some pretty dismal performance by IE9’s 64-bit version.

Don’t panic!   Even though you may be running a 64-bit version of  Windows 7, and you (obviously) selected 64-bit when you installed IE9, your default browser is still the 32-bit version of IE.  The 64-bit version is also installed, but you have to opt in to using it, and at this point in time there’s not a lot of rationale for doing so.

Some insight into the wide variance of performance on the benchmarks between the 32-bit and 64-bit versions of IE9 can be found in Steven J. Vaughan-Nichols’ recent blog post, where he quotes Microsoft’s Tim Sneath, Senior Director of Evangelism:

“…we put all our JIT compiler investment in this release of Chakra into the 32-bit compiler, since that’s the one that is near-universally used today. The 32-bit browser is the default even on 64-bit systems, since almost all add-ons are 32-bit only at this time. The 64-bit version provides no real advantage, since no browser scenario requires access to >2GB of user memory in a single process.”

Moral of the Story…

So if you were scratching your head wondering what all the folks were gloating about in terms of IE9 awesomeness, hopefully the information above sheds some light on your situation.  Personally, I’d have liked to see a blatantly proactive message on installing (or running) IE9 - like a bit red sign indicating you’ll get a subpar experience if you don’t update your drivers or hardware.  First impressions can be a great asset or a lingering liability, and I’d hate for anyone to dismiss IE9 (or any other product) for a ‘technicality.’