LINUX.ORG.RU

libvdpau-va-gl

 , , ,


33

20

https://github.com/i-rinat/libvdpau-va-gl/releases

В двух словах, это VDPAU драйвер, который использует OpenGL для рисования и VA-API для декодирования видео.

VDPAU это открытый интерфейс, который подразумевает единую точку входа (libvdpau) и подключаемые драйверы; API не замкнуто накоротко на nVidia. Выбор конкретного драйвера осуществляется либо через переменную окружения VDPAU_DRIVER, либо спрашивается у X-сервера. Если так или иначе получить имя не удалось, считается, что оно есть «nvidia». Драйвер представляет собой разделяемую библиотеку с именем вида libvdpau_<drivername>.so.1. Программы линкуются с libvdpau, а она в свою очередь загружает нужный драйвер.

Чтобы использовать, нужно собрать, положить библиотеку в директорию, где её сможет найти компоновщик, и добавить в окружение переменную VDPAU_DRIVER=va_gl. Проверить, что драйвер работает, можно запустив vdpauinfo. А vainfo покажет, работает ли драйвер VA-API.

На видеокартах AMD по чудаковатым причинам происходят падения внутри XCloseDisplay. Чтобы обойти проблему, нужно в переменную VDPAU_QUIRKS добавить строку XCloseDisplay. Элементы в VDPAU_QUIRKS перечисляются через запятую, слитно, без пробелов и служат для тонкой настройки поведения драйвера. Кроме XCloseDisplay, есть ещё параметр ShowWatermark, включающий отображение строки va_gl в правом нижнем углу. Полный список можно найти в README.md.

Начиная с версии 2.99.908 xf86-video-intel сообщает переходнику libvdpau.so имя VDPAU драйвера. Символьных ссылок
libvdpau_i965.so.1libvdpau_va_gl.so.1
libvdpau_i915.so.1libvdpau_va_gl.so.1
достаточно для загрузки, и необходимости в использовании VDPAU_DRIVER больше нет.

★★★★★

Последнее исправление: i-rinat (всего исправлений: 12)

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

О, круто. А есть возможность поставить отладочные символы для Xorg? Без них не видно значения параметров функций.

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

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

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

я не гарантирую что получится снять еще одну корку.

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

Ещё меня напрягает тот факт, что libvdpau_va_gl в бэктрейсе не отметилось. Если падение связано непосредственно с каким-то вызовом функции, добавить костыль было бы проще. А тут, похоже, так: либо у меня, либо в драйвере портится память, а последствия наступают позже. Ещё меня напрягает, что valgrind выдаёт тонны «invalid write» в fglrx_drv.so

Может ckotinko сможет прояснить, нормальны ли эти «invalid write»?

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

Итог: flashplayer в целом не тормозной, тормозное в нём масштабирование. Стало быть, если его ускорить, всё станет намного веселее.

мне интересно, по каким таким причинам, у меня не тормозит? Может причина в том, что быдлокодер написал данный быдлокод на асме, и тестировал его для своего процессора, который примерно совпал с моим? Или это всё давно кануло в Лету, и сейчас там что-то другое?

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

Даже жалко тебя-попутно фиксиш тонну костылей...а все из-за кривых дров АМД...

Меня же никто не заставляет. К тому же в некоторой степени я заинтересован в работоспособности vdpau-драйвера на intel и amd.

Не закрытый контекст/невыгруженные шейдеры/подбное-не никак не может привести к падению иксов на нвидии

У меня не вполне обычное использование API. Да ещё и аппаратное декодирование видео. Я слышал (читал) о проблемах с этим и на nVidia. Ведь нереально покрыть тестами вообще всё. Баг может быть и в иксах.

Как вы это терпите вообще.

Плачем и продолжаем есть кактус. Вот вроде intel, открытые дрова. А в нутре — ад. Тысячи ioctl на каждый кадр. Сотни буферов создаются и удаляются, и каждое из этих удалений вызывает сброс кэшей. Загрузка CPU в разы больше, чем могла быть. Не думаю, что в мире есть много людей, которые понимают, как работает интеловский драйвер, даром что сорцы доступны. И скорее всего, среди них нет ни одного, желающего это чинить.

