On 2 May 2018 at 11:27, Timothy Arceri <[email protected]> wrote: > --- > src/mesa/main/version.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c > index 84babd69e2f..540f5482034 100644 > --- a/src/mesa/main/version.c > +++ b/src/mesa/main/version.c > @@ -591,6 +591,8 @@ _mesa_get_version(const struct gl_extensions *extensions, > if (consts->GLSLVersion > 140) { > consts->GLSLVersion = 140; > } > + /* Support GLSL version overrides in compat profile */ > + _mesa_override_glsl_version(consts);
Why are we allowing this only for compat? As-is this feels very dirty and skimming through the existing code doesn't help much. * classic drivers - 965, starting at create_context _mesa_initialize_context -> _mesa_init_constants -> GLSLVersion (120) + override intelInitExtensions -> GLSLVersion + override combo _mesa_compute_version -> _mesa_get_version -> [optional] cap up-to 140 -> override _mesa_compute_version -> tweak/match GLSL version based on the GL version Not to mention the initial 120 (effectively) in _mesa_initialize_context is bonkers for the following: - Intel Gen2 (GL 1.3) and Gen3 (GL 1.4 or 2.1) - nouveau vieux - GL 1.2 or 1.3 - radeon (r100/r200) - GL 1.3 * gallium - two paths - create_screen and create_context, latter more or less identical to i965 For the create_screen part: st_api_query_versions (for max_gl*_version) -> _mesa_init_constants -> see above st_api_query_versions (for max_gl*_version) -> st_init_extensions -> GLSLVersion + override combo st_api_query_versions (for max_gl*_version) -> _mesa_get_version -> see above As you can see things are hairy. A few ideas that come to mind: - drop the _mesa_init_constants bits and update any drivers needed - each of GLSLVersion, override and tweaks should happen [ideally] once per ctx. In theory one ought to be able to reuse the gallium approach for classic drivers, but that's going on a far too big tangent. HTH Emil _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
