Friday, December 24, 2010

The curious case of the PCIe x16 slot

I've been a proponent of using Windows Media Center as the centralized digital entertainment hub for the home for as long as I can remember. That's all great, the problem is whenever anyone sees my setup then they want a similar setup too, and that usually means that I'll be the one assisting with spec'ing, assembling and installing. I've just been sitting with a problem handed to me by one of the not-so-recent Media Center converts which has had me scratching my head for 2 days now, and that's also great, except that I'm supposed to be on holiday.

He recently bought a 42" Full-HD panel, which his 4 year old MC naturally isn't equipped for in terms of HD video decoding and the necessary HDMI or DVI ports. No problem, his board has a PCI Express x16 slot, he has some cash, so we can just slap in a suitable ATi or NVidia graphics card which supports DXVA acceleration to take the load off the CPU and be done with it. That's what I thought too, it IS supposed to be simple, there's no rocket science here. The card worked fine, resolution scales to 1920x1080 correctly, SD content plays fine, but when playing HD content WMC will either freeze or play no video at all. The container format also made no difference, H.264 in MKV or MPG would either hang the machine or just play nothing, the screen would stay black.

To cut a long story short, after hours of backwards and forwards which included reinstalling Windows, trying old and new drivers, changing BIOS settings, flashing the BIOS to the latest version, trying numerous Windows Media Foundation and DirectShow codecs and successfully testing the graphics card in another PC, I eventually narrowed it down to DXVA acceleration causing the problem. When forcing DXVA off, the content played fine but would cause the CPU to flatline since it was now doing the decoding of the HD stream.

A bit of Googling (apologies....Binging...) led me to an obscure forum post describing one specific motherboard model with a serious limitation, the Gigabyte GA-M61VME-S2, incidentally the same model in this guy's MC. The board is listed as having a PCIe x16 1.0 slot, but has only one lane physically wired to the slot, which means it can only actually perform as a PCIe x1 slot (limited to 250MB/s). Gigabyte even published a list of specific graphics cards which are supported by this model, everything else is not guaranteed or issues can be expected. All I can think is that this board was manufactured in 2006 during the migration from AGP to PCIe, and there was some confusion lurking around the PCIe standard - I would have thought that the bus speed would still have allowed the card features to work correctly at least, albeit with reduced speed to the bus.

Not much else to do but upgrade his board.