Выкинуть этот костыль и юзать нвидию не вариант?

Наверное, так и стоило поступить. Я думал, будет проще и быстрее.

зачем кушать то кактус...

От него штырит.

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

отладочные символы для Xorg

Пересобрал.

Program received signal SIGSEGV, Segmentation fault.
0xb7663a2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
(gdb) bt
#0  0xb7663a2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
#1  0x080a828d in SetWinSize ()
#2  0x080a87ab in ResizeChildrenWinSize ()
#3  0x080ad79b in SetRootClip ()
#4  0x080c88c8 in xf86EnableDisableFBAccess ()
#5  0x08105b0b in xf86CursorEnableDisableFBAccess ()
#6  0xb6a3cf27 in xdl_xs113_xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#7  0xb68a2bb9 in xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#8  0xb6a5d2d9 in tfvUpdateDisplay () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#9  0xb6a2e293 in xdl_xs113_atiddxTFVLeaveExclusiveMode () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#10 0xb6a1ee4b in xdl_xs113_FGLRXClientGone () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#11 0xb6a175f0 in xdl_xs113_atiddxDestroyWindow () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#12 0x081621f5 in damageDestroyWindow ()
#13 0x081125bf in compDestroyWindow ()
#14 0x08139dd6 in DbeDestroyWindow ()
#15 0x080a760b in FreeWindowResources ()
#16 0x080aa39e in DeleteWindow ()
#17 0x0809eed5 in doFreeResource ()
#18 0x0809fb00 in FreeResource ()
#19 0x08073b34 in ProcDestroyWindow ()
#20 0x08079b65 in Dispatc

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

От него штырит.

Только это имеет значение:-)

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

мне интересно, по каким таким причинам, у меня не тормозит?

«С другой стороны есть flashplayer, который умеет аппаратное ускорение отрисовки и декодирования, но умеет это только через API VDPAU, предложенное nVidia.»

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

Пересобрал.

Что-то всё так же глухо — параметров не видно. Либо символы не подгрузились, либо gdb по другому на i686 работает.

Можешь попробовать «bt full»? Это должно показать ещё и локальные переменные. Может заодно и параметры покажет.

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

Кстати (или не к стати) об штырит, у меня новый прикол. Если в не развернутом окне флеш плагина попытаться вызвать меню по ПКМ то плагин падает. Подцепился к plugin-containe gdb.

http://paste.kde.org/728714/

Что значат эти строки? Что то я такие раньше не встречал.

Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.3400.3-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace

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

Если в не развернутом окне флеш плагина попытаться вызвать меню по ПКМ то плагин падает.

А если VDPAU_DRIVER отключить, падения прекращаются?

Что значат эти строки? Что то я такие раньше не встречал.

В составе некоторых библиотек идут python-скрипты для gdb. Они предназначены для более информативного отображения значений переменных, для отсеивания визуального мусора. Вот один из них не удалось загрузить. Я в них ничего не понимаю, только раз ставил дополнительный скрипт для отображения содержимого C++ STL контейнеров. Стало намного удобнее отлаживать.

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

bt full

http://ompldr.org/vaTVocw/j30073_1258158701.jpg

