From 46021e11227ee1012429e2953c5fc3b2aac905a1 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 8 Jan 2018 15:38:00 -0800 Subject: [PATCH 1/6] config/graphic: add VAAPI_SUPPORT to r600 and radeonsi --- config/graphic | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/graphic b/config/graphic index b510c3982c..2cce84534a 100644 --- a/config/graphic +++ b/config/graphic @@ -60,6 +60,7 @@ get_graphicdrivers() { LLVM_SUPPORT="yes" COMPOSITE_SUPPORT="yes" VDPAU_SUPPORT="yes" + VAAPI_SUPPORT="yes" fi if [ "$drv" = "radeonsi" ]; then @@ -68,6 +69,7 @@ get_graphicdrivers() { LLVM_SUPPORT="yes" COMPOSITE_SUPPORT="yes" VDPAU_SUPPORT="yes" + VAAPI_SUPPORT="yes" fi if [ "$drv" = "vmware" ]; then From 7cb7c5591989f9523918452645924fd6a27e52cd Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 8 Jan 2018 15:40:16 -0800 Subject: [PATCH 2/6] mesa: add libva support and add upstream patch --- packages/graphics/mesa/package.mk | 9 ++++- ...esa-0001-add-vlVaExportSurfaceHandle.patch | 39 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 packages/graphics/mesa/patches/mesa-0001-add-vlVaExportSurfaceHandle.patch diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index ad93de93be..1d16881291 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -68,6 +68,13 @@ else MESA_VDPAU="--disable-vdpau" fi +if [ "$VAAPI_SUPPORT" = "yes" ]; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libva" + MESA_VAAPI="--enable-va" +else + MESA_VAAPI="--disable-va" +fi + XA_CONFIG="--disable-xa" for drv in $GRAPHIC_DRIVERS; do [ "$drv" = "vmware" ] && XA_CONFIG="--enable-xa" @@ -103,7 +110,7 @@ PKG_CONFIGURE_OPTS_TARGET="CC_FOR_BUILD=$HOST_CC \ --disable-xvmc \ $MESA_VDPAU \ --disable-omx-bellagio \ - --disable-va \ + $MESA_VAAPI \ --disable-opencl \ --enable-opencl-icd \ --disable-gallium-tests \ diff --git a/packages/graphics/mesa/patches/mesa-0001-add-vlVaExportSurfaceHandle.patch b/packages/graphics/mesa/patches/mesa-0001-add-vlVaExportSurfaceHandle.patch new file mode 100644 index 0000000000..a9c5fc2ada --- /dev/null +++ b/packages/graphics/mesa/patches/mesa-0001-add-vlVaExportSurfaceHandle.patch @@ -0,0 +1,39 @@ + + src/gallium/state_trackers/va/context.c | 8 +++++++- + src/gallium/state_trackers/va/surface.c | 2 +- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/state_trackers/va/context.c b/src/gallium/state_trackers/va/context.c +index 78e1f19ab7..c4abe77cf7 100644 +--- a/src/gallium/state_trackers/va/context.c ++++ b/src/gallium/state_trackers/va/context.c +@@ -89,7 +89,13 @@ static struct VADriverVTable vtable = + &vlVaQuerySurfaceAttributes, + &vlVaAcquireBufferHandle, + &vlVaReleaseBufferHandle, +-#if 0 ++#if VA_CHECK_VERSION(1, 1, 0) ++ NULL, /* vaCreateMFContext */ ++ NULL, /* vaMFAddContext */ ++ NULL, /* vaMFReleaseContext */ ++ NULL, /* vaMFSubmit */ ++ NULL, /* vaCreateBuffer2 */ ++ NULL, /* vaQueryProcessingRate */ + &vlVaExportSurfaceHandle, + #endif + }; +diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c +index 636505b720..f9412ce52e 100644 +--- a/src/gallium/state_trackers/va/surface.c ++++ b/src/gallium/state_trackers/va/surface.c +@@ -923,7 +923,7 @@ vlVaQueryVideoProcPipelineCaps(VADriverContextP ctx, VAContextID context, + return VA_STATUS_SUCCESS; + } + +-#if 0 ++#if VA_CHECK_VERSION(1, 1, 0) + VAStatus + vlVaExportSurfaceHandle(VADriverContextP ctx, + VASurfaceID surface_id, +-- +2.11.0 From 8410ceb0f4e9f4b78e8b305de54f2161fe72e2c6 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Sun, 29 Oct 2017 12:36:37 +0000 Subject: [PATCH 3/6] ffmpeg: correct dependency list when using VAAPI Namely: depend on the frontend library as opposed to the backend implementation. Same as we do for vdpau. --- packages/multimedia/ffmpeg/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index fd0be84e84..f7be74ee75 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -35,7 +35,7 @@ PKG_BUILD_FLAGS="-gold -lto" get_graphicdrivers if [ "$VAAPI_SUPPORT" = "yes" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-vaapi-driver" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libva" FFMPEG_VAAPI="--enable-vaapi" else FFMPEG_VAAPI="--disable-vaapi" From 13628822767c7cac07ad48608fc2920be63e7a9a Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Sun, 29 Oct 2017 12:40:03 +0000 Subject: [PATCH 4/6] kodi: correct dependency list when using VAAPI Namely: depend on the frontend library as opposed to the backend implementation. Same as we do for vdpau. --- packages/mediacenter/kodi/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 53e9cd125b..68fc89911c 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -171,7 +171,7 @@ else fi if [ "$VAAPI_SUPPORT" = yes ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-vaapi-driver" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libva" KODI_VAAPI="-DENABLE_VAAPI=ON" else KODI_VAAPI="-DENABLE_VAAPI=OFF" From a3a4d3adf8cfb01be86c2b9838c2fb577fa198b9 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 9 Jan 2018 09:35:49 -0800 Subject: [PATCH 5/6] virtual/mediacenter: build intel-vaapi-driver if intel drivers present --- packages/virtual/mediacenter/package.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/virtual/mediacenter/package.mk b/packages/virtual/mediacenter/package.mk index ebc0d2cfd6..e37863cdcc 100644 --- a/packages/virtual/mediacenter/package.mk +++ b/packages/virtual/mediacenter/package.mk @@ -46,4 +46,9 @@ if [ "$MEDIACENTER" = "kodi" ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET peripheral.joystick" fi + get_graphicdrivers + if listcontains "$GRAPHIC_DRIVERS" "(i915|i965)"; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-vaapi-driver" + fi + fi From b2979f77145064180b98f7a45920e7d391d631f3 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 21 Mar 2018 12:11:06 -0700 Subject: [PATCH 6/6] libva: remove mesa dependency and disable glx (we only use egl) --- packages/multimedia/libva/package.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/multimedia/libva/package.mk b/packages/multimedia/libva/package.mk index 1786396661..6f6d46cea9 100644 --- a/packages/multimedia/libva/package.mk +++ b/packages/multimedia/libva/package.mk @@ -29,11 +29,11 @@ PKG_LONGDESC="Libva is an open source software library and API specification to PKG_TOOLCHAIN="autotools" if [ "$DISPLAYSERVER" = "x11" ]; then - PKG_DEPENDS_TARGET="toolchain libX11 libXext libXfixes libdrm mesa" - DISPLAYSERVER_LIBVA="--enable-x11 --enable-glx --disable-wayland" + PKG_DEPENDS_TARGET="toolchain libX11 libXext libXfixes libdrm" + DISPLAYSERVER_LIBVA="--enable-x11 --disable-glx --disable-wayland" elif [ "$DISPLAYSERVER" = "weston" ]; then DISPLAYSERVER_LIBVA="--disable-x11 --disable-glx --enable-wayland" - PKG_DEPENDS_TARGET="toolchain libdrm mesa wayland" + PKG_DEPENDS_TARGET="toolchain libdrm wayland" else PKG_DEPENDS_TARGET="toolchain libdrm" DISPLAYSERVER_LIBVA="--disable-x11 --disable-glx --disable-wayland"