LINUX.ORG.RU
ФорумTalks

[ati][oss][gallium]Wanna try XvMC on R600 hardware?

 ,


0

1

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.

★★★★★

Последнее исправление: madgnu (всего исправлений: 1)

Пичаль что это только мпег2, но радует что работы ведутся.

Behem0th ★★★★★
()

so only 3 of 4 tries to play a video are working right.

Доставило.

Новость хорошая, может нуво тоже подтянится.

Kosyak ★★★★
()

Есть желающие попробовать и отписаться здесь?

Behem0th ★★★★★
()
Ответ на: комментарий от mikhalich

> XvMC не будет в nouveau.

Это они вначале так думали. А потом понемногу в ветке pipe-video появилась работающая версия. Пруф:

http://article.gmane.org/gmane.comp.video.mesa3d.devel/22387 цитата:

«What's currently in the pipe-video branch works with softpipe, nv40 pipe_context, and the nv40 hardware decoder via Jimmy Rentz's patches. »

Andrew-R ★★★★
()
Ответ на: комментарий от madgnu

Ну типа разработчики говорят - 3D работает, но мы не рекомендуем вам его использовать. И в дистрах по дефолту не ставится пакет с dri для нуво.

Я вот полгода назад даже в тукс рейсера на ионе играл - 10-15 фпс, правда.

Kosyak ★★★★
()
Ответ на: комментарий от madgnu

Интересно, а как это я умудрялся всё это время смотреть DVD на Radeon HD 4550 (Athlon X2 3800+) и AMD 785G (Phenom II X4 810), используя драйвер xf86-video-ati?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

[sarcasm]О ужас!!! Как ты это сделал????[/sarcasm]

Речь идет об аппаратном ускорении видео, а не о софтварном. На софтварном я и 1080p кручу вполне себе.

madgnu ★★★★★
() автор топика
Ответ на: комментарий от Andrew-R

Насколько я помню IRC срач, там были идеи полукостыльно реализовать VDPAU, про XvMC я не слышал отмены формулировки «not worth amount of work requried», или как там.

Тут скорее нашелся доброволец, никто ж не запрещает.

mikhalich ★★
()
Ответ на: комментарий от madgnu

>алсо, тех дровишек, что указаны в первом посте, фре не видать еще лет 20.

или -20 лет.

FiXer ★★☆☆☆
()
Ответ на: комментарий от madgnu

тех дровишек, что указаны в первом посте, фре не видать еще лет 20.

Почему же? Неужели такая сильная привязка к ядру Linux, что никак невозможно пропатчить драйвер xf86-video-ati под FreeBSD?

NVIDIA, вон, для [amd64] всё-таки прогнулась.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> Неужели такая сильная привязка к ядру Linux, что никак невозможно пропатчить драйвер xf86-video-ati под FreeBSD?

ATI драйвер в Х-ах пока поддерживает UMS, а вот интел и нуво - уже нет. Там привязка к drm, который в принципе портабелен (что подтверждает порт gallium3d/nouveau на AROS), но вот на *BSD его пока никто целиком не притащил. Но планы есть:

http://www.dragonflybsd.org/docs/developer/GEMdrmKMS/

Я потому и сказал, что если в linux баги предварительно не отлавливать - они все приплывут к вам-с ....

Andrew-R ★★★★
()
Ответ на: комментарий от Andrew-R

они завели это на nv40?

у меня 7800, получается что в винде у меня этого никогда не будет (поддерживается начиная с 8хх0), а в линуксе возможно?

pollution
()
Ответ на: комментарий от iZEN

дело не в иксовом драйвере, а в ядерной части.

madgnu ★★★★★
() автор топика
Ответ на: они завели это на nv40? от pollution

в винде это DXVA(2), насколько я помню. Там определено несколько форматов для входящего видео, и для каждого формата - уровень ускорения. VDPAU позволяет ускорять гораздо больше форматов, чем XvMC (тот api , который сейчас реализуют в галлиуме), но входная точка там - битстрим процессинг (VLD), а он без поддержки специальным железом на видеокарте эффективно не реализуется. Так что XvMC MPEG2 должен быть рабочим на nv40 под проприетарным драйвером , под виндой - через DXVA, и под linux/nouveau - с патчами. Но mpeg4/h264/vc1 - будут без ускорения, хотя для vc1 вроде можно частично переложить постпроцессинг на GPU, но это ещё не реализовано.

Andrew-R ★★★★
()
Ответ на: комментарий от RussianNeuroMancer

> То есть это всё то же декодирование шайдерами (или что там сейчас?) но с поддержкой «протокола» VDPAU?

Насколько я понимаю - да.

Andrew-R ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.