Live Messenger switches to “basic” mode for crappy GPUs

While swimming around the registry, looking for hidden settings to disable the now permanently enabled sequential message grouping, I stumbled upon a hardware “blocklist” at HKEY_CURRENT_USER\Software\Microsoft\Windows Live\UX\HwBlockList. After punching a few of the PCI-SIG registered DeviceId and VendorId pairs into a PCI database, it was clear this list was purely for blocking video cards. But why?

A cursory analysis came up empty, so I took a different approach; I placed my ATI Radeon HD 5900’s hardware ID pair (vendor 1002, device 689C) into the registry location and restarted Windows Live Messenger. After firing it back up, it was immediately obvious what the list’s purpose was. All the UI elements were purely static and made no effort to wow me; all whizz-bang animation effects were disabled.

But why?

Resolving all the IDs in the list paints a damning picture. Dominating the list are NVIDIA’s GeForce FX-based cards, known for their god-awful DirectX 9 performance. (Remember the whole Valve and NVIDIA fight?) Intel also made the list with its equally horrible and buggy GMA 500 chipset but ATI was strangely missing from the list, due to lack of data no doubt.

Conclusion: Windows Live Messenger uses a list of known under-performing (read: crap) DirectX 9 video cards, to ensure a consistent and stable user experience. Case closed. If you have one of these cards, it’s really time to upgrade.

The list, as of August 19, 2010 (WLM Wave 4 Beta Build 15.4.3002.810), follows.

Intel Graphics Media Accelerator 500 NVIDIA GeForce4 Ti 4400 NVIDIA GeForce PCX 5750 NVIDIA GeForce FX 5600 Ultra NVIDIA GeForce FX 5600 NVIDIA GeForce FX 5600XT NVIDIA GeForce FX Go 5600 NVIDIA GeForce FX Go 5650 NVIDIA Quadro FX Go 700 NVIDIA GeForce FX 5200 NVIDIA GeForce FX 5200 Ultra NVIDIA GeForce FX 5200 NVIDIA GeForce FX 5200LE NVIDIA GeForce FX 5800 Ultra NVIDIA GeForce FX 5800 NVIDIA GeForce FX 5950 Ultra NVIDIA GeForce FX 5900ZT NVIDIA Quadro FX 3000 NVIDIA Quadro FX 700 NVIDIA GeForce FX 5700 Ultra NVIDIA GeForce FX 5700 NVIDIA GeForce FX Go 5200 NVIDIA GeForce FX Go 5250/5500 NVIDIA GeForce FX 5100 NVIDIA GeForce FX Go 5200 32/64M NVIDIA Quadro NVS 55/280 PCI NVIDIA Quadro FX 500/FX 600 NVIDIA Quadro FX 2000 NVIDIA Quadro FX 1000 NVIDIA GeForce FX Go 53x0 NVIDIA GeForce FX Go 5100 NVIDIA GeForce FX 5900 Ultra NVIDIA GeForce PCX 5300 NVIDIA Quadro FX Go 1000 NVIDIA NVIDIA GeForce FX 5900 NVIDIA GeForce FX 5900XT NVIDIA GeForce FX 5700LE NVIDIA GeForce FX 5700VE NVIDIA Quadro PCI-E Series NVIDIA Quadro FX 1100 NVIDIA Quadro FX 1300 NVIDIA GeForce FX Go 5700