[Mesa-dev] [PATCH] glsl: Expose gl_MaxTess{Control, Evaluation}AtomicCounters.

Kenneth Graunke kenneth at whitecape.org
Wed Sep 23 19:27:15 PDT 2015


On Wednesday, September 23, 2015 06:15:50 PM Matt Turner wrote:
> ... with only ARB_shader_atomic_counters.
> 
> I expected to see interactions with ARB_tessellation_shader in the
> ARB_shader_atomic_counters spec, but they do not exist. It seems that we
> should unconditionally expose these variables in the presence of
> ARB_shader_atomic_counters:
> 
>    gl_MaxTessControlAtomicCounters
>    gl_MaxTessEvaluationAtomicCounters
> 
> This partially reverts commit da7adb99e8. The commit also affected
> gl_MaxTessControlImageUniforms and gl_MaxTessEvaluationImageUniforms
> similarly but the ARB_shader_image_load_store spec does list an
> interaction with ARB_tessellation_shader.
> 
> Cc: "11.0" <mesa-stable at lists.freedesktop.org>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92095
> ---
> Or should we consider the lack of interactions in ARB_shader_atomic_counters
> to be a bug, such that we should modify the test failing in the bug?
> 
>  src/glsl/builtin_variables.cpp | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp
> index b5e2908..0722051 100644
> --- a/src/glsl/builtin_variables.cpp
> +++ b/src/glsl/builtin_variables.cpp
> @@ -680,14 +680,10 @@ builtin_variable_generator::generate_constants()
>        if (!state->es_shader) {
>           add_const("gl_MaxGeometryAtomicCounters",
>                     state->Const.MaxGeometryAtomicCounters);
> -
> -	 if (state->is_version(400, 0) ||
> -             state->ARB_tessellation_shader_enable) {
> -		 add_const("gl_MaxTessControlAtomicCounters",
> -                           state->Const.MaxTessControlAtomicCounters);
> -		 add_const("gl_MaxTessEvaluationAtomicCounters",
> -                           state->Const.MaxTessEvaluationAtomicCounters);
> -	 }
> +         add_const("gl_MaxTessControlAtomicCounters",
> +                   state->Const.MaxTessControlAtomicCounters);
> +         add_const("gl_MaxTessEvaluationAtomicCounters",
> +                   state->Const.MaxTessEvaluationAtomicCounters);
>        }
>     }

I think this is probably the right thing to do...my guess is that
implementations that don't support tessellation are supposed to set
the constant to 0 counters.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

But feel free to get other opinions.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150923/eca04510/attachment-0001.sig>


More information about the mesa-dev mailing list