summaryrefslogtreecommitdiffstats
path: root/src/mapi
diff options
context:
space:
mode:
authorChristian König <[email protected]>2013-05-15 15:10:11 +0200
committerChristian König <[email protected]>2013-10-26 12:13:36 +0200
commit80964226e9b8a05c39157f9305c06c0b2861e080 (patch)
treec4f1c11f0f3e82e0b8167b8cba21de6694f2f9d9 /src/mapi
parent3d3a0b9b67982a96a4c4d87f78c21204f3a48776 (diff)
implement NV_vdpau_interop v7
v2: Actually implement interop between the gallium state tracker and the VDPAU backend. v3: Make it also available in non legacy contexts, fix video buffer sharing. v4: deny interop if we don't have the same screen object v5: rebased on upstream changes v6: implemented VDPAUGetSurfaceivNV, improved error handling, unregister all surfaces in VDPAUFiniNV v7: squash merge with Mareks changes Signed-off-by: Christian König <[email protected]>
Diffstat (limited to 'src/mapi')
-rw-r--r--src/mapi/glapi/gen/Makefile.am1
-rw-r--r--src/mapi/glapi/gen/NV_vdpau_interop.xml69
-rw-r--r--src/mapi/glapi/gen/gl_API.xml2
-rw-r--r--src/mapi/glapi/gen/gl_genexec.py1
4 files changed, 73 insertions, 0 deletions
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index d71d5d2a852..48af135cb45 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -141,6 +141,7 @@ API_XML = \
NV_conditional_render.xml \
NV_primitive_restart.xml \
NV_texture_barrier.xml \
+ NV_vdpau_interop.xml \
OES_EGL_image.xml \
GL3x.xml
diff --git a/src/mapi/glapi/gen/NV_vdpau_interop.xml b/src/mapi/glapi/gen/NV_vdpau_interop.xml
new file mode 100644
index 00000000000..cf5f0eddd25
--- /dev/null
+++ b/src/mapi/glapi/gen/NV_vdpau_interop.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+
+<category name="GL_NV_vdpau_interop" number="396">
+
+ <function name="VDPAUInitNV" offset="assign">
+ <param name="vdpDevice" type="const GLvoid *"/>
+ <param name="getProcAddress" type="const GLvoid *"/>
+ </function>
+
+ <function name="VDPAUFiniNV" offset="assign"/>
+
+ <function name="VDPAURegisterVideoSurfaceNV" offset="assign">
+ <return type="GLintptr"/>
+ <param name="vdpSurface" type="const GLvoid *"/>
+ <param name="target" type="GLenum"/>
+ <param name="numTextureNames" type="GLsizei"/>
+ <param name="textureNames" type="const GLuint *"/>
+ </function>
+
+ <function name="VDPAURegisterOutputSurfaceNV" offset="assign">
+ <return type="GLintptr"/>
+ <param name="vdpSurface" type="const GLvoid *"/>
+ <param name="target" type="GLenum"/>
+ <param name="numTextureNames" type="GLsizei"/>
+ <param name="textureNames" type="const GLuint *"/>
+ </function>
+
+ <function name="VDPAUIsSurfaceNV" offset="assign">
+ <param name="surface" type="GLintptr"/>
+ </function>
+
+ <function name="VDPAUUnregisterSurfaceNV" offset="assign">
+ <param name="surface" type="GLintptr"/>
+ </function>
+
+ <function name="VDPAUGetSurfaceivNV" offset="assign">
+ <param name="surface" type="GLintptr"/>
+ <param name="pname" type="GLenum"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="values" type="GLint *"/>
+ </function>
+
+ <function name="VDPAUSurfaceAccessNV" offset="assign">
+ <param name="surface" type="GLintptr"/>
+ <param name="access" type="GLenum"/>
+ </function>
+
+ <function name="VDPAUMapSurfacesNV" offset="assign">
+ <param name="numSurfaces" type="GLsizei"/>
+ <param name="surfaces" type="const GLintptr *"/>
+ </function>
+
+ <function name="VDPAUUnmapSurfacesNV" offset="assign">
+ <param name="numSurfaces" type="GLsizei"/>
+ <param name="surfaces" type="const GLintptr *"/>
+ </function>
+
+ <enum name="SURFACE_STATE_NV" value="0x86EB"/>
+ <enum name="SURFACE_REGISTERED_NV" value="0x86FD"/>
+ <enum name="SURFACE_MAPPED_NV" value="0x8700"/>
+ <enum name="WRITE_DISCARD_NV" value="0x88BE"/>
+
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 30ab9c9c116..994ed8d1358 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -13118,4 +13118,6 @@
<xi:include href="EXT_transform_feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="NV_vdpau_interop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index a074c234829..3ce190fe3ac 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -111,6 +111,7 @@ header = """/**
#include "main/syncobj.h"
#include "main/formatquery.h"
#include "main/dispatch.h"
+#include "main/vdpau.h"
#include "vbo/vbo.h"