[Mesa-dev] [PATCH 12/13] mesa: Support querying GL_MAX_ELEMENT_INDEX in ES 3
Brian Paul
brianp at vmware.com
Tue Dec 11 07:53:59 PST 2012
On 12/10/2012 03:28 PM, Matt Turner wrote:
> The ES 3 spec says that the minumum allowable value is 2^24-1, but the
> GL 4.3 and ARB_ES3_compatibility specs require 2^32-1, so return 2^32-1.
>
> Fixes es3conform's element_index_uint_constants test.
> ---
> src/mesa/main/context.c | 3 +++
> src/mesa/main/get.c | 1 +
> src/mesa/main/get_hash_params.py | 3 +++
> src/mesa/main/mtypes.h | 3 +++
> 4 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index fc2db12..241a1f9 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -656,6 +656,9 @@ _mesa_init_constants(struct gl_context *ctx)
>
> /* PrimitiveRestart */
> ctx->Const.PrimitiveRestartInSoftware = GL_FALSE;
> +
> + /* ES 3.0 or ARB_ES3_compatibility */
> + ctx->Const.MaxElementIndex = UINT_MAX;
> }
>
>
> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
> index 115d3c5..c7f8ada 100644
> --- a/src/mesa/main/get.c
> +++ b/src/mesa/main/get.c
> @@ -304,6 +304,7 @@ static const int extra_ARB_uniform_buffer_object_and_geometry_shader[] = {
>
>
> EXTRA_EXT(ARB_ES2_compatibility);
> +EXTRA_EXT(ARB_ES3_compatibility);
> EXTRA_EXT(ARB_texture_cube_map);
> EXTRA_EXT(MESA_texture_array);
> EXTRA_EXT2(EXT_secondary_color, ARB_vertex_program);
> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
> index d0e8a76..cb58394 100644
> --- a/src/mesa/main/get_hash_params.py
> +++ b/src/mesa/main/get_hash_params.py
> @@ -321,6 +321,9 @@ descriptor=[
>
> # Enums in OpenGL and ES 3.0
> { "apis": ["GL", "GL_CORE", "GLES3"], "params": [
> +# GL_ARB_ES3_compatibility
> + [ "MAX_ELEMENT_INDEX", "CONTEXT_INT64(Const.MaxElementIndex), extra_ARB_ES3_compatibility"],
> +
> # GL_ARB_fragment_shader
> [ "MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", "CONTEXT_INT(Const.FragmentProgram.MaxUniformComponents), extra_ARB_fragment_shader" ],
>
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index bd180a5..c9bef15 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -2940,6 +2940,9 @@ struct gl_constants
>
> /** GL_ARB_map_buffer_alignment */
> GLuint MinMapBufferAlignment;
> +
> + /** ES 3.0 or GL_ARB_ES3_compatibility */
> + GLint64 MaxElementIndex;
Since the value can only be positive (and it's a Z+ type in the spec's
state table), I think this should be GLuint64.
> };
>
>
-Brian
More information about the mesa-dev
mailing list