Hi,
some of you probably noticed that I was working on getting the XvMC state tracker in the pipe-video branch running with the r600 gallium driver. It was quite a success, but I still have some unresolved problems and need some feedback/new ideas with that.
Beside from the current limitations of the state tracker implementation
I have the following problems still remaining:
1. Initialisation of r600 doesn't seem to work 100% reliable, so only 3 of 4 tries to play a video are working right.
2. You see only garbage on the first few frames.
3. Motion compensation on the bottom of the screen doesn't work 100% some times.
The following steps are needed to get it working:
1. git clone git://anongit.freedesktop.org/~deathsimple/xf86-video-ati
2. Compile and install the modified xf86-video-ati driver
3. Restart X and make sure the driver works correctly
4. git clone git://anongit.freedesktop.org/~deathsimple/xvmc-r600
5. cd xvmc-r600 && git checkout pipe-video
6. ./configure --enable-gallium-r600 --with-state-trackers=xorg,xorg/xvmc --enable-gallium-g3dvl
7. make
If everything works right you now should have an lib/gallium/libXvMCg3dvl.so.1.0. Edit (or create) /etc/XvMCConfig so it contains the full path to the newly created libXvMCg3dvl.
Start mplayer with "-vo xvmc -vc ffmpeg12mc" and a MPEG2 codec video.
Please be aware that the XvMC state tracker only implements the motion compensation part of the video pipeline and then only some flavours of them. So it won't work with every MPEG2 flavour, but at least my plain old DVD VOBs does.
It's only the first small step, but hey we have to start somewhere and there is already somebody working on the next part - doing iDCT in shaders.
Christian.