aboutsummaryrefslogtreecommitdiffstats
path: root/meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch')
-rw-r--r--meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch212
1 files changed, 212 insertions, 0 deletions
diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch
new file mode 100644
index 00000000..43af6f40
--- /dev/null
+++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch
@@ -0,0 +1,212 @@
+commit f0b352251894becfcec50de1430bda12c314a464
+Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
+Date: Tue Sep 22 13:00:34 2009 +0000
+
+ Fix libva-glx pkgconfig dependencies.
+
+commit df0953a951d8a2e5e4b0a28a95ae0f1ac735726e
+Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
+Date: Tue Sep 8 12:25:14 2009 +0000
+
+ Add generic VA/GLX implementation with TFP and FBO.
+
+commit f640b1cf9eab4e5d478239b608ed0d8b68f6c5f6
+Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
+Date: Tue Sep 8 12:15:35 2009 +0000
+
+ Move GLX VTable to a new file.
+
+commit 70d9cb6d1aa2fc2dde6646f3b692433e0d93d431
+Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
+Date: Fri Aug 28 11:15:51 2009 +0000
+
+ Add OpenGL extensions (v3).
+
+diff --git a/Makefile.am b/Makefile.am
+index 07385e6..6fb4cae 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -32,10 +32,13 @@ endif
+
+ pcfiles = libva.pc
+ pcfiles += libva-x11.pc
++if USE_GLX
++pcfiles += libva-glx.pc
++endif
+
+ pkgconfigdir = @pkgconfigdir@
+ pkgconfig_DATA = $(pcfiles)
+
+-EXTRA_DIST = libva.pc.in libva-x11.pc.in
++EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in
+
+ CLEANFILES = $(pcfiles)
+diff --git a/configure.ac b/configure.ac
+index c3aba90..abef435 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -52,6 +55,11 @@ AC_SUBST(LIBVA_MINOR_VERSION)
+ AC_SUBST(LIBVA_LT_VERSION)
+ AC_SUBST(LIBVA_LT_LDFLAGS)
+
++AC_ARG_ENABLE(glx,
++ [AC_HELP_STRING([--enable-glx],
++ [build with OpenGL for X11 support])],
++ [], [enable_glx=yes])
++
+ AC_ARG_ENABLE(dummy-driver,
+ [AC_HELP_STRING([--enable-dummy-driver],
+ [build dummy video driver])],
+@@ -100,6 +132,23 @@ if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdr
+ AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN],
+ [Defined to __attribute__((visibility("hidden"))) when available])
+
++# Check for OpenGL (X11)
++USE_GLX="no"
++GL_DEPS_CFLAGS=""
++GL_DEPS_LIBS=""
++
++if test x$enable_glx = xyes; then
++ AC_CHECK_HEADERS([GL/gl.h])
++ AC_CHECK_HEADERS([GL/glx.h])
++ AC_CHECK_LIB(GL, glXCreateContext, [
++ USE_GLX="yes"
++ GL_DEPS_LIBS="-lX11 -lGL"
++ ])
++fi
++AC_SUBST(GL_DEPS_CFLAGS)
++AC_SUBST(GL_DEPS_LIBS)
++AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes")
++
+ # We only need the headers, we don't link against the DRM libraries
+ LIBVA_CFLAGS="$DRM_CFLAGS"
+ AC_SUBST(LIBVA_CFLAGS)
+@@ -119,6 +192,7 @@ AC_OUTPUT([
+ src/Makefile
+ src/va_version.h
+ src/x11/Makefile
++ src/glx/Makefile
+ dummy_drv_video/Makefile
+ i965_drv_video/Makefile
+ i965_drv_video/shaders/Makefile
+@@ -128,5 +202,6 @@ AC_OUTPUT([
+ test/Makefile
+ libva.pc
+ libva-x11.pc
++ libva-glx.pc
+ ])
+
+diff --git a/libva-glx.pc.in b/libva-glx.pc.in
+new file mode 100644
+index 0000000..20ba20a
+--- /dev/null
++++ b/libva-glx.pc.in
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++display=glx
++
++Name: libva-${display}
++Description: Userspace Video Acceleration (VA) ${display} interface
++Requires: libva
++Version: @PACKAGE_VERSION@
++Libs: -L${libdir} -lva-${display}
++Cflags: -I${includedir}
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 2f4210a..e50a15f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -28,9 +28,17 @@ INCLUDES = \
+ LDADD = \
+ $(LIBVA_LT_LDFLAGS)
+
+-lib_LTLIBRARIES = \
+- libva.la \
+- libva-x11.la
++libva_x11_backend = libva-x11.la
++libva_x11_backenddir = x11
++if USE_GLX
++libva_glx_backend = libva-glx.la
++libva_glx_backenddir = glx
++else
++libva_glx_backend =
++libva_glx_backenddir =
++endif
++
++lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend)
+
+ libva_ladir = $(libdir)
+ libva_la_LDFLAGS = $(LDADD) -no-undefined
+@@ -41,7 +49,14 @@ libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS
+ libva_x11_la_LDFLAGS = $(LDADD)
+ libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la
+
+-SUBDIRS = x11
++libva_glx_la_SOURCES =
++libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl
++libva_glx_la_LDFLAGS = $(LDADD)
++libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la
++
++SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir)
++
++DIST_SUBDIRS = x11 glx
+
+ libva_la_SOURCES = va.c
+
+diff --git a/src/va_backend.h b/src/va_backend.h
+index 6f858f5..8f722a3 100644
+--- a/src/va_backend.h
++++ b/src/va_backend.h
+@@ -32,9 +32,11 @@
+ #ifdef IN_LIBVA
+ #include "va.h"
+ #include "x11/va_x11.h"
++#include "glx/va_backend_glx.h"
+ #else
+ #include <va/va.h>
+ #include <va/va_x11.h>
++#include <va/va_backend_glx.h>
+ #endif
+
+ #include <stdlib.h>
+@@ -372,6 +374,9 @@ struct VADriverVTable
+ unsigned int *chroma_v_offset,
+ void **buffer
+ );
++
++ /* Optional: GLX support hooks */
++ struct VADriverVTableGLX glx;
+ };
+
+ struct VADriverContext
+@@ -394,6 +399,7 @@ struct VADriverContext
+ void *handle; /* dlopen handle */
+
+ void *dri_state;
++ void *glx; /* opaque for GLX code */
+ };
+
+ struct VADisplayContext
+@@ -413,6 +420,8 @@ struct VADisplayContext
+ VADisplayContextP ctx,
+ char **driver_name
+ );
++
++ void *opaque; /* opaque for display extensions (e.g. GLX) */
+ };
+
+ typedef VAStatus (*VADriverInit) (
+diff --git a/src/x11/va_x11.c b/src/x11/va_x11.c
+index 9de904e..b8c60fa 100644
+--- a/src/x11/va_x11.c
++++ b/src/x11/va_x11.c
+@@ -243,6 +243,7 @@ VADisplay vaGetDisplay (
+ pDisplayContext->vaIsValid = va_DisplayContextIsValid;
+ pDisplayContext->vaDestroy = va_DisplayContextDestroy;
+ pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
++ pDisplayContext->opaque = NULL;
+ pDisplayContexts = pDisplayContext;
+ pDriverContext->dri_state = dri_state;
+ dpy = (VADisplay)pDisplayContext;