Program received signal SIGSEGV, Segmentation fault.
0xb75d1a2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
(gdb) bt full
#0  0xb75d1a2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
No symbol table info available.
#1  0x080a828d in SetWinSize ()
No symbol table info available.
#2  0x080a87ab in ResizeChildrenWinSize ()
No symbol table info available.
#3  0x080ad79b in SetRootClip ()
No symbol table info available.
#4  0x080c88c8 in xf86EnableDisableFBAccess ()
No symbol table info available.
#5  0x08105b0b in xf86CursorEnableDisableFBAccess ()
No symbol table info available.
#6  0xb69aaf27 in xdl_xs113_xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#7  0xb6810bb9 in xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#8  0xb69cb2d9 in tfvUpdateDisplay () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#9  0xb699c293 in xdl_xs113_atiddxTFVLeaveExclusiveMode () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#10 0xb698ce4b in xdl_xs113_FGLRXClientGone () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#11 0xb69855f0 in xdl_xs113_atiddxDestroyWindow () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
No symbol table info available.
#12 0x081621f5 in damageDestroyWindow ()
No symbol table info available.
#13 0x081125bf in compDestroyWindow ()
No symbol table info available.
#14 0x08139dd6 in DbeDestroyWindow ()
No symbol table info available.
#15 0x080a760b in FreeWindowResources ()
No symbol table info available.
#16 0x080aa39e in DeleteWindow ()
No symbol table info available.
#17 0x0809eed5 in doFreeResource ()
No symbol table info available.
#18 0x0809fb00 in FreeResource ()
No symbol table info available.
#19 0x08073b34 in ProcDestroyWindow ()
No symbol table info available.
#20 0x08079b65 in Dispatch ()
No symbol table info available.
#21 0x0806769a in main ()
No symbol table info available.

No symbol table info available. - Еще раз проверю, может я что то упустил при сборке.

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

А если VDPAU_DRIVER отключить, падения прекращаются?

Да, прекращаются.

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

Можешь на пальцах для нуба объяснить за что отвечает опция:

--enable-debug Enable debugging (default: disabled)

Имеет это отношение к одладочным символам? Чтобы получить больше информации от gdb нужно собирать с включением этой опции?

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

А в нутре — ад. Тысячи ioctl на каждый кадр. Сотни буферов создаются и удаляются, и каждое из этих удалений вызывает сброс кэшей. Загрузка CPU в разы больше, чем могла быть.

И эти люди приводили одним из главных критериев отказа от Gallium3D более высокий цпу оверхед по сравнению с классическими драйверами..

Behem0th ★★★★★
()

У меня vainfo выдает:

libva info: VA-API version 0.33.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i915_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
И при запуске проги с этой либой тот же вывод.

Видеокарта не поддерживает VAAPI?

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

Видеокарта не поддерживает VAAPI?

Если vainfo не видит VA-API, значит его нет. А что за видеокарта?

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

более высокий цпу оверхед по сравнению с классическими драйверами..

С 3d у них получше. Описанный мной ад — это порождение VA-API драйвера.

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

--enable-debug Enable debugging (default: disabled)
Имеет это отношение к одладочным символам? Чтобы получить больше информации от gdb нужно собирать с включением этой опции?

Да, имеет. Да, надо. Обычно эта опция добавляет "-g" к опциям при вызове компилятора, и он пишет отладочную информацию в объектные файлы.

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

быдлокодер написал данный быдлокод на асме, и тестировал его для своего процессора, который примерно совпал с моим?

лоровские спецы как всегда заставляют гордиться родиной.

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

Пересобрал с --enable-debug и ничего не поменялось.

Program received signal SIGSEGV, Segmentation fault.
0xb75aba2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
(gdb) bt
#0  0xb75aba2f in pixman_region_intersect () from /usr/lib/libpixman-1.so.0
#1  0x080a858d in SetWinSize ()
#2  0x080a8aab in ResizeChildrenWinSize ()
#3  0x080ada9b in SetRootClip ()
#4  0x080c8f08 in xf86EnableDisableFBAccess ()
#5  0x0810686b in xf86CursorEnableDisableFBAccess ()
#6  0xb6984f27 in xdl_xs113_xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#7  0xb67eabb9 in xclEnableDisableFBAccess () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#8  0xb69a52d9 in tfvUpdateDisplay () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#9  0xb6976293 in xdl_xs113_atiddxTFVLeaveExclusiveMode () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#10 0xb6966e4b in xdl_xs113_FGLRXClientGone () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#11 0xb695f5f0 in xdl_xs113_atiddxDestroyWindow () from /usr/lib/xorg/modules/drivers/fglrx_drv.so
#12 0x08163035 in damageDestroyWindow ()
#13 0x081133bf in compDestroyWindow ()
#14 0x0813ac16 in DbeDestroyWindow ()
#15 0x080a790b in FreeWindowResources ()
#16 0x080aa69e in DeleteWindow ()
#17 0x0809f195 in doFreeResource ()
#18 0x0809fdc0 in FreeResource ()
#19 0x08073bb4 in ProcDestroyWindow ()
#20 0x08079be5 in Dispatch ()
#21 0x080676da in main ()

