[Mesa-dev] [PATCH 3/3] mesa: add KHR_no_error support for gl{Compressed}TexImage*D()
Nicolai Hähnle
nhaehnle at gmail.com
Mon Jun 26 08:54:47 UTC 2017
For the series:
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
On 26.06.2017 02:49, Timothy Arceri wrote:
> ---
> src/mapi/glapi/gen/gl_API.xml | 14 ++++----
> src/mesa/main/teximage.c | 82 +++++++++++++++++++++++++++++++++++++++++++
> src/mesa/main/teximage.h | 34 ++++++++++++++++++
> 3 files changed, 124 insertions(+), 6 deletions(-)
>
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index 2cc66ac..550af08 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -2149,7 +2149,7 @@
> <glx rop="108"/>
> </function>
>
> - <function name="TexImage1D">
> + <function name="TexImage1D" no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLint"/>
> @@ -2161,7 +2161,7 @@
> <glx rop="109" large="true"/>
> </function>
>
> - <function name="TexImage2D" es1="1.0" es2="2.0">
> + <function name="TexImage2D" es1="1.0" es2="2.0" no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLint"/>
> @@ -4011,7 +4011,7 @@
> <glx rop="4113"/>
> </function>
>
> - <function name="TexImage3D" es2="3.0">
> + <function name="TexImage3D" es2="3.0" no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLint"/>
> @@ -4507,7 +4507,8 @@
> <glx rop="229"/>
> </function>
>
> - <function name="CompressedTexImage3D" es2="3.0" marshal="sync">
> + <function name="CompressedTexImage3D" es2="3.0" marshal="sync"
> + no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLenum"/>
> @@ -4520,7 +4521,8 @@
> <glx rop="216" handcode="client"/>
> </function>
>
> - <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync">
> + <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync"
> + no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLenum"/>
> @@ -4532,7 +4534,7 @@
> <glx rop="215" handcode="client"/>
> </function>
>
> - <function name="CompressedTexImage1D" marshal="sync">
> + <function name="CompressedTexImage1D" marshal="sync" no_error="true">
> <param name="target" type="GLenum"/>
> <param name="level" type="GLint"/>
> <param name="internalformat" type="GLenum"/>
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 4ff7d33..128e010 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -3090,6 +3090,18 @@ teximage_err(struct gl_context *ctx, GLboolean compressed, GLuint dims,
> }
>
>
> +static void
> +teximage_no_error(struct gl_context *ctx, GLboolean compressed, GLuint dims,
> + GLenum target, GLint level, GLint internalFormat,
> + GLsizei width, GLsizei height, GLsizei depth,
> + GLint border, GLenum format, GLenum type,
> + GLsizei imageSize, const GLvoid *pixels)
> +{
> + teximage(ctx, compressed, dims, target, level, internalFormat, width, height,
> + depth, border, format, type, imageSize, pixels, true);
> +}
> +
> +
> /*
> * Called from the API. Note that width includes the border.
> */
> @@ -3144,6 +3156,40 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalFormat,
>
>
> void GLAPIENTRY
> +_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalFormat,
> + GLsizei width, GLint border, GLenum format,
> + GLenum type, const GLvoid *pixels)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_FALSE, 1, target, level, internalFormat, width, 1,
> + 1, border, format, type, 0, pixels);
> +}
> +
> +
> +void GLAPIENTRY
> +_mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalFormat,
> + GLsizei width, GLsizei height, GLint border,
> + GLenum format, GLenum type, const GLvoid *pixels)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_FALSE, 2, target, level, internalFormat, width,
> + height, 1, border, format, type, 0, pixels);
> +}
> +
> +
> +void GLAPIENTRY
> +_mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalFormat,
> + GLsizei width, GLsizei height, GLsizei depth,
> + GLint border, GLenum format, GLenum type,
> + const GLvoid *pixels )
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_FALSE, 3, target, level, internalFormat,
> + width, height, depth, border, format, type, 0, pixels);
> +}
> +
> +
> +void GLAPIENTRY
> _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
> {
> struct gl_texture_object *texObj;
> @@ -4571,6 +4617,42 @@ _mesa_CompressedTexImage3D(GLenum target, GLint level,
> }
>
>
> +void GLAPIENTRY
> +_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level,
> + GLenum internalFormat, GLsizei width,
> + GLint border, GLsizei imageSize,
> + const GLvoid *data)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_TRUE, 1, target, level, internalFormat, width, 1,
> + 1, border, GL_NONE, GL_NONE, imageSize, data);
> +}
> +
> +
> +void GLAPIENTRY
> +_mesa_CompressedTexImage2D_no_error(GLenum target, GLint level,
> + GLenum internalFormat, GLsizei width,
> + GLsizei height, GLint border,
> + GLsizei imageSize, const GLvoid *data)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_TRUE, 2, target, level, internalFormat, width,
> + height, 1, border, GL_NONE, GL_NONE, imageSize, data);
> +}
> +
> +
> +void GLAPIENTRY
> +_mesa_CompressedTexImage3D_no_error(GLenum target, GLint level,
> + GLenum internalFormat, GLsizei width,
> + GLsizei height, GLsizei depth, GLint border,
> + GLsizei imageSize, const GLvoid *data)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + teximage_no_error(ctx, GL_TRUE, 3, target, level, internalFormat, width,
> + height, depth, border, GL_NONE, GL_NONE, imageSize, data);
> +}
> +
> +
> /**
> * Common helper for glCompressedTexSubImage1/2/3D() and
> * glCompressedTextureSubImage1/2/3D().
> diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
> index 295e35a..72168a4 100644
> --- a/src/mesa/main/teximage.h
> +++ b/src/mesa/main/teximage.h
> @@ -269,6 +269,22 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat,
> const GLvoid *pixels );
>
> extern void GLAPIENTRY
> +_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalformat,
> + GLsizei width, GLint border,
> + GLenum format, GLenum type, const GLvoid *pixels);
> +
> +extern void GLAPIENTRY
> +_mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalformat,
> + GLsizei width, GLsizei height, GLint border,
> + GLenum format, GLenum type, const GLvoid *pixels);
> +
> +extern void GLAPIENTRY
> +_mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalformat,
> + GLsizei width, GLsizei height, GLsizei depth,
> + GLint border, GLenum format, GLenum type,
> + const GLvoid *pixels);
> +
> +extern void GLAPIENTRY
> _mesa_EGLImageTargetTexture2DOES( GLenum target, GLeglImageOES image );
>
> void GLAPIENTRY
> @@ -404,6 +420,24 @@ _mesa_CompressedTexImage3D(GLenum target, GLint level,
> GLsizei height, GLsizei depth, GLint border,
> GLsizei imageSize, const GLvoid *data);
>
> +extern void GLAPIENTRY
> +_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level,
> + GLenum internalformat, GLsizei width,
> + GLint border, GLsizei imageSize,
> + const GLvoid *data);
> +
> +extern void GLAPIENTRY
> +_mesa_CompressedTexImage2D_no_error(GLenum target, GLint level,
> + GLenum internalformat, GLsizei width,
> + GLsizei height, GLint border,
> + GLsizei imageSize, const GLvoid *data);
> +
> +extern void GLAPIENTRY
> +_mesa_CompressedTexImage3D_no_error(GLenum target, GLint level,
> + GLenum internalformat, GLsizei width,
> + GLsizei height, GLsizei depth, GLint border,
> + GLsizei imageSize, const GLvoid *data);
> +
>
> extern void GLAPIENTRY
> _mesa_CompressedTexSubImage1D_no_error(GLenum target, GLint level,
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list