LINUX.ORG.RU
ФорумTalks

Кодирование видео в H.264 на свободных дровах radeon.

 , , , ,


2

1

Christian König сотрудник компании AMD предоставил патчи с экспериментальной поддержкой кодирования видео в формате x264 на свободных драйверах для карт Radeon. Патчи на ядро можно найти в рассылке dri-devel, Юзерспайс часть в рассылке mesa-dev. Также требуется подгрузить микрокод BONAIRE_vce.bin. Меса часть работает на основе трекера состояний OpenMAX на данный момент не включенного в основную ветку месы. На данный момент поддерживается только VCE2 железо на картах AMD GCN (Sea Islands, Kabini, etc).

Патчи на ядро

http://lists.freedesktop.org/archives/dri-devel/2014-February/053191.html

Патчи на месу

http://lists.freedesktop.org/archives/mesa-dev/2014-February/053203.html

Фирмварь

http://people.freedesktop.org/~agd5f/radeon_ucode/

Также в мастер ветку месы приняли патчи для r600g драйвера с поддержкой OpenGL 3.3. Для карт на чипах r600/r700 требуется наложить патч на ядро. Патч брать отсюда http://www.spinics.net/lists/dri-devel/msg52745.html

★★★★★

Также в мастер ветку месы приняли патчи для r600g драйвера с поддержкой OpenGL 3.3

Отличная новость! Спасибо.

feofan ★★★★★ ()

Это всё конечно очень круто, но меса там по производительности и совместимости когда-нибудь догонит блоб? Я уже промолчу про поддержку OpenGL 4.

Каждый новый релиз месы в инете появляются скрины игр с высыпавшимися текстурами. Причём ладно бы каких крузисов - старья типа Painkiller и WoT.

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

но меса там по производительности и совместимости когда-нибудь догонит блоб

Про какой конкретно блоб мы говорим? У интела официально развивается только опенсорс брайвер, у АМД и блоб и опенсорс развиваются, у Нвидии пока только блоб. Если мы говорим про АМД, то их опенсорс драйвер все ближе и ближе к блобу и по поддерживаемым фичам(пример тому данный пост) и по производительности. Вообще о поддержке расширений можешь посмотреть здесь http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt

скрины игр с высыпавшимися текстурами

Репортить, репортить и еще раз репортить!

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

Кстати, как там дела с производительностью radeonsi? На r600g не жалуюсь, но стоит ли следующую карту брать на radeonsi?

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

Не, лично я репортить не хочу, просто куплю железо с нормальными драйверами.

Сейчас у меня настольного компа нету, зато есть G4 с nouveau. Следующую настолку буду брать есссно на нвидии, и юзать с блобом. Ибо от опенсорса что у интыла, что у ати, что у нуво хочется блевать дальше чем видишь.

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

производительностью radeonsi

Чего конкретно? Сижу на нем практически с самого появления карт в продаже. Скажу так что раньше был вообще треш и угар, сейчас ситуация нормализуется. Например производительность 2Д только недавно более менее повысили, есть затупы но хотя бы ресайз адски перестал тормозить. 3Д уже не плох, например Painkiller идет на максимальных(есть небольшие лаги миллисекундные подвисания) но фпс неплохой, а тот же евро трек симулятор на минимальных порой выдает 5фпс. Но видно что работа ведется и ситуация исправляется.

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

Спасибо, весьма наглядно. Прогресс налицо.

feofan ★★★★★ ()

с экспериментальной поддержкой кодирования видео в формате x264

Кодирования или декодирования? Если кодирования, то где патчи для x264?

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

OpenGL3.3 тестировал?

На si тестировал на r600g нет. На radeonsi лично у меня завелись без артефактов unigine-valley, unigine-heaven.4.0 и OilRush(на 7950 играбелен на максимальных). Метро последний свет запускается с артефактами.

скроллинг браузеров не тормозит?

Я уже не могу понять тормозит он или я привык. Если есть какой ни будь тест, говори буду дома протестирую.

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

OilRush(на 7950 играбелен на максимальных)

Уже хорошо.

Метро последний свет запускается с артефактами.

Надеюсь поправят. Соберу свежую месу и потестирую на r600g

Я уже не могу понять тормозит он или я привык. Если есть какой ни будь тест, говори буду дома протестирую.

Не знаю таких. Попроси посмотреть того, кто не привык =)

Спасибо за информацию.

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

OpenMAX открытый апи от кронос групп, так что возможно со временем поддержка появится много где. Вроде в гсстримере уже есть поддержка.

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