Attaching to process 15031 Reading symbols from /usr/bin/Xorg...(no debugging symbols found)...done.

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

ман «читаемый и поддерживаемый код vs быстрый код»

Там примерно так:

void
do_things(void *ctx, int bufsize)
{
    void *buf;
    for (int k = 0; k < 2000; k ++) {
        buf = malloc(bufsize);
        do_other_things(ctx, buf);
        free(buf);
    }
}

А я хотел бы видеть это:

void
do_things(void *ctx, int bufsize)
{
    void *buf = malloc(bufsize);

    for (int k = 0; k < 2000; k ++) {
        do_other_things(ctx, buf);
    }
    
    free(buf);
}

Причём вместо malloc и free там вызовы ядерной части. Аналог «free» обходит дерево, и если объектов много, это затягивается.

А про читаемость — просто сказка. Вот что может подумать человек, когда видит код?

    if ((used & 4) == 0) {
        *(unsigned int*)batch->ptr = 0;
        batch->ptr += 4;
    }
Первое, что я подумал — тут опечатка и должно быть used & 3.

i-rinat ★★★★★
() автор топика

Собрал на бубунте 12.10, чтобы затестить на Radeon 7670M.

1) Видео в SMPlayer (mplayer патченый)
vaapi: ~10-12% ядра
vdpau: ~15-20% ядра (если без субтитров)
vdpau: ~20-70% ядра (если с субтитрами) - чаще всего держится где-то около 40%, но иногда подскакивает до 70%

2) Видео на youtube
accelerated video rendering (всегда) accelerated video decoding (на 720p и выше не на всех видео)
загрузка ~25-75% ядра (так и не понял от чего зависит)
software rendering 1080p - загрузка 150% и тормоза в фулскрине
Любое изменение размеров (переключение между плеером по-меньше, плеером по-больше или фулскрином) вызывает падение флеша.
Первые 1-2секунды вместо видео идет мусор какой-то.
При прокрутке в ff - флеш дико мерцает и оставляет артефакты http://oi38.tinypic.com/i5so4z.jpg (что-то не могу на ompldr залить)
http://www.youtube.com/watch?v=ZIR9SwhlK0U 1080p изначально accelerated decoding, попрыгав по видео скатывается на software

3) Стримы (twitch и др.)
на твиче сразу же падает флеш, на плеере гудгейма - зеленый экран секунд 10 и тоже падение флеша.

Иксы вроде не падали пока.

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

(Чтобы не было недоразумений.) Какую версию собирал? Ту, что с тегом, или последнюю из git'а? Потому как визуальный мусор я вроде бы исправил, по крайней мере, у меня больше нет.

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

Плачем и продолжаем есть кактус. Вот вроде intel, открытые дрова. А в нутре — ад. Тысячи ioctl на каждый кадр. Сотни буферов создаются и удаляются, и каждое из этих удалений вызывает сброс кэшей. Загрузка CPU в разы больше, чем могла быть. Не думаю, что в мире есть много людей, которые понимают, как работает интеловский драйвер, даром что сорцы доступны. И скорее всего, среди них нет ни одного, желающего это чинить.

Хах.

Я ковырял драйвера интеля пару лет назад(потомучто в нем была причина утечек памяти на оборудовании промышленном)(и решением было-пока железку не заменили-vesa драйвера,когда поставили нвидию-продолжило работать 24 часа в сутки 365 дней в году,а с интелем-ребут каждый день из-за утечек памяти)...какже я плевался-я досихпор при упоминании интеля потом два дня спать спокойно немогу,особенно от диванных теоретиков утверждающих что драйвера интеля могут работать,и даже рендерить без артефактов...

