From 7cb7c5591989f9523918452645924fd6a27e52cd Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 8 Jan 2018 15:40:16 -0800 Subject: [PATCH] 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