summaryrefslogtreecommitdiffstats
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 @@
1commit f0b352251894becfcec50de1430bda12c314a464
2Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
3Date: Tue Sep 22 13:00:34 2009 +0000
4
5 Fix libva-glx pkgconfig dependencies.
6
7commit df0953a951d8a2e5e4b0a28a95ae0f1ac735726e
8Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
9Date: Tue Sep 8 12:25:14 2009 +0000
10
11 Add generic VA/GLX implementation with TFP and FBO.
12
13commit f640b1cf9eab4e5d478239b608ed0d8b68f6c5f6
14Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
15Date: Tue Sep 8 12:15:35 2009 +0000
16
17 Move GLX VTable to a new file.
18
19commit 70d9cb6d1aa2fc2dde6646f3b692433e0d93d431
20Author: Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
21Date: Fri Aug 28 11:15:51 2009 +0000
22
23 Add OpenGL extensions (v3).
24
25diff --git a/Makefile.am b/Makefile.am
26index 07385e6..6fb4cae 100644
27--- a/Makefile.am
28+++ b/Makefile.am
29@@ -32,10 +32,13 @@ endif
30
31 pcfiles = libva.pc
32 pcfiles += libva-x11.pc
33+if USE_GLX
34+pcfiles += libva-glx.pc
35+endif
36
37 pkgconfigdir = @pkgconfigdir@
38 pkgconfig_DATA = $(pcfiles)
39
40-EXTRA_DIST = libva.pc.in libva-x11.pc.in
41+EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in
42
43 CLEANFILES = $(pcfiles)
44diff --git a/configure.ac b/configure.ac
45index c3aba90..abef435 100644
46--- a/configure.ac
47+++ b/configure.ac
48@@ -52,6 +55,11 @@ AC_SUBST(LIBVA_MINOR_VERSION)
49 AC_SUBST(LIBVA_LT_VERSION)
50 AC_SUBST(LIBVA_LT_LDFLAGS)
51
52+AC_ARG_ENABLE(glx,
53+ [AC_HELP_STRING([--enable-glx],
54+ [build with OpenGL for X11 support])],
55+ [], [enable_glx=yes])
56+
57 AC_ARG_ENABLE(dummy-driver,
58 [AC_HELP_STRING([--enable-dummy-driver],
59 [build dummy video driver])],
60@@ -100,6 +132,23 @@ if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdr
61 AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN],
62 [Defined to __attribute__((visibility("hidden"))) when available])
63
64+# Check for OpenGL (X11)
65+USE_GLX="no"
66+GL_DEPS_CFLAGS=""
67+GL_DEPS_LIBS=""
68+
69+if test x$enable_glx = xyes; then
70+ AC_CHECK_HEADERS([GL/gl.h])
71+ AC_CHECK_HEADERS([GL/glx.h])
72+ AC_CHECK_LIB(GL, glXCreateContext, [
73+ USE_GLX="yes"
74+ GL_DEPS_LIBS="-lX11 -lGL"
75+ ])
76+fi
77+AC_SUBST(GL_DEPS_CFLAGS)
78+AC_SUBST(GL_DEPS_LIBS)
79+AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes")
80+
81 # We only need the headers, we don't link against the DRM libraries
82 LIBVA_CFLAGS="$DRM_CFLAGS"
83 AC_SUBST(LIBVA_CFLAGS)
84@@ -119,6 +192,7 @@ AC_OUTPUT([
85 src/Makefile
86 src/va_version.h
87 src/x11/Makefile
88+ src/glx/Makefile
89 dummy_drv_video/Makefile
90 i965_drv_video/Makefile
91 i965_drv_video/shaders/Makefile
92@@ -128,5 +202,6 @@ AC_OUTPUT([
93 test/Makefile
94 libva.pc
95 libva-x11.pc
96+ libva-glx.pc
97 ])
98
99diff --git a/libva-glx.pc.in b/libva-glx.pc.in
100new file mode 100644
101index 0000000..20ba20a
102--- /dev/null
103+++ b/libva-glx.pc.in
104@@ -0,0 +1,12 @@
105+prefix=@prefix@
106+exec_prefix=@exec_prefix@
107+libdir=@libdir@
108+includedir=@includedir@
109+display=glx
110+
111+Name: libva-${display}
112+Description: Userspace Video Acceleration (VA) ${display} interface
113+Requires: libva
114+Version: @PACKAGE_VERSION@
115+Libs: -L${libdir} -lva-${display}
116+Cflags: -I${includedir}
117diff --git a/src/Makefile.am b/src/Makefile.am
118index 2f4210a..e50a15f 100644
119--- a/src/Makefile.am
120+++ b/src/Makefile.am
121@@ -28,9 +28,17 @@ INCLUDES = \
122 LDADD = \
123 $(LIBVA_LT_LDFLAGS)
124
125-lib_LTLIBRARIES = \
126- libva.la \
127- libva-x11.la
128+libva_x11_backend = libva-x11.la
129+libva_x11_backenddir = x11
130+if USE_GLX
131+libva_glx_backend = libva-glx.la
132+libva_glx_backenddir = glx
133+else
134+libva_glx_backend =
135+libva_glx_backenddir =
136+endif
137+
138+lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend)
139
140 libva_ladir = $(libdir)
141 libva_la_LDFLAGS = $(LDADD) -no-undefined
142@@ -41,7 +49,14 @@ libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS
143 libva_x11_la_LDFLAGS = $(LDADD)
144 libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la
145
146-SUBDIRS = x11
147+libva_glx_la_SOURCES =
148+libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl
149+libva_glx_la_LDFLAGS = $(LDADD)
150+libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la
151+
152+SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir)
153+
154+DIST_SUBDIRS = x11 glx
155
156 libva_la_SOURCES = va.c
157
158diff --git a/src/va_backend.h b/src/va_backend.h
159index 6f858f5..8f722a3 100644
160--- a/src/va_backend.h
161+++ b/src/va_backend.h
162@@ -32,9 +32,11 @@
163 #ifdef IN_LIBVA
164 #include "va.h"
165 #include "x11/va_x11.h"
166+#include "glx/va_backend_glx.h"
167 #else
168 #include <va/va.h>
169 #include <va/va_x11.h>
170+#include <va/va_backend_glx.h>
171 #endif
172
173 #include <stdlib.h>
174@@ -372,6 +374,9 @@ struct VADriverVTable
175 unsigned int *chroma_v_offset,
176 void **buffer
177 );
178+
179+ /* Optional: GLX support hooks */
180+ struct VADriverVTableGLX glx;
181 };
182
183 struct VADriverContext
184@@ -394,6 +399,7 @@ struct VADriverContext
185 void *handle; /* dlopen handle */
186
187 void *dri_state;
188+ void *glx; /* opaque for GLX code */
189 };
190
191 struct VADisplayContext
192@@ -413,6 +420,8 @@ struct VADisplayContext
193 VADisplayContextP ctx,
194 char **driver_name
195 );
196+
197+ void *opaque; /* opaque for display extensions (e.g. GLX) */
198 };
199
200 typedef VAStatus (*VADriverInit) (
201diff --git a/src/x11/va_x11.c b/src/x11/va_x11.c
202index 9de904e..b8c60fa 100644
203--- a/src/x11/va_x11.c
204+++ b/src/x11/va_x11.c
205@@ -243,6 +243,7 @@ VADisplay vaGetDisplay (
206 pDisplayContext->vaIsValid = va_DisplayContextIsValid;
207 pDisplayContext->vaDestroy = va_DisplayContextDestroy;
208 pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
209+ pDisplayContext->opaque = NULL;
210 pDisplayContexts = pDisplayContext;
211 pDriverContext->dri_state = dri_state;
212 dpy = (VADisplay)pDisplayContext;