mesa: Support querying GL_MAX_ELEMENT_INDEX in ES 3

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.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Matt Turner 2012-12-08 17:24:19 -08:00
parent 92855727f1
commit 532e05a9d0
4 changed files with 23 additions and 0 deletions

View file

@ -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 = 0xffffffffu;
}

View file

@ -309,6 +309,12 @@ static const int extra_ARB_ES2_compatibility_api_es2[] = {
EXTRA_END
};
static const int extra_ARB_ES3_compatibility_api_es3[] = {
EXT(ARB_ES3_compatibility),
EXTRA_API_ES3,
EXTRA_END
};
EXTRA_EXT(ARB_texture_cube_map);
EXTRA_EXT(MESA_texture_array);
EXTRA_EXT2(EXT_secondary_color, ARB_vertex_program);

View file

@ -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_api_es3"],
# GL_ARB_fragment_shader
[ "MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", "CONTEXT_INT(Const.FragmentProgram.MaxUniformComponents), extra_ARB_fragment_shader" ],

View file

@ -2962,6 +2962,17 @@ struct gl_constants
* Drivers that support transform feedback must set this value to GL_FALSE.
*/
GLboolean DisableVaryingPacking;
/*
* Maximum value supported for an index in DrawElements and friends.
*
* This must be at least (1ull<<24)-1. The default value is
* (1ull<<32)-1.
*
* \since ES 3.0 or GL_ARB_ES3_compatibility
* \sa _mesa_init_constants
*/
GLuint64 MaxElementIndex;
};