Linked by lemur2 on Wed 18th May 2011 13:58 UTC
Linux Efforts to implement NVIDIA's Video Decode and Presentation API for Unix (VDPAU) on the open source Radeon Gallium3D drivers (for AMD/ATI chipsets) are reportedly just beginning to work. Being Gallium3D-based means this new VDPAU state tracker is using GPU shaders and not the dedicated Unified Video Decoding (UVD) engine found on modern Radeon HD graphics processors, but using shaders is still a big performance win for HD video playback compared to pegging the CPU constantly. Also, MPEG-2 is the only codec known to work at this time. Once the basic state tracker functionality works, support for other video codecs, such as VP8 and H264, should be relatively easy to add.
Permalink for comment 473605
To read all comments associated with this story, please click here.
RE: Nice work..
by galvanash on Wed 18th May 2011 19:40 UTC in reply to "Nice work.."
galvanash
Member since:
2006-01-25

In my understanding we need a hardware interface like USB/USB mass storage for example in order to make use of accelerator cards and leave once and for all the hardware dark ages.


USB hardware is ridiculously simple and has an incredibly limited scope compared to what a GPU does. It was also built on the back of the standards that came before it (UART) and has had over 30 years to mature. The main thing that makes USB appropriate for hardware standardization is that it has a very simple and narrow external interface to software - it does nothing more than move bytes back and forth.

Pointing at USB as an example is silly - a GPU is at least a few orders of magnitude more complex on the outside (let alone internally).

We had standardized graphics hardware once, remember VESA BIOS Modes? There are only about 20 or so actual functions available in VBE 3.0 - its useful to a point, but it only implements a very tiny subset of what a video card can actually do even in the basic world of 2D. Regardless, the vast majority of real world video drivers did not use VESA BIOS, it was ok as a fallback when nothing else was available but it was much slower than using drivers written against native hardware functionality. And it never even thought about dealing with 3D...

Even fixed function 3D is insanely complex. 3D with unified shaders is even more complex, but at least the external facing stuff is gradually converging on like-minded interfaces. Regardless, we haven't even reached a point where the basic rendering method used by 3D hardware has converged - you have some cards that use tile-based rendering, some that use z-occlusion, some have even proposed doing ray-tracing. Some development is better done using immediate mode APIs, others deferred rendering. I have no idea how you could possibly standardize all this in hardware when there are so many non-trivial differences that have to be exposed to make writing a functional API layer workable.

The above work is linux/ati-nvidia lockin and though I love linux this is not something I am very happy.


VDPAU is a vendor lockin? How? Sure Nvidia originally wrote it, but it is wide open. SG supported it in their Chrome GPUs (for what that is worth), so other 3rd parties could have done it. It is no longer an Nvidia API - it is a Linux API. All Intel, ATI, etc. need to do to support it is write support for it in their drivers.

We need standardized accelerator cards that could work out of the box with every OS that chooses to support them.


We have that now with OpenGL, and it doesn't require standardized hardware. If you specifically mean video decode acceleration remember we are talking about GPUs - there is no standard for that because the video card for the most part doesn't actually implement anything that looks like video decode acceleration... VDPAU (ideally) uses general purpose shader features on the GPU to do its work - there is not "special" hardware and therefore no "special" hardware interfaces.

If you want fixed function video decode accelerators there are many available, and standardizing those might even make sense - but that has nothing to do with VDPAU or GPUs in general.

Edited 2011-05-18 19:42 UTC

Reply Parent Score: 8