summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-05-12 10:47:14 +1000
committerTimothy Arceri <[email protected]>2017-05-17 10:12:03 +1000
commit6c8964bf6343592698021f42ed67b776cdab458b (patch)
treeba0b116884c6576ee6594efb86014e53ed98efab
parentd1033cd1eb11105730b423723bda5038787145c9 (diff)
mesa: add KHR_no_error support for glCompressedTex*SubImage3D()
Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/mapi/glapi/gen/ARB_direct_state_access.xml2
-rw-r--r--src/mapi/glapi/gen/gl_API.xml3
-rw-r--r--src/mesa/main/teximage.c28
-rw-r--r--src/mesa/main/teximage.h14
4 files changed, 44 insertions, 3 deletions
diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml
index 21f44b546c9..43e4e05b10f 100644
--- a/src/mapi/glapi/gen/ARB_direct_state_access.xml
+++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml
@@ -432,7 +432,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage3D">
+ <function name="CompressedTextureSubImage3D" no_error="true">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 755cb311756..1a3b306c03c 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -4543,7 +4543,8 @@
<glx rop="214" handcode="client"/>
</function>
- <function name="CompressedTexSubImage3D" es2="3.0" marshal="sync">
+ <function name="CompressedTexSubImage3D" es2="3.0" marshal="sync"
+ no_error="true">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 2f9ff309428..fed1dad2621 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -4583,7 +4583,7 @@ compressed_tex_sub_image(unsigned dim, GLenum target, GLuint texture,
* (See texturesubimage in teximage.c for details on why this check is
* performed.)
*/
- if (!_mesa_cube_level_complete(texObj, level)) {
+ if (!no_error && !_mesa_cube_level_complete(texObj, level)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glCompressedTextureSubImage3D(cube map incomplete)");
return;
@@ -4714,6 +4714,19 @@ _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
}
void GLAPIENTRY
+_mesa_CompressedTexSubImage3D_no_error(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *data)
+{
+ compressed_tex_sub_image(3, target, 0, level, xoffset, yoffset, zoffset,
+ width, height, depth, format, imageSize, data,
+ false, true, "glCompressedTexSubImage3D");
+}
+
+void GLAPIENTRY
_mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset, GLsizei width,
GLsizei height, GLsizei depth, GLenum format,
@@ -4725,6 +4738,19 @@ _mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset,
}
void GLAPIENTRY
+_mesa_CompressedTextureSubImage3D_no_error(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *data)
+{
+ compressed_tex_sub_image(3, 0, texture, level, xoffset, yoffset, zoffset,
+ width, height, depth, format, imageSize, data,
+ true, true, "glCompressedTextureSubImage3D");
+}
+
+void GLAPIENTRY
_mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset, GLsizei width,
GLsizei height, GLsizei depth,
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index 6eda7215457..bc4e235d387 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -433,12 +433,26 @@ _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
const GLvoid *data);
extern void GLAPIENTRY
+_mesa_CompressedTexSubImage3D_no_error(GLenum target, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ 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,
GLsizei imageSize, const GLvoid *data);
extern void GLAPIENTRY
+_mesa_CompressedTextureSubImage3D_no_error(GLuint texture, GLint level,
+ GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *data);
+extern void GLAPIENTRY
_mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset,
GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height,