On Mon, 2015-09-28 at 15:23 +0300, Francisco Jerez wrote: > Iago Toral <ito...@igalia.com> writes: > > > On Mon, 2015-09-28 at 13:13 +0300, Francisco Jerez wrote: > >> Iago Toral Quiroga <ito...@igalia.com> writes: > >> > >> > From: Kristian Høgsberg <k...@bitplanet.net> > >> > > >> > --- > >> > src/glsl/ast_to_hir.cpp | 6 +++--- > >> > 1 file changed, 3 insertions(+), 3 deletions(-) > >> > > >> > diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp > >> > index 566cc87..a364aae 100644 > >> > --- a/src/glsl/ast_to_hir.cpp > >> > +++ b/src/glsl/ast_to_hir.cpp > >> > @@ -2789,7 +2789,7 @@ apply_type_qualifier_to_variable(const struct > >> > ast_type_qualifier *qual, > >> > } > >> > > >> > if (var->type->contains_atomic()) { > >> > - if (var->data.mode == ir_var_uniform) { > >> > + if (var->data.mode == ir_var_uniform || var->data.mode == > >> > ir_var_shader_storage) { > >> > if (var->data.explicit_binding) { > >> > unsigned *offset = > >> > &state->atomic_counter_offsets[var->data.binding]; > >> > @@ -2807,8 +2807,8 @@ apply_type_qualifier_to_variable(const struct > >> > ast_type_qualifier *qual, > >> > } > >> > } else if (var->data.mode != ir_var_function_in) { > >> > _mesa_glsl_error(loc, state, "atomic counters may only be > >> > declared as " > >> > - "function parameters or uniform-qualified " > >> > - "global variables"); > >> > + "function parameters, uniform-qualified or " > >> > + "buffer-qualified global variables"); > >> > } > >> > } > >> > > >> > >> Spec quote? Declaring an atomic counter to have buffer storage is > >> illegal AFAIK. > > > > I think you are right, the specs don't seem to include any explicit > > restrictions affecting the allowed types for buffer variables, however, > > the description of opaque types seems to be in conflict with that: > > > > "The opaque types declare variables that are effectively opaque > > handles to other objects. These objects are > > accessed through built-in functions, not through direct reading or > > writing of the declared variable. > > (...) > > Opaque variables cannot be treated as l-values;(...)" > > > > I am thinking that we probably want to revert this patch and instead > > check that buffer variables do not contain references to any opaque > > types and produce a compile-time error if that is the case. I'll send > > patches for this. Maybe the specs should be amended to mention this > > explicitly too. Ian, what do you think? > > > They mention it explicitly AFAICT (section 4.1.7 of the GL 4.5 spec): > > "[Opaque Types] can only be declared as function parameters or in > uniform-qualified variables."
Right, I meant that this is not explicit in the description of buffer variables. Iago _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev