LINUX.ORG.RU

Аппаратное ускорение декодирования видео со свободным драйвером AMD

 , , , ,


3

2

Настроил сегодня себе и написал статью в wiki ubuntu.ru

http://help.ubuntu.ru/wiki/свободный_драйвер_видеокарт_amd#аппаратное_ускорен...

p.s: там же ниже и про снижение температуры добавил. у меня было 60+, а стало 50+ грудусов.

Пробуем, проверяем и обсуждаем :)

Напишите если заставите работать ускорение с встроенным в google chrome flash-player-ом. У меня получилось только с системным.

Ответ на: комментарий от daemonpnz

Поддержка декодирования реализована для карт Radeon HD 4000 - Radeon HD 7000 «Southern Islands» (с движком UVD2 и новее)

Для Radeon HD4800 не реализована.

qdlt ()
Ответ на: комментарий от carasin

на Intel'е-то только VAAPI, которое нигде не используется

VA-API используется в VLC и XBMC.

Кстати, ЕМНИП, GMA X4500 не умеет аппаратное ускорение воспроизведения видео.

Вроде должен уметь. GMA X4500 входил в G45, а G45 согласно FAQ Intel (последний вопрос) аппаратное декодирование умеет.

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

libvdpau как-то получает имя драйвера от X-сервера, либо из VDPAU_DRIVER, либо считает, что имя «nvidia». Драйвера на gallium3d своё имя корректно сообщают, у них есть такая возможность.

Кстати, у Intel'а же Gallium3D не используется! Вероятно, поэтому симлинк libvdpau_i965 и не срабатывает (с *.1 в конце работает, если установлена переменная VDPAU_DRIVER=i965, но автоматом не детектит).

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

В VLC оно само по себе не работает. Нужна поддержка со стороны FFMPEG. XBMC — это же медиацентр, а не простой плеер. А VDPAU умеют все кому не лень.

UPD: а, значит в 4500 есть; до неё нет.

carasin ★★★★★ ()
Последнее исправление: carasin (всего исправлений: 1)
Ответ на: комментарий от mylorlogin

Во, теперь хоть какая-то ясность есть. В первом пункте ещё можно пояснить, что из PPA обновляется Mesa, а не абы что.

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

Кстати, у Intel'а же Gallium3D не используется!

Если бы использовался, VDPAU работало уже давно.

В общем, там дело в драйвере, да. Я попробовал сделать так:

--- xserver-xorg-video-intel-2.19.0-orig/src/intel_dri.c	2012-04-30 00:51:03.000000000 +0400
+++ xserver-xorg-video-intel-2.19.0/src/intel_dri.c	2013-08-16 13:48:01.043241968 +0400
@@ -1622,7 +1622,7 @@
 	int dri2_major = 1;
 	int dri2_minor = 0;
 #if DRI2INFOREC_VERSION >= 4
-	const char *driverNames[1];
+	const char *driverNames[2];
 #endif
 
 	if (intel->force_fallback) {
@@ -1690,9 +1690,10 @@
 	    info.ScheduleSwap = I830DRI2ScheduleSwap;
 	    info.GetMSC = I830DRI2GetMSC;
 	    info.ScheduleWaitMSC = I830DRI2ScheduleWaitMSC;
-	    info.numDrivers = 1;
+	    info.numDrivers = 2;
 	    info.driverNames = driverNames;
 	    driverNames[0] = info.driverName;
+	    driverNames[1] = info.driverName;
 	}
 #endif
 
--- xserver-xorg-video-intel-2.19.0-orig/src/sna/sna_dri.c	2013-08-16 13:28:37.000000000 +0400
+++ xserver-xorg-video-intel-2.19.0/src/sna/sna_dri.c	2013-08-16 13:48:16.319241329 +0400
@@ -2016,7 +2016,7 @@
 	DRI2InfoRec info;
 	int major = 1, minor = 0;
 #if DRI2INFOREC_VERSION >= 4
