On 08/29/2016 11:24 AM, Ilia Mirkin wrote: > On Sun, Aug 28, 2016 at 10:10 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >> This also exposes them for ARB_ES3_2_compatibility. >> >> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >> --- >> src/mesa/main/context.h | 10 ++++++++++ >> src/mesa/main/get.c | 26 ++++++++++++++++++++------ >> src/mesa/main/get_hash_generator.py | 12 ++++++++---- >> src/mesa/main/get_hash_params.py | 5 +++++ >> 4 files changed, 43 insertions(+), 10 deletions(-) >> >> diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h >> index 4cd149d..520b3bb 100644 >> --- a/src/mesa/main/context.h >> +++ b/src/mesa/main/context.h >> @@ -318,6 +318,16 @@ _mesa_is_gles31(const struct gl_context *ctx) >> >> >> /** >> + * Checks if the context is for GLES 3.2 or later >> + */ >> +static inline bool >> +_mesa_is_gles32(const struct gl_context *ctx) >> +{ >> + return ctx->API == API_OPENGLES2 && ctx->Version >= 32; >> +} >> + >> + >> +/** >> * Checks if the context supports geometry shaders. >> */ >> static inline bool >> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c >> index 810ccb9..3cabb2b 100644 >> --- a/src/mesa/main/get.c >> +++ b/src/mesa/main/get.c >> @@ -142,6 +142,7 @@ enum value_extra { >> EXTRA_API_ES2, >> EXTRA_API_ES3, >> EXTRA_API_ES31, >> + EXTRA_API_ES32, >> EXTRA_NEW_BUFFERS, >> EXTRA_NEW_FRAG_CLAMP, >> EXTRA_VALID_DRAW_BUFFER, >> @@ -416,6 +417,12 @@ static const int >> extra_ARB_gpu_shader5_or_OES_sample_variables[] = { >> EXTRA_END >> }; >> >> +static const int extra_ES32[] = { >> + EXT(ARB_ES3_2_compatibility), >> + EXTRA_API_ES32, >> + EXTRA_END >> +}; >> + >> EXTRA_EXT(ARB_texture_cube_map); >> EXTRA_EXT(EXT_texture_array); >> EXTRA_EXT(NV_fog_distance); >> @@ -1164,6 +1171,11 @@ check_extra(struct gl_context *ctx, const char *func, >> const struct value_desc *d >> if (_mesa_is_gles31(ctx)) >> api_found = GL_TRUE; >> break; >> + case EXTRA_API_ES32: >> + api_check = GL_TRUE; >> + if (_mesa_is_gles32(ctx)) >> + api_found = GL_TRUE; >> + break; >> case EXTRA_API_GL: >> api_check = GL_TRUE; >> if (_mesa_is_desktop_gl(ctx)) >> @@ -1312,12 +1324,14 @@ find_value(const char *func, GLenum pname, void **p, >> union value *v) >> * value since it's compatible with GLES2 its entry in table_set[] is at >> the >> * end. >> */ >> - STATIC_ASSERT(ARRAY_SIZE(table_set) == API_OPENGL_LAST + 3); >> - if (_mesa_is_gles3(ctx)) { >> - api = API_OPENGL_LAST + 1; >> - } >> - if (_mesa_is_gles31(ctx)) { >> - api = API_OPENGL_LAST + 2; >> + STATIC_ASSERT(ARRAY_SIZE(table_set) == API_OPENGL_LAST + 4); >> + if (ctx->API == API_OPENGLES2) { >> + if (ctx->Version >= 32) >> + api = API_OPENGL_LAST + 3; >> + else if (ctx->Version >= 31) >> + api = API_OPENGL_LAST + 2; >> + else if (ctx->Version >= 30) >> + api = API_OPENGL_LAST + 1; >> } >> mask = ARRAY_SIZE(table(api)) - 1; >> hash = (pname * prime_factor); >> diff --git a/src/mesa/main/get_hash_generator.py >> b/src/mesa/main/get_hash_generator.py >> index c777b78..a8b4647 100644 >> --- a/src/mesa/main/get_hash_generator.py >> +++ b/src/mesa/main/get_hash_generator.py >> @@ -44,7 +44,7 @@ prime_factor = 89 >> prime_step = 281 >> hash_table_size = 1024 >> >> -gl_apis=set(["GL", "GL_CORE", "GLES", "GLES2", "GLES3", "GLES31"]) >> +gl_apis=set(["GL", "GL_CORE", "GLES", "GLES2", "GLES3", "GLES31", "GLES32"]) >> >> def print_header(): >> print "typedef const unsigned short table_t[%d];\n" % (hash_table_size) >> @@ -69,6 +69,7 @@ api_enum = [ >> 'GL_CORE', >> 'GLES3', # Not in gl_api enum in mtypes.h >> 'GLES31', # Not in gl_api enum in mtypes.h >> + 'GLES32', # Not in gl_api enum in mtypes.h >> ] >> >> def api_index(api): >> @@ -168,13 +169,15 @@ def generate_hash_tables(enum_list, enabled_apis, >> param_descriptors): >> >> for api in valid_apis: >> add_to_hash_table(tables[api], hash_val, len(params)) >> - # Also add GLES2 items to the GLES3 and GLES31 hash table >> + # Also add GLES2 items to the GLES3+ hash tables >> if api == "GLES2": >> add_to_hash_table(tables["GLES3"], hash_val, len(params)) >> add_to_hash_table(tables["GLES31"], hash_val, len(params)) >> - # Also add GLES3 items to the GLES31 hash table >> + add_to_hash_table(tables["GLES32"], hash_val, len(params)) >> + # Also add GLES3 items to the GLES31+ hash tables >> if api == "GLES3": >> add_to_hash_table(tables["GLES31"], hash_val, len(params)) >> + add_to_hash_table(tables["GLES32"], hash_val, len(params)) > > This is missing: > > + if api == "GLES31": > + add_to_hash_table(tables["GLES32"], hash_val, len(params)) > > Oops.
With this change, this patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> >> params.append(["GL_" + enum_name, param[1]]) >> >> sorted_tables={} >> @@ -210,7 +213,8 @@ if __name__ == '__main__': >> die("missing descriptor file (-f)\n") >> >> # generate the code for all APIs >> - enabled_apis = set(["GLES", "GLES2", "GLES3", "GLES31", "GL", "GL_CORE"]) >> + enabled_apis = set(["GLES", "GLES2", "GLES3", "GLES31", "GLES32", >> + "GL", "GL_CORE"]) >> >> try: >> api_desc = gl_XML.parse_GL_API(api_desc_file) >> diff --git a/src/mesa/main/get_hash_params.py >> b/src/mesa/main/get_hash_params.py >> index a206c85..0ff2af9 100644 >> --- a/src/mesa/main/get_hash_params.py >> +++ b/src/mesa/main/get_hash_params.py >> @@ -612,6 +612,11 @@ descriptor=[ >> [ "PRIMITIVE_BOUNDING_BOX_ARB", "CONTEXT_FLOAT8(PrimitiveBoundingBox), >> extra_OES_primitive_bounding_box" ], >> ]}, >> >> +{ "apis": ["GL_CORE", "GLES32"], "params": [ >> + [ "MULTISAMPLE_LINE_WIDTH_RANGE_ARB", >> "CONTEXT_FLOAT2(Const.MinLineWidthMS), extra_ES32" ], >> + [ "MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB", >> "CONTEXT_FLOAT(Const.LineWidthGranularityMS), extra_ES32" ], >> +]}, >> + >> # Remaining enums are only in OpenGL >> { "apis": ["GL", "GL_CORE"], "params": [ >> [ "ACCUM_RED_BITS", "BUFFER_INT(Visual.accumRedBits), NO_EXTRA" ], >> -- >> 2.7.3 >> > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev