[Mesa-dev] [PATCH v2 1/5] mesa/main: add ARB_clear_texture entrypoints

Ilia Mirkin imirkin at alum.mit.edu
Wed Jul 2 11:13:22 PDT 2014


On Wed, Jul 2, 2014 at 2:00 PM, Neil Roberts <neil at linux.intel.com> wrote:
> From: Ilia Mirkin <imirkin at alum.mit.edu>
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Reviewed-by: Neil Roberts <neil at linux.intel.com>
> ---
>  src/mapi/glapi/gen/ARB_clear_texture.xml | 34 ++++++++++++++++++++++++++++++++
>  src/mapi/glapi/gen/gl_API.xml            |  6 +++++-
>  src/mesa/main/extensions.c               |  1 +
>  src/mesa/main/mtypes.h                   |  1 +
>  src/mesa/main/tests/dispatch_sanity.cpp  |  4 ++++
>  src/mesa/main/teximage.c                 | 16 +++++++++++++++
>  src/mesa/main/teximage.h                 | 10 ++++++++++
>  7 files changed, 71 insertions(+), 1 deletion(-)
>  create mode 100644 src/mapi/glapi/gen/ARB_clear_texture.xml
>
> diff --git a/src/mapi/glapi/gen/ARB_clear_texture.xml b/src/mapi/glapi/gen/ARB_clear_texture.xml
> new file mode 100644
> index 0000000..bd9116f
> --- /dev/null
> +++ b/src/mapi/glapi/gen/ARB_clear_texture.xml
> @@ -0,0 +1,34 @@
> +<?xml version="1.0"?>
> +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
> +
> +<OpenGLAPI>
> +
> +<category name="GL_ARB_clear_texture" number="145">
> +
> +    <enum name="CLEAR_TEXTURE" value="0x9365"/>
> +
> +    <function name ="ClearTexImage" offset="assign">
> +        <param name="texture" type="GLuint"/>
> +        <param name="level" type="GLint"/>
> +        <param name="format" type="GLenum"/>
> +        <param name="type" type="GLenum"/>
> +        <param name="data" type="const GLvoid *"/>
> +    </function>
> +
> +    <function name ="ClearTexSubImage" offset="assign">
> +        <param name="texture" type="GLuint"/>
> +        <param name="level" type="GLint"/>
> +        <param name="xoffset" type="GLint"/>
> +        <param name="yoffset" type="GLint"/>
> +        <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="type" type="GLenum"/>
> +        <param name="data" type="const GLvoid *"/>
> +    </function>
> +
> +</category>
> +
> +</OpenGLAPI>
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index 882e66e..8808f4d 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -8358,7 +8358,11 @@
>      </function>
>  </category>
>
> -<!-- ARB extensions #145...#146 -->

I believe what this is saying is akin to "Danger! There is a hole from
145 to 146". Since ARB_clear_texture is 145, the hole is now just 146
(ARB_enhanced_layouts)... Whereas your comments indicate the numbers
of the actually-listed extensions.

Note that I don't really understand what the point of extension
numbers is in the first place, or why it's important to indicate where
the holes are or what the extension numbers are. But I do think you're
changing the intent of the comment here.

  -ilia

> +<!-- ARB extension #145 -->
> +
> +<xi:include href="ARB_clear_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> +
> +<!-- ARB extension #147 -->
>
>  <xi:include href="ARB_multi_bind.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
>
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index 6f25361..8ea8a08 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -90,6 +90,7 @@ static const struct extension extension_table[] = {
>     { "GL_ARB_blend_func_extended",                 o(ARB_blend_func_extended),                 GL,             2009 },
>     { "GL_ARB_buffer_storage",                      o(ARB_buffer_storage),                      GL,             2013 },
>     { "GL_ARB_clear_buffer_object",                 o(dummy_true),                              GL,             2012 },
> +   { "GL_ARB_clear_texture",                       o(ARB_clear_texture),                       GL,             2013 },
>     { "GL_ARB_color_buffer_float",                  o(ARB_color_buffer_float),                  GL,             2004 },
>     { "GL_ARB_compressed_texture_pixel_storage",    o(dummy_true),                              GL,             2011 },
>     { "GL_ARB_compute_shader",                      o(ARB_compute_shader),                      GL,             2012 },
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index e78bcde..62fab89 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3508,6 +3508,7 @@ struct gl_extensions
>     GLboolean ARB_base_instance;
>     GLboolean ARB_blend_func_extended;
>     GLboolean ARB_buffer_storage;
> +   GLboolean ARB_clear_texture;
>     GLboolean ARB_color_buffer_float;
>     GLboolean ARB_compute_shader;
>     GLboolean ARB_conservative_depth;
> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
> index 0e57653..6c4bdee 100644
> --- a/src/mesa/main/tests/dispatch_sanity.cpp
> +++ b/src/mesa/main/tests/dispatch_sanity.cpp
> @@ -947,6 +947,10 @@ const struct function gl_core_functions_possible[] = {
>     /* GL_ARB_buffer_storage */
>     { "glBufferStorage", 43, -1 },
>
> +   /* GL_ARB_clear_texture */
> +   { "glClearTexImage", 13, -1 },
> +   { "glClearTexSubImage", 13, -1 },
> +
>     { NULL, 0, -1 }
>  };
>
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index a069594..3fba6f1 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -3818,6 +3818,22 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level,
>                     x, y, width, height);
>  }
>
> +void GLAPIENTRY
> +_mesa_ClearTexSubImage( GLuint texture, GLint level,
> +                        GLint xoffset, GLint yoffset, GLint zoffset,
> +                        GLsizei width, GLsizei height, GLsizei depth,
> +                        GLenum format, GLenum type, const void *data )
> +{
> +
> +}
> +
> +void GLAPIENTRY
> +_mesa_ClearTexImage( GLuint texture, GLint level,
> +                     GLenum format, GLenum type, const void *data )
> +{
> +
> +}
> +
>
>
>
> diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
> index dd1504b..42305f4 100644
> --- a/src/mesa/main/teximage.h
> +++ b/src/mesa/main/teximage.h
> @@ -261,6 +261,16 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level,
>
>
>  extern void GLAPIENTRY
> +_mesa_ClearTexSubImage( GLuint texture, GLint level,
> +                        GLint xoffset, GLint yoffset, GLint zoffset,
> +                        GLsizei width, GLsizei height, GLsizei depth,
> +                        GLenum format, GLenum type, const void *data );
> +
> +extern void GLAPIENTRY
> +_mesa_ClearTexImage( GLuint texture, GLint level,
> +                     GLenum format, GLenum type, const void *data );
> +
> +extern void GLAPIENTRY
>  _mesa_CompressedTexImage1D(GLenum target, GLint level,
>                                GLenum internalformat, GLsizei width,
>                                GLint border, GLsizei imageSize,
> --
> 1.9.3
>


More information about the mesa-dev mailing list