We’re a little slow on the uptake around here when it comes to some news stories. For instance, various pockets of the web have been abuzz about some video acceleration deficiencies of the NV40 GPU powering all GeForce 6800-series graphics cards for a few weeks now. This morning, we received mail for TR reader Henrik S. asking this:
It seems that the current revision af AGP-GF6800 cards may have had almost
all video acceleration in hardware disabled by an internal flaw. This means that in will _not_ be fixable by a driver update 🙁 Would you look into it?
To answer Henrik’s question, we were actually aware of this problem shortly before we published our GeForce 6200 review, but it simply got lost in the mix. NVIDIA dropped 6200 cards on reviewers a few days before the card’s official launch date, and it took a lot of long hours just to get that card’s basic 3D capabilities reviewed properly. Originally, NVIDIA had planned to bust out the hoopla about the onboard video acceleration built into the NV43 GPU that powers the GeForce 6200/6600 cards, and they briefed us pretty extensively on those capabilities. However, they decided to delay that aspect of the product launch, in part because the drivers weren’t ready.
One of the things we learned during that briefing was that the video processing unit in the original NV40 chip, from which the NV43 is derived, didn’t quite live up to its billing. The NV40’s programmable video processor, you may recall, was supposed to be a dedicated section of the GPU, distinct from the pixel shaders, capable of accelerating both encoding and decoding of advanced video formats like MPEG4 and WMV. NVIDIA told us at the time of NV40’s launch that the video processing unit was unique in the GPU world, and that dedicating transistors on the chip to accelerating video processing was more elegant and efficient than using pixel shaders to handle such tasks. However, NVIDIA wasn’t able to get everything working as planned in NV40 silicon, so the NV40 video processor cannot fully accelerate WMV, just MPEG2. Instead, it has to farm out encoding/decoding work to the CPU, as GeForce FX cards did.
NVIDIA also confirmed to us that NV40-based cards do “load balancing” between the video processor and pixel shaders for some video processing tasks, although we didn’t get into the nuts and bolts of which computations were handled by the CPU, the video processor, and the pixel shaders. That’s just for decoding, as far as I know. Anand did a nice write-up about this problem, and he said that NVIDIA wouldn’t answer his questions about whether the NV40 will do any hardware encoding.
NVIDIA won’t be able to fix this problem with a driver update, obviously, since the problem is in NV40 silicon. All current GeForce 6800 cards, both AGP and bridged PCI Express (NV45), are affected, and NVIDIA gave us no indication that they plan to fix the video processor silicon in a newer revision of NV40. I expect they will simply replace NV40 with a newer high-end NV4x GPU and incorporate the fixes at that time, as they’ve done with the lower-end NV43.
At present, even NV43-based cards can’t make use of the advanced encode/decode capabilities of the video processor, because NVIDIA hasn’t supplied the world with a working driver for it yet. NVIDIA has promised an updated driver and codec software layer to make this work in the relatively near future. When we get our hands on it, we plan to test CPU utilization and the like with an NV43, NV40, and competing ATI products, so we can see the real-world impact of these problems.