От него штырит.

Это как купить жигуль и ремонтировать всю жизнь...русский дух ага.

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

Собирал с тегом. Пересобрал из гита, мусор пропал и заработало изменение размеров, но теперь по щелчку правой кнопкой сразу же крашится флеш. Кроме того, при воспроизведении compiz стал жрать 50-60% ядра, чего раньше вроде не было.

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

по щелчку правой кнопкой сразу же крашится флеш

Кроме того, при воспроизведении compiz стал жрать 50-60% ядра, чего раньше вроде не было.

Спасибо за тесты, я посмотрю.

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

Intel GMA 3150

$ yum list installed | grep "libva"                                                                            
libva.x86_64                         1.1.1-2.fc18               @updates-testing
libva-devel.x86_64                   1.1.1-2.fc18               @updates-testing
libva-intel-driver.x86_64            1.0.20-1.fc18              @rpmfusion-free-updates-testing
libva-utils.x86_64                   1.1.1-2.fc18               @updates-testing
libva-vdpau-driver.x86_64            0.7.4-2.fc18               @rpmfusion-free
$ ls /usr/lib64/dri                                                                                            
dummy_drv_video.so  i965_drv_video.so     nvidia_drv_video.so  r600_dri.so      s3g_drv_video.so    vmwgfx_dri.so
i915_dri.so         nouveau_dri.so        r200_dri.so          radeon_dri.so    swrast_dri.so
i965_dri.so         nouveau_vieux_dri.so  r300_dri.so          radeonsi_dri.so  vdpau_drv_video.so

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

какже я плевался

Вот и я про то же. Некому чинить: кто-то может, но не хочет, кто-то хочет, но не может. Я попробовал, не осилил, забил.

Это как купить жигуль и ремонтировать всю жизнь...русский дух ага.