radeonsi торт,
http://openbenchmarking.org/result/1402023-SO-1402021SO83 вот свежее тестирование моих 6770 vs 7790 в убунте и сусе, плюс еще арчевод протестировал 6850
ну и пару сравнений радеонси и винды
http://www.gearsongallium.com/?p=1129 дота, пеинкиллер, халва2 лост кост(тут вообще линукс просто уделал винду)

http://www.gearsongallium.com/?p=1095
хевен и валлей

Novell-ch ★★★★★ ()
Ответ на: комментарий от svr4

Каждый новый релиз месы в инете появляются скрины игр с высыпавшимися текстурами. Причём ладно бы каких крузисов - старья типа Painkiller и WoT.

Что, уже нативные версии вышли?

Lighting ★★★★★ ()
Ответ на: комментарий от Novell-ch

А насколько влияет версия llvm на производительность r600g? На блобе производительность Oil Rush была раза в два выше.

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

Сомневаюсь что сильно, проверь
R600_DEBUG=nollvm
а потом с
R600_DEBUG=nosb
отключение ллвм на фпс наверно вообще не повлияет

Novell-ch ★★★★★ ()

x264 на свободных дровах

Не нужно, h264 — несвободный формат.

tides ()

Крутотень! Кодирование на видеокартах «искаропки» получим в дистрах, конечно, ещё не скоро, а вот OpenGL 3.3 для r600g — очень радостная новость! Ещё ни разу не пожалел, что перешёл на AMD.

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

Для полноты картины добавлю, что меса была собрана с llvm-shared-libs. В качестве решения пересобрал месу без llvm, чтобы не морочиться с переменными.

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

Метро последний свет запускается с артефактами.

На r600g тоже.

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

Боюсь что месу с радеоном без llvm вообще не собрать, это обязательная зависимость, даже для r600, llvm-shared-libs просто уменьшаю размер бинарей.
я недавно провел чуть тестов, http://www.gearsongallium.com/?p=1112 , влияния особого нету, только бинари распухают без llvm-shared-libs

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

Боюсь что месу с радеоном без llvm вообще не собрать, это обязательная зависимость

feofan@localhost ~ % eix -I mesa 
media-libs/mesa
     Available versions:  7.10.3 7.11.2 8.0.4-r1 (~)9.0.3 9.1.6 (~)9.2.5 [M](~)10.0.2-r1 [M](~)10.0.3 {bindist +classic debug +egl g3dvl +gallium gbm gles gles1 gles2 hardened (+)llvm llvm-shared-libs motif +nptl opencl openvg osmesa pax_kernel pic r600-llvm-compiler selinux shared-dricore +shared-glapi vdpau wayland xa xorg xvmc ABI_MIPS="n32 n64 o32" ABI_X86="32 64 x32" KERNEL="FreeBSD" PYTHON_SINGLE_TARGET="python2_6 python2_7" PYTHON_TARGETS="python2_6 python2_7" VIDEO_CARDS="freedreno i915 i965 ilo intel mach64 mga nouveau r100 r128 r200 r300 r600 radeon radeonsi savage sis tdfx via vmware"}
     Installed versions:  9999[?](01:41:52 06.02.2014)(classic egl gallium gbm gles2 nptl vdpau xvmc -bindist -debug -gles1 -llvm -llvm-shared-libs -opencl -openvg -osmesa -pax_kernel -pic -r600-llvm-compiler -selinux -wayland -xa ABI_MIPS="-n32 -n64 -o32" ABI_X86="32 64 -x32" KERNEL="-FreeBSD" VIDEO_CARDS="radeon -freedreno -i915 -i965 -ilo -intel -nouveau -r100 -r200 -r300 -r600 -radeonsi -vmware")
     Homepage:            http://mesa3d.sourceforge.net/
     Description:         OpenGL-like graphic library for Linux
feofan ★★★★★ ()

Правильно я понимаю, что там ни какого х264 нету? полностью свой движок h264 для кодирования

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

Я себе это представляю это так: в драйвере реализована поддержка АПИ OpenMAX для ускорения кодирования, это апи поддерживает гмстример с помощью которого можно жать в данный формат.

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

Насколько я понимаю
radeon -r600 -radeonsi значит что ты собираешь драйвер радеон, а r600 radeonsi нет?
Тогда конечно, класическим драйверам галииум и llvm не нужен.

покажи
nm -D /usr/lib64/dri/r600_dri.so

Novell-ch ★★★★★ ()
Последнее исправление: Novell-ch (всего исправлений: 1)
Ответ на: комментарий от feofan

какие там флаги в генте я не знаю, но r600_dri.so может быть только с галлиумом, классический выкинули очень давно.

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

Посмотрел ebuild. С моими флагами gallium просто собирается с поддержкой r600 и r300.

