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 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 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" 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" 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" 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