[Mesa-dev] [RFC] glsl: bump default glsl version to 130 if EXT_gpu_shader4 used

Marek Olšák maraeo at gmail.com
Tue May 15 19:15:09 UTC 2018


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Mon, May 14, 2018 at 10:32 PM, Timothy Arceri <tarceri at itsqueeze.com>
wrote:

> EXT_gpu_shader4 is GL 3.0 plus some more bits and pieces. Currently
> the extension is never enabled for any drivers. Bumping the glsl
> version should allow shaders to compile.
>
> Noticed when looking at the trace from:
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102522
> ---
>  src/compiler/glsl/glsl_parser_extras.cpp | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/src/compiler/glsl/glsl_parser_extras.cpp
> b/src/compiler/glsl/glsl_parser_extras.cpp
> index c6ffdcc588c..9d22b53de56 100644
> --- a/src/compiler/glsl/glsl_parser_extras.cpp
> +++ b/src/compiler/glsl/glsl_parser_extras.cpp
> @@ -422,7 +422,7 @@ _mesa_glsl_parse_state::process_version_directive(YYLTYPE
> *locp, int version,
>
>     if (this->forced_language_version)
>        this->language_version = this->forced_language_version;
> -   else
> +   else if ((unsigned)version > this->language_version)
>        this->language_version = version;
>
>     this->compat_shader = compat_token_present ||
> @@ -814,6 +814,23 @@ _mesa_glsl_process_extension(const char *name,
> YYLTYPE *name_locp,
>        }
>     } else {
>        const _mesa_glsl_extension *extension = find_extension(name);
> +
> +      /* The following is a hack while EXT_gpu_shader4 is unsupported.
> +       */
> +      assert(state->ctx->Extensions.EXT_gpu_shader4 == false);
> +      if (state->language_version < 130 &&
> +          state->ctx->Const.GLSLVersion >= 130 &&
> +          strcmp(name, "GL_EXT_gpu_shader4") == 0 &&
> +          (behavior == extension_enable || behavior ==
> extension_require)) {
> +
> +         state->language_version = 130;
> +         _mesa_glsl_warning(name_locp, state,
> +                            "extension `%s' unsupported in %s shader."
> +                            " Use GLSL 1.30 instead.",
> +                            name, _mesa_shader_stage_to_string(
> state->stage));
> +         return true;
> +      }
> +
>        if (extension && extension->compatible_with_state(state, api,
> gl_version)) {
>           extension->set_flags(state, behavior);
>           if (extension->available_pred == has_ANDROID_extension_pack_es31a)
> {
> --
> 2.17.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180515/f76ba9c5/attachment.html>


More information about the mesa-dev mailing list