[Mesa-dev] [PATCH] glsl: update the extensions that are enabled for 460

Ilia Mirkin imirkin at alum.mit.edu
Mon Aug 7 12:06:55 UTC 2017


On Mon, Aug 7, 2017 at 5:54 AM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> Other ones are either unsupported or don't have any helper
> function checks.
>
> v5: - do not expose ARB system values for 460

ARB-suffixed functions

> v4: - drop ARB suffix for shader_group_vote/arb_shader_atomic_counter_ops
> v3: - always add gl_BaseVertex & co when 460 is enabled
> v2: - fix ARB_shader_draw_parameters system value names
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/compiler/glsl/builtin_functions.cpp | 99 +++++++++++++++++++++++++++------
>  src/compiler/glsl/builtin_variables.cpp |  5 ++
>  2 files changed, 87 insertions(+), 17 deletions(-)
>
> diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp
> index 84833bdd7d..0e035320aa 100644
> --- a/src/compiler/glsl/builtin_functions.cpp
> +++ b/src/compiler/glsl/builtin_functions.cpp
> @@ -150,6 +150,12 @@ v130_desktop(const _mesa_glsl_parse_state *state)
>     return state->is_version(130, 0);
>  }
>
> +static bool
> +v460_desktop(const _mesa_glsl_parse_state *state)
> +{
> +   return state->is_version(460, 0);
> +}
> +
>  static bool
>  v130_fs_only(const _mesa_glsl_parse_state *state)
>  {
> @@ -962,7 +968,8 @@ private:
>
>     ir_function_signature *_vote_intrinsic(builtin_available_predicate avail,
>                                            enum ir_intrinsic_id id);
> -   ir_function_signature *_vote(const char *intrinsic_name);
> +   ir_function_signature *_vote(const char *intrinsic_name,
> +                                builtin_available_predicate avail);
>
>  #undef B0
>  #undef B1
> @@ -1090,7 +1097,7 @@ builtin_builder::create_intrinsics()
>                  _atomic_intrinsic2(buffer_atomics_supported,
>                                     glsl_type::int_type,
>                                     ir_intrinsic_generic_atomic_add),
> -                _atomic_counter_intrinsic1(shader_atomic_counter_ops,
> +                _atomic_counter_intrinsic1(always_available,
>                                             ir_intrinsic_atomic_counter_add),
>                  NULL);
>     add_function("__intrinsic_atomic_min",

OK, so your resolution was to make the atomic counter and vote
intrinsics (but not the builtins) always available. Seems reasonable
enough, although I might have gone with a new availability predicate
that did old one || 460.

Either way, this is

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>


More information about the mesa-dev mailing list