mesa: add KHR_no_error support for glCompressedTex*SubImage3D()

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Timothy Arceri 2017-05-12 10:47:14 +10:00
parent d1033cd1eb
commit 6c8964bf63
4 changed files with 44 additions and 3 deletions

View file

@ -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" />

View file

@ -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"/>

View file

@ -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;
@ -4713,6 +4713,19 @@ _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
"glCompressedTextureSubImage2D");
}
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,
@ -4724,6 +4737,19 @@ _mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset,
false, false, "glCompressedTexSubImage3D");
}
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,

View file

@ -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,