[Mesa-dev] [PATCH 5/7] mesa: add KHR_no_error support for glCompressedTex*SubImage2D()

Timothy Arceri tarceri at itsqueeze.com
Fri May 12 04:12:59 UTC 2017


---
 src/mapi/glapi/gen/ARB_direct_state_access.xml |  2 +-
 src/mapi/glapi/gen/gl_API.xml                  |  3 ++-
 src/mesa/main/teximage.c                       | 27 ++++++++++++++++++++++++++
 src/mesa/main/teximage.h                       | 12 ++++++++++++
 4 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml
index 4597d3b..21f44b5 100644
--- a/src/mapi/glapi/gen/ARB_direct_state_access.xml
+++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml
@@ -413,21 +413,21 @@
    <function name="CompressedTextureSubImage1D" no_error="true">
       <param name="texture" type="GLuint" />
       <param name="level" type="GLint" />
       <param name="xoffset" type="GLint" />
       <param name="width" type="GLsizei" />
       <param name="format" type="GLenum" />
       <param name="imageSize" type="GLsizei" />
       <param name="data" type="const GLvoid *" />
    </function>
 
-   <function name="CompressedTextureSubImage2D">
+   <function name="CompressedTextureSubImage2D" no_error="true">
       <param name="texture" type="GLuint" />
       <param name="level" type="GLint" />
       <param name="xoffset" type="GLint" />
       <param name="yoffset" type="GLint" />
       <param name="width" type="GLsizei" />
       <param name="height" type="GLsizei" />
       <param name="format" type="GLenum" />
       <param name="imageSize" type="GLsizei" />
       <param name="data" type="const GLvoid *" />
    </function>
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 026f74c..755cb31 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -4551,21 +4551,22 @@
         <param name="zoffset" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="depth" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="imageSize" type="GLsizei" counter="true"/>
         <param name="data" type="const GLvoid *" count="imageSize"/>
         <glx rop="219" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0" marshal="sync">
+    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0" marshal="sync"
+              no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <param name="yoffset" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="imageSize" type="GLsizei" counter="true"/>
         <param name="data" type="const GLvoid *" count="imageSize"/>
         <glx rop="218" handcode="client"/>
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 718af57..887740a 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -4621,30 +4621,57 @@ void GLAPIENTRY
 _mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset,
                                   GLsizei width, GLenum format,
                                   GLsizei imageSize, const GLvoid *data)
 {
    compressed_tex_sub_image(1, 0, texture, level, xoffset, 0, width, 1,
                             format, imageSize, data, true, false,
                             "glCompressedTextureSubImage1D");
 }
 
 void GLAPIENTRY
+_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level,
+                                       GLint xoffset, GLint yoffset,
+                                       GLsizei width, GLsizei height,
+                                       GLenum format, GLsizei imageSize,
+                                       const GLvoid *data)
+{
+   compressed_tex_sub_image(2, target, 0, level, xoffset, yoffset, width,
+                            height, format, imageSize, data, false, true,
+                            "glCompressedTexSubImage2D");
+}
+
+
+void GLAPIENTRY
 _mesa_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
                               GLint yoffset, GLsizei width, GLsizei height,
                               GLenum format, GLsizei imageSize,
                               const GLvoid *data)
 {
    compressed_tex_sub_image(2, target, 0, level, xoffset, yoffset, width,
                             height, format, imageSize, data, false, false,
                             "glCompressedTexSubImage2D");
 }
 
+
+void GLAPIENTRY
+_mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level,
+                                           GLint xoffset, GLint yoffset,
+                                           GLsizei width, GLsizei height,
+                                           GLenum format, GLsizei imageSize,
+                                           const GLvoid *data)
+{
+   compressed_tex_sub_image(2, 0, texture, level, xoffset, yoffset, width,
+                            height, format, imageSize, data, true, true,
+                            "glCompressedTextureSubImage2D");
+}
+
+
 void GLAPIENTRY
 _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
                                   GLint yoffset,
                                   GLsizei width, GLsizei height,
                                   GLenum format, GLsizei imageSize,
                                   const GLvoid *data)
 {
    compressed_tex_sub_image(2, 0, texture, level, xoffset, yoffset, width,
                             height, format, imageSize, data, true, false,
                             "glCompressedTextureSubImage2D");
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index 08e01c6..6eda721 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -401,26 +401,38 @@ extern void GLAPIENTRY
 _mesa_CompressedTextureSubImage1D_no_error(GLuint texture, GLint level,
                                            GLint xoffset, GLsizei width,
                                            GLenum format, GLsizei imageSize,
                                            const GLvoid *data);
 extern void GLAPIENTRY
 _mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset,
                                   GLsizei width, GLenum format,
                                   GLsizei imageSize, const GLvoid *data);
 
 extern void GLAPIENTRY
+_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level,
+                                       GLint xoffset, GLint yoffset,
+                                       GLsizei width, GLsizei height,
+                                       GLenum format, GLsizei imageSize,
+                                       const GLvoid *data);
+extern void GLAPIENTRY
 _mesa_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
                                  GLint yoffset, GLsizei width, GLsizei height,
                                  GLenum format, GLsizei imageSize,
                                  const GLvoid *data);
 
 extern void GLAPIENTRY
+_mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level,
+                                           GLint xoffset, GLint yoffset,
+                                           GLsizei width, GLsizei height,
+                                           GLenum format, GLsizei imageSize,
+                                           const GLvoid *data);
+extern void GLAPIENTRY
 _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
                                   GLint yoffset,
                                   GLsizei width, GLsizei height,
                                   GLenum format, GLsizei imageSize,
                                   const GLvoid *data);
 
 extern void GLAPIENTRY
 _mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset,
                                  GLint yoffset, GLint zoffset, GLsizei width,
                                  GLsizei height, GLsizei depth, GLenum format,
-- 
2.9.3



More information about the mesa-dev mailing list