mesa: Support querying GL_MAX_ELEMENT_INDEX in ES 3
authorMatt Turner <mattst88@gmail.com>
Sun, 9 Dec 2012 01:24:19 +0000 (17:24 -0800)
committerMatt Turner <mattst88@gmail.com>
Thu, 10 Jan 2013 18:57:51 +0000 (10:57 -0800)
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>
src/mesa/main/context.c
src/mesa/main/get.c
src/mesa/main/get_hash_params.py
src/mesa/main/mtypes.h

index fc2db127161b0a97f28565cb63fec60bdd9ba93b..561eb4685e3cb904f49afa3d0d85a114af387a7e 100644 (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;
 }
 
 
index 6490db20da3feaa5607113884f063b18a3f8174a..e15cbd473a87fa6a8c1becdb30a185f07191661c 100644 (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);
index 3ad61d30df78a99dc4f87d638da7ebc2591c994c..c0826c7caf0f0bfd882b8aaafb235b8a560a507d 100644 (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" ],
 
index ad99988a9e9520cb290635bf32ea0e63b61a2a57..318dcb548d895650fdc005b2f979109f66cd9dd6 100644 (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;
 };