-	const char *driverNames[1];
+	const char *driverNames[2];
 #endif
 
 	DBG(("%s()\n", __FUNCTION__));
@@ -2067,9 +2067,10 @@
 	info.ScheduleSwap = sna_dri_schedule_swap;
 	info.GetMSC = sna_dri_get_msc;
 	info.ScheduleWaitMSC = sna_dri_schedule_wait_msc;
-	info.numDrivers = 1;
+	info.numDrivers = 2;
 	info.driverNames = driverNames;
 	driverNames[0] = info.driverName;
+	driverNames[1] = info.driverName;
 #endif
 
 #if DRI2INFOREC_VERSION >= 6

Сработало, без установленной VDPAU_DRIVER оно пытается открыть libvdpau_i965.so:

$ unset VDPAU_DRIVER 
$ vdpauinfo
display: :0.0   screen: 0
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1

i-rinat ★★★★★ ()
Ответ на: комментарий от carasin

В VLC оно само по себе не работает. Нужна поддержка со стороны FFMPEG.

Я не в курсе деталей реализации, но с установленным xvba-va-driver декодирование в VLC через VA-API работает.

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

Я, конечно, в коде полный ноль, но так понял, что это нужно сам xf86-video-intel патчить?

Может, отпишешь в его багзиллу? А то, боюсь, если это сделаю я, то стану лишним промежуточным звеном, несколько не сведущим в теме.

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

У меня до F19 не работало. С F19 заработало (только что открыл для себя, кстати). Да и просто гуглил недавно на эту тему.

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

это нужно сам xf86-video-intel патчить?

Да. Там просто вместо одного имени сообщается два одинаковых.

Может, отпишешь в его багзиллу?

Послал патч в рассылку, посмотрим, что выйдет.

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

Тогда держи меня в курсе, если там наметится чего :)

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

наверное достаточно было бы просто ссылки на свежий релиз-кандидат 3.11, а не обязательно drm-next

С v3.11-rc5 у меня разрешение экрана становится нестандартным и начинаются дикие тормоза.

p.s: при установке rc5 была ругань типа «Possible missing firmware radeon блаблабла».

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

Понятно, значит на 3.12 заготовлены какие-то необходимые на вашем железе фиксы.

при установке rc5 была ругань типа «Possible missing firmware radeon блаблабла».

Там, насколько я помню, для пары ещё не вышедших APU (Kaveri и Kabini) прошивок не хватает.

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

Тогда держи меня в курсе, если там наметится чего :)

В общем, прошёл почти месяц, но всё глухо. За это время в тред ответил только Eric Anholt, который зашёл сказать, что это всё неправильно. По его задумке, в новом DRI выпиливаются имена вообще, и libvdpau следует самой опрашивать установленные драйвера на предмет соответствия текущему оборудованию. Идея в целом здравая, но для реализации потребует изменения libvdpau, всех существующих драйверов, и, самое главное, внесения изменений в VDPAU, в API. Всё перечисленное маловероятно.

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

Да, буквально позавчера прочитал в рассылке. Что-то совсем там всё глухо. Соответственно, и на мой репорт в RHBZ реакции никакой (но там ещё и Ajax слоупочит, да). Но всё равно спасибо, что вспомнил :)

carasin ★★★★★ ()
Ответ на: комментарий от i-rinat

О, крутяк! Но чего-то эти ребята долго тянули. В какой релиз войдёт, не в курсе случаем?

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

Но чего-то эти ребята долго тянули

Это не они тянули, это я неправильно поступил, послав в рассылку. Надо было сразу баг заводить. После того как я баг завёл, меньше недели прошло.

В какой релиз войдёт, не в курсе случаем?

Думаю, это будет 2.99.908

i-rinat ★★★★★ ()

Opensuse 13.1, всё работает из коробки.

kinik ★★☆ ()
Ответ на: комментарий от i-rinat

Это будущий 3.0 или следующее минорное обновление?

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

Это будущий 3.0

Написано, что вся линейка 2.99 это подготовка к 3.0, но это уже с августа тянется.

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