LINUX.ORG.RU

Intel-hybrid-codec-driver, а оно вообще работает?

 , ,


0

1

Прошу всех пользователей Arch, Fedora, NixOS и Open SUSE, кому не трудно и у кого intel haswell или broadwell чекнуть, если у них заводится сабж. Так как оно в логи по дефолту ничего не пишет, я хочу понять если оно вообще у кого нибудь работает, так как у меня intel_gpu_top показывает что нет.


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

Да, конечно. Я собирал с github, как чистую так и с патчами от федоры/арча/обоих, а так же пробовал подбрасывать готовую от федоры, если верить intel_gpu_top то никакой разницы нет. Ее вроде как можно собрать в дебажном режиме, но перед тем как полагаться на криворукого себя хотелось бы посмотреть если работает готовая на родной системе, а ставить рядом еще одну систему не хочу, да и места нет.

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

Похоже, что уже готовые решения в виде собранных либ не работают в вашем случае
Народ также пишет, что и при перекомпиляции тоже проблемы

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

Народ также пишет, что и при перекомпиляции тоже проблемы

так ведь версия с aur например тащит все прямо с github, неофициальный ебилд gentoo тоже. Может debian имеет какие нибудь правки в системе, что ни оффициальный исходник, ни патчи, ни исходники с федоры у меня не пашут, или за год что то поменялось (тогда по идее должно затронуть всех).

Да, если не секрет, что за народ? Я находил достаточно мало инфы по этой либе.

Pups
() автор топика

Intel-hybrid-codec-driver, а оно вообще работает?

Если пропатчить, то работает. Примерно так:

diff --git a/src/media_drv_common.h b/src/media_drv_common.h
index cc88a67..0b0fe8e 100644
--- a/src/media_drv_common.h
+++ b/src/media_drv_common.h
@@ -39,6 +39,6 @@
 #define BRC_INIT_IGNORE_PICTURE_HEADER_SIZE     0x2000
 #define BRC_INIT_DISABLE_MBBRC                  0x8000
 
-UINT SEARCH_PATH_TABLE[2][8][16];
-UINT ME_CURBE_INIT_DATA[30];
+extern const UINT SEARCH_PATH_TABLE[2][8][16];
+extern const UINT ME_CURBE_INIT_DATA[30];
 #endif
diff --git a/src/media_drv_init.c b/src/media_drv_init.c
index 36ddce4..62c374e 100644
--- a/src/media_drv_init.c
+++ b/src/media_drv_init.c
@@ -2764,9 +2764,9 @@ va_driver_init (VADriverContextP ctx)
   return ret;
 }
 
-VAStatus DLL_EXPORT __vaDriverInit_0_34 (VADriverContextP ctx);
+VAStatus DLL_EXPORT VA_DRIVER_INIT_FUNC (VADriverContextP ctx);
 VAStatus
-__vaDriverInit_0_34 (VADriverContextP ctx)
+VA_DRIVER_INIT_FUNC (VADriverContextP ctx)
 {
   VAStatus ret = VA_STATUS_ERROR_UNKNOWN;
 
diff --git a/src/media_drv_output_dri.c b/src/media_drv_output_dri.c
index 42299b8..1eab11e 100644
--- a/src/media_drv_output_dri.c
+++ b/src/media_drv_output_dri.c
@@ -105,11 +105,11 @@ media_output_dri_init (VADriverContextP ctx)
   struct dri_vtable *dri_vtable;
 
   static const struct dso_symbol symbols[] = {
-    {"dri_get_drawable",
+    {"va_dri_get_drawable",
      offsetof (struct dri_vtable, get_drawable)},
-    {"dri_get_rendering_buffer",
+    {"va_dri_get_rendering_buffer",
      offsetof (struct dri_vtable, get_rendering_buffer)},
-    {"dri_swap_buffer",
+    {"va_dri_swap_buffer",
      offsetof (struct dri_vtable, swap_buffer)},
     {NULL,}
   };
diff --git a/src/media_drv_output_dri.h b/src/media_drv_output_dri.h
index 0d6ccf0..91adee8 100644
--- a/src/media_drv_output_dri.h
+++ b/src/media_drv_output_dri.h
@@ -30,7 +30,7 @@
 #define _MEDIA__DRIVER_OUT_DRI_H
 #include <stdbool.h>
 #include "media_drv_defines.h"
-#define LIBVA_X11_NAME "libva-x11.so.1"
+#define LIBVA_X11_NAME "libva-x11.so.2"
 VOID media_output_dri_terminate (VADriverContextP ctx);
 BOOL media_output_dri_init (VADriverContextP ctx);
 

у кого intel haswell

Как раз на Haswell проверил.

intel_gpu_top показывает что нет

Если ты ждёшь, что там будет показываться загрузка блока «Video», то зря ждёшь. Это гибридный декодер, он выполняет часть работы на шейдерных движках, поэтому будет видна только загрузка «Render/3D».


В целом если смотреть на потраченное CPU время, то экономия есть. Но софтовый декодер хорошо параллелится, поэтому софтовый декодер оказывается быстрее. В разы быстрее.

Software-only ffmpeg:

real	2m9.237s
user	11m16.236s
sys	0m3.731s

Hybrid-driver-assisted ffmpeg:

real	8m24.164s
user	8m35.324s
sys	0m13.522s

Проверял на «COSTA RICA IN 4K 60fps HDR (ULTRA HD) [LXb3EKWsInQ].webm» (3840x2160).

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

Благодарю за ответ. Да, я компилировал с i965-va-driver с параметром из вашего поста, и патчил тоже. Я и не ожидал что будет показывать Video, я ожидал изменения производительности Render/3D, а он показывал одно и тоже и на патченном i965-va-driver, на intel-hybrid-codec-driver отдельно, и на дефолте. В любом случе если прироста нет то в калабаню.

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

софтовый декодер хорошо параллелится, поэтому софтовый декодер оказывается быстрее

What. Скорее шейдерный декодер говно упирающееся в какой-нибудь оверхед.

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

-VAStatus DLL_EXPORT __vaDriverInit_0_34 (VADriverContextP ctx);
+VAStatus DLL_EXPORT VA_DRIVER_INIT_FUNC (VADriverContextP ctx);
VAStatus
-__vaDriverInit_0_34 (VADriverContextP ctx)
+VA_DRIVER_INIT_FUNC (VADriverContextP ctx)

Во, кстати! Стырил из федоры libva-intel-hybrid-driver-1.0.2-21.fc35.src.rpm, себе в CentOS Alma-у для коллекции.
А там этого куска нету. Соответственно драйвер валится с ошибкой.

P.S. Теперь вроде работает.

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