Mailinglist Archive: radeonhd (427 mails)

< Previous Next >
Re: [radeonhd] RS690 full-HD performance
  • From: Alex Deucher <alexdeucher@xxxxxxxxx>
  • Date: Tue, 12 May 2009 11:42:37 -0400
  • Message-id: <a728f9f90905120842x431b320ncf9e169b6a879af2@xxxxxxxxxxxxxx>
On Tue, May 12, 2009 at 11:25 AM, Rafał Miłecki <zajec5@xxxxxxxxx> wrote:
W dniu 12 maja 2009 17:13 użytkownik Alex Deucher
<alexdeucher@xxxxxxxxx> napisał:
On Tue, May 12, 2009 at 11:08 AM, Rafał Miłecki <zajec5@xxxxxxxxx> wrote:
More problematic may be decoding. That can be in 4 ways:
1) Software (CPU) decoding
2) Software (CPU) multi-thread decoding
3) Hardware (GPU) decoding with special hardware engine (vendor specified)
4) Hardware (GPU) decoding with shaders (universal)

1) On modern CPUs you can succesfully decode most 720p movies.

2) Problem comes with 1080p, when one core (for example on my Intel
C2D P8400) is often not enought. Then you have to use more cores but
standard ffmpeg (used by MPlayer) can't do that. It's implemented in
experimental ffmpeg-mt but it is not stable yet (and won't be soon).

3) Both AMD and NVidia has special hardware blocks to decode video
(RS690 doesn't AFAIR). Unfortunately that won't become available in
open source driver due to some legal issues. NVidia offers it in it's
closed driver (VDPAU), AMD doesn't even in fglrx.

4) Nothing special available for now, read http://bitblitter.blogspot.com/

So it's really hard to play full HD material on ATI :( What's worse I
don't see any solution coming soon. Personally I use ffmpeg-mt for
playing 1080p materials. It sometimes crashes but it mostly happens on
starting, stoping and seeking video. Almost never after you already
started playback.

Video decode is mostly done on shaders (at least motion compensation)
on that hardware.  We've released the 3D engine information on these
chips so this could be implemented now if anyone was so inclined.

Can you be more specific about this, please? I'm really intereseted

Do you mean "is mostly done" or rather "can be mostly done"? Is that
implemented anywhere? Does that hardware mean RS690 or R5xx-R7xx,
or...? If you mean shared-based decoding why do you mention 3D specs?
I thought such a shaders decoding is quite universal, as shareds
itself are universal. Don't really understand that, I really would
love to hear something more on that.

There are several stages in the decode part of the pipeline. idct and
mc are the main ones. On r1xx-r5xx (including rs6xx), we do the mc
part for the decode using the 3D engine (shaders on r3xx+, special
instructions on r1xx-r2xx). R6xx and r7xx chips have a special
dedicated UVD block for video decode. We plan to review that block to
see if we can release any of it, but no promises. Regardless, you
could do mc on r6xx/r7xx using shaders as well. For MPEG1/2 you could
implement an XvMC driver and implement mc using shaders. I believe
intel does this. The problem is XvMC doesn't support newer formats
like H.264 or whatever.

Alex
--
To unsubscribe, e-mail: radeonhd+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: radeonhd+help@xxxxxxxxxxxx

< Previous Next >