Lets reverse engineer without manpower anyway. Yeah that'd be great; AMD's DRM gets cracked, key revoked and FLOSS documentation stops!
Announcement
Collapse
No announcement yet.
ATI, please release an Open UVD API
Collapse
X
-
Originally posted by Qaridariumuvd is nonsence because uvd is only a copyprotection the UVD self uses the SHADERS! to calculate the vids...
Anyway, I would not consider uvd really important nowadays. Mplayer / ffmpeg is truly an awesome software!!, try to read their devel list you will be shocked, those devs work at assembler level fighting to achieve always less cpu cycles per instruction. An atom d510, 10 W cpu, with mplayer-mt (multi-threaded version) can decode Hi-Def h.264 AVC @ 40Mbps.
Comment
-
Originally posted by Qaridariumthe hd2900 for exampel do have no UVD unit but the same featureset...
uuhh you mean the UVD unit use the shaders for post-processing ? LOL..
i know the UVD unit use the shaders.
because.... the shaders do the work and the UVD unit do the copyprotection.
The 2900 is a special case, where amd marketing claims things that 2900 doesn't have.
Comment
-
No, you are totally wrong. You can have all features not because UVD does the drm portection and shaddes do the work, it is because software - cpu does all the work. On GPU with UVD chip (present on the same GPU die) video uses specifically implemented UVD functions to get decoded, and then it is post processed using shaders or cpu.
Comment
-
Originally posted by markg85 View PostSo, ATI, why don't you release a API to make use of UVD? That way you can keep all the secrets and still unleash the power of UVD in Linux. The Linux community will likely pick it up and make vaapi implementations which in turn can then be used in players like mplayer, xine and what not.
I'm asking this because ATI is even actively promoting it's new features, but we all know they are not available on Linux at all! The little deal you have with splitted-desktop-systems is nice and does help to get some UVD stuff in linux, but it would be far better if you just release an API to make use of all of UVD's power.
^
Comment
-
Originally posted by Qaridariumyou can have all feature with NO UVD unit but you need the UVD unit for DRM and Copyprotection.
and the UVD unit use 'shaders' for calculations.
Comment
-
Originally posted by Qaridariumright now bridgman and os team work an an shader based solution for the os driver.. thats a big deal!
I would be really happy but honestly I don't think this is the case. Bridgman only said that they will try their best to be able to give out documentation for uvd for _future_ generation cards. And there is a big difference.
Probably our best chance is Veerappen who wants to write a vp8 decoder in opencl. However, we don't even have a working opencl state tracker at the moment...
Comment
-
Originally posted by HokTar View PostAny source of this?
I would be really happy but honestly I don't think this is the case. Bridgman only said that they will try their best to be able to give out documentation for uvd for _future_ generation cards. And there is a big difference.
Probably our best chance is Veerappen who wants to write a vp8 decoder in opencl. However, we don't even have a working opencl state tracker at the moment...
As I understand it, it is an integrated unit, using both shaders as well as some proprietary logic. Fact though, is that many of the older cards did lack the "UVD" unit, and instead did some of the work on the CPU, still with the heavy lifting on the shaders.
BOTH ARGUMENTS ARE RIGHT AND BOTH ARGUMENTS ARE WRONG. It is somewhere in between!
Comment
-
Originally posted by HokTar View PostAny source of this? (bridgman & team working on shader based decode)
A few things :
- UVD *does* do the decoding work (without using shaders), but it *also* participates in DRM
- everything *after* decode is done on shaders... colour space conversion, scaling, filtering, other post processing etc...
- haven't had time / remembered to find out how r600 handles video but believe it runs decode on CPU then uses same post-processing on shaders
- we are still working towards an XvBA API release for fglrx, schedule TBD but hopefully soon
- I'm still saying "don't assume we will be able to release UVD programming info" but we are still going to investigate whether it can be done... we've worked through enough of the higher priority tasks that I think investigation will happen in the next ~6 months or so
- key point is that spending time investigating UVD programming info release means that time is not being spent on releasing other info/code and that other info has much higher probability of success... we might spend a few man-years of effort investigating UVD and conclude that we can't release anything, but the time would still be gone and other potential good things would not get done in the meantime
- UVD only accelerates specific formats so for things like Theora and VP8 you're still going to want shader-based decode IMO...
- I still think the best plan is to implement an XvMC-ish state tracker over Gallium3D (but designed for modern video formats, not MPEG2) then modify ffmpeg/libavcodec and others to use that state tracker for MC and deblock filtering... you could do more (IDCT etc.. ) on shaders in principle but IMO you're better off avoiding having to push data back from GPU to CPU so best approach is to pick a point in the decode pipe where everything *after* that point can be done efficiently on shaders...
- IIRC the only sticky part with modern video formats and that approach was inter-prediction... probably do-able but haven't had time to work out the details
EDIT - I haven't complained about the 1 minute edit limit for a while, so consider it complained-aboutTest signature
Comment
-
From wikipedia, seems pretty correct:
UVD/UVD+
Decoding of H.264/AVC, and VC-1 video codecs entirely in hardware. However, video post-processing is passed to the shaders. MPEG-2 decoding is not performed within UVD, but in the shader processors.
UVD 2 (ati HD4000)
Full bitstream decoding of H.264/MPEG-4 AVC, VC-1, as well as MPEG2 video streams, and in addition it also supports dual video stream decoding and Picture-in-Picture mode. This makes UVD2 full BD-Live compliant.
UVD 2.2 (ati HD4000 and HD5000)
The UVD 2.2 features a re-designed local memory interface and enhances the compatibility with MPEG2/H.264/VC-1 videos.
Briefing, on cards with UVD chip:
-Decoding of H.264 and VC-1 doesn't use shaders.
-Decoding of MPEG2 use shaders on UVD/UVD+, on UVD2 don't use shaders.
-Post processing is done on shaders.
Comment
Comment