llvm нужен только при включении opencl (или r600-llvm-compiler, но sb лучше), который мне не нужен.

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

Значит разработчкики генту умнее чем разработчики месы

xr300)
            HAVE_GALLIUM_R300=yes
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
            gallium_require_llvm "Gallium R300"
            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
            gallium_check_st "radeon/drm" "r300/dri" "" "" ""
            DRICOMMON_NEED_LIBDRM=yes
            ;;



gallium_require_llvm() {
    if test "x$MESA_LLVM" = x0; then
        case "$host_cpu" in
        i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
        esac
    fi
}
Novell-ch ★★★★★ ()
Ответ на: комментарий от Novell-ch

Строго говоря, этот ebuild не из основного дерева, умнее разработчиков месы хозяин оверлея x11. Посмотрю ebuild из основного дерева. А llvm тянут другие зависимости в системе, поэтому он у меня по-прежнему есть.

feofan ★★★★★ ()
Ответ на: комментарий от Novell-ch

Он, похоже, хитрее — вот выдержка из ебилда:

# relax the requirement that r300 must have llvm, bug 380303
	epatch "${FILESDIR}"/${P}-dont-require-llvm-for-r300.patch

А в основном дереве, да, llvm обязателен.

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

надо заголовок изменить

Я кажется понял в чем ошибся, h264 стандарт а x264 библиотека реализующая стандарт. Ты это имел в виду?

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

3.14 ядро.

3.14

О, крутой номер. Надо сферического пингвина на лого и начать нумеровать версии на манер TeX.

Pavval ★★★★★ ()

Все собрал что надо, но тут начались танцы с gsteamer, не хочет он цеплять gst-omx вот как бы все есть

GST_DEBUG=*:2 gst-inspect-1.0 /usr/lib64/gstreamer-1.0/libgstomx.so 
Plugin Details:
  Name                     omx
  Description              GStreamer OpenMAX Plug-ins
  Filename                 /usr/lib64/gstreamer-1.0/libgstomx.so
  Version                  1.0.0
  License                  LGPL
  Source module            gst-omx
  Source release date      2013-03-22
  Binary package           GStreamer OpenMAX Plug-ins source release
  Origin URL               Unknown package origin

  omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
  omxh264dec: OpenMAX H.264 Video Decoder
  omxmpeg4videoenc: OpenMAX MPEG4 Video Encoder
  omxaacenc: OpenMAX AAC Audio Encoder

  4 features:
  +-- 4 elements

но в просто gst-inspect-1.0 |grep omx нету ничего

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

[code]
omxregister-bellagio -v

Scanning directory /usr/lib64/bellagio/

Scanning library /usr/lib64/bellagio/libomx_r600.so
Component OMX.r600.video_decoder registered with 0 quality levels
Specific role OMX.r600.video_decoder.mpeg2 registered
Specific role OMX.r600.video_decoder.avc registered
Component OMX.r600.video_encoder registered with 0 quality levels
Specific role OMX.r600.video_encoder.avc registered

Scanning library /usr/lib64/bellagio/libomx_radeonsi.so
Component OMX.radeonsi.video_decoder registered with 0 quality levels
Specific role OMX.radeonsi.video_decoder.mpeg2 registered
Specific role OMX.radeonsi.video_decoder.avc registered

3 OpenMAX IL ST static components in 2 libraries succesfully scanned

[/code]

найти бы что-то нормальное что бы могло использовать это bellagio, с vdpau все в 100 раз легче.

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

Короче завел все, вот пару цифер

С ускорением, цпу заняты на 10-20 процентов, результат конечно не очень, перекодированое видео дергается, и процесс не завершается сам, нужно прерывать вручную, но это далеко не релиз еще.

time gst-launch-1.0    filesrc location=./Serenity\ -\ HD\ DVD\ Trailer.mp4 ! qtdemux !  h264parse ! omxh264dec !  omxh264enc  !  avimux ! filesink location=out.avi
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
OMX-In RM_getResource No resource to be handled
OMX-In RM_getResource No resource to be handled
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:32.128913507
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
^C

real    0m32.989s
user    0m8.146s
sys     0m7.616s

Вот с программной перекодировкой

time gst-launch-1.0 -f   filesrc location=./Serenity\ -\ HD\ DVD\ Trailer.mp4 ! qtdemux !  h264parse ! avdec_h264  !  x264enc  !  avimux ! filesink location=out.avi
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:01:03.227953327
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

real    1m3.502s
user    4m2.270s
sys     0m0.599s

Тут результат норм, только дольше более чем в 2 раза, и все 4 ядра на максимуме.

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

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

А качество картинки(визуально) такое же или хуже?

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