Mesa (master): NV_vdpau_interop: fix IsSurfaceNV return type

Christian König deathsimple at kemper.freedesktop.org
Mon Mar 3 17:38:19 UTC 2014


Module: Mesa
Branch: master
Commit: 070036ca399d88293ef51b40e859c06acf0c7606
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=070036ca399d88293ef51b40e859c06acf0c7606

Author: Grigori Goronzy <greg at chown.ath.cx>
Date:   Sun Mar  2 12:57:04 2014 +0100

NV_vdpau_interop: fix IsSurfaceNV return type

The spec incorrectly used void as return type, when it should have
been GLboolean. This has now been fixed. According to Nvidia, their
implementation always used GLboolean.

Reviewed-by: Christian König <christian.koenig at amd.com>

---

 include/GL/glext.h                      |    2 +-
 src/mapi/glapi/gen/NV_vdpau_interop.xml |    1 +
 src/mesa/main/vdpau.c                   |    9 +++++----
 src/mesa/main/vdpau.h                   |    2 +-
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/include/GL/glext.h b/include/GL/glext.h
index 7d6033e..62bae4c 100644
--- a/include/GL/glext.h
+++ b/include/GL/glext.h
@@ -9658,7 +9658,7 @@ GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAdd
 GLAPI void APIENTRY glVDPAUFiniNV (void);
 GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
 GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
+GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
 GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface);
 GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access);
diff --git a/src/mapi/glapi/gen/NV_vdpau_interop.xml b/src/mapi/glapi/gen/NV_vdpau_interop.xml
index cf5f0ed..0b19e1a 100644
--- a/src/mapi/glapi/gen/NV_vdpau_interop.xml
+++ b/src/mapi/glapi/gen/NV_vdpau_interop.xml
@@ -29,6 +29,7 @@
     </function>
 
     <function name="VDPAUIsSurfaceNV" offset="assign">
+        <return type="GLboolean"/>
 	<param name="surface" type="GLintptr"/>
     </function>
 
diff --git a/src/mesa/main/vdpau.c b/src/mesa/main/vdpau.c
index 3597576..c2cf206 100644
--- a/src/mesa/main/vdpau.c
+++ b/src/mesa/main/vdpau.c
@@ -205,7 +205,7 @@ _mesa_VDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target,
                            numTextureNames, textureNames);
 }
 
-void GLAPIENTRY
+GLboolean GLAPIENTRY
 _mesa_VDPAUIsSurfaceNV(GLintptr surface)
 {
    struct vdp_surface *surf = (struct vdp_surface *)surface;
@@ -213,13 +213,14 @@ _mesa_VDPAUIsSurfaceNV(GLintptr surface)
 
    if (!ctx->vdpDevice || !ctx->vdpGetProcAddress || !ctx->vdpSurfaces) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "VDPAUIsSurfaceNV");
-      return;
+      return false;
    }
 
    if (!_mesa_set_search(ctx->vdpSurfaces, _mesa_hash_pointer(surf), surf)) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "VDPAUIsSurfaceNV");
-      return;
+      return false;
    }
+
+   return true;
 }
 
 void GLAPIENTRY
diff --git a/src/mesa/main/vdpau.h b/src/mesa/main/vdpau.h
index f32d6da..627609c 100644
--- a/src/mesa/main/vdpau.h
+++ b/src/mesa/main/vdpau.h
@@ -50,7 +50,7 @@ _mesa_VDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target,
                                    GLsizei numTextureNames,
                                    const GLuint *textureNames);
 
-extern void GLAPIENTRY
+extern GLboolean GLAPIENTRY
 _mesa_VDPAUIsSurfaceNV(GLintptr surface);
 
 extern void GLAPIENTRY




More information about the mesa-commit mailing list