Да :(

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

Согласно Intel, карта GMA 3150 может снизить нагрузку на процессор, помогая декодировать видео MPEG2. Первые обзоры показали, что существующие драйвера не поддерживают DXVA. Поэтому производительности N450 и N470 с GMA 3150 на сегодняшний день не достаточно, чтобы смотреть HD видео с более высоким разрешением, чем 720p. HD флэш видео (например, на youtube), также не работает быстро с процессорами Atom.

http://www.notebook-center.ru/video_221.html

Аппаратное ускорение есть, но почему-то не работает.

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

По поводу компиза - ложная тревога, это просто вертикальная синхронизация в каталисте дает такой эффект, я когда тестил включал, вот только до перезагрузки такого не было. Все нормально с загрузкой процессора - жрет как раньше 8-12%.

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

раз 20 потыкал фулскрин и обратно - не падает, даже флеш на крашится

версия иксов

$ Xorg -version
X.Org X Server 1.13.0
а вот нумерация версия дров в бубнте отличается от нумерации catalyst'a
$ apt-cache show fglrx | grep -i version
Version: 2:9.000-0ubuntu3

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

Немного погуглив, определил что это версия 12.10

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

Попробуй так:
LIBVA_DRIVER_NAME=i965 vainfo

Пробовал, падает:

$ LIBVA_DRIVER_NAME=i965 vainfo
libva info: VA-API version 0.33.0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_33
vainfo: intel_driver.c:77: intel_driver_init: Assertion `(((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_DRI1)) || (((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_DRI2)) || (((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_CUSTOM))' failed.
[1]    14296 abort      LIBVA_DRIVER_NAME=i965 vainfo

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

Попробуй LIBVA_DRIVERS_PATH={путь до i915_drv_video.so} ну или симлинк сделать к ней, она может в твоем дистре лежать совсем не в /usr/lib64/dri.

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

3) Стримы (twitch и др.) на твиче сразу же падает флеш, на плеере гудгейма - зеленый экран секунд 10 и тоже падение флеша.

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

libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/fglrx_drv_video.so
libva: va_openDriver() returns 0
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/fglrx_drv_video.so
libva: va_openDriver() returns 0
[VS] error (softVdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC � -> VDP_YCBCR_FORMAT_NV12
[VS] error (softVdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC � -> VDP_YCBCR_FORMAT_NV12
[VS] error (softVdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC � -> VDP_YCBCR_FORMAT_NV12
[VS] error (softVdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC � -> VDP_YCBCR_FORMAT_NV12
[VS] warning (softVdpDeviceDestroy): non-zero reference count (14). Trying to free child objects.

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

Пробовал, падает:

У меня, как оказалось, тоже. Попробуй тогда сделать симлинк i915_drv_video.so -> i965_drv_video.so и запускать просто vainfo.

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

not implemented conversion VA FOURCC

После FOURCC должно идти fourcc (NV12, YV12, I420 и подобное), а драйвер (fglrx_drv_video.so) возвращает какой-то мусор. В этой ситуации мало что можно сделать.

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

У меня, как оказалось, тоже. Попробуй тогда сделать симлинк i915_drv_video.so -> i965_drv_video.so и запускать просто vainfo.

$ vainfo
libva info: VA-API version 0.33.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i915_drv_video.so
libva info: Found init function __vaDriverInit_0_33
libva error: /usr/lib64/dri/i915_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

$ ls -l /usr/lib64/dri/i915_drv_video.so
lrwxrwxrwx 1 root root 17 апр.  20 23:21 /usr/lib64/dri/i915_drv_video.so -> i965_drv_video.so
Black_Roland ★★★★
()
Ответ на: комментарий от Kadi

Попробуй LIBVA_DRIVERS_PATH={путь до i915_drv_video.so} ну или симлинк сделать к ней, она может в твоем дистре лежать совсем не в /usr/lib64/dri.

# find /usr -name 'i915_drv_video.so'

ничего не дает.

Вот по маске:

# find /usr -name '*_drv_video.so'                       
/usr/lib64/dri/dummy_drv_video.so
/usr/lib64/dri/i965_drv_video.so
/usr/lib64/dri/nvidia_drv_video.so
/usr/lib64/dri/s3g_drv_video.so
/usr/lib64/dri/vdpau_drv_video.so

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

Ну стало быть, нет поддержки VA-API.

i-rinat ★★★★★
() автор топика

После многократных тестов, крашей, перезапусков браузера получил шум http://i.imgur.com/HAMeu5z.png Проявляется не всегда. На одном видео может, например, на 720p, 480p, 240p быть все в порядке, а на 360p - шум. Причем переключение 360(шум)->720(нормально)->360(шум) не избавляет от этого, а после перезагрузки на 480p получается такая картина, а на остальных все нормально.

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

У тебя mplayer -vc ffh264vdpau video.mp4 не крашится при выходе? Если да, то добавь в окружение переменную

VDPAU_QUIRKS=XCloseDisplay

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

За все время тестирования крашился только флеш по нажатию правой кнопки, с mplayer'ом проблем не было (ну не считая того, что с субтитрами он начинает сильно процессор нагружать).

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

Если в не развернутом окне флеш плагина попытаться вызвать меню по ПКМ то плагин падает

Behem0th, Kadi

Как обычно, хотел сделать как лучше и сломал. Я добавлял вызов XInitThreads в конструктор, а оказалось, что это только вызывает чудные глюки с семафорами в неожиданных местах. Раз сейчас всё равно всё обёрнуто в глобальный лок, смысла в XInitThreads всё равно нет. Убрал.

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

Падения флеш плеера по ПКМ прекратились. Нашел баг, очень не кретичный, иногда при вызове меню влеш плеера картинка замирает на время пока не будет убрано меню. Звук в это время воспроизводится нормально, если меню убрать то видео за секунду в ускоренной перемотке дойдет до нужного места.

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

Это похоже на последствие глобальной блокировки.

Я ещё один глюк словил — в mplayer'е картинка подвисает и после этого меняется только при перемотке. Никак в толк не возьму, отчего это. И как вообще на такое тесты писать.

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