Tapani Pälli <tapani.pa...@intel.com> writes: > Patch fixes the slot count used by vector types and adds 1 slot > to be used by image and sampler types. > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > https://bugs.freedesktop.org/show_bug.cgi?id=82921 > --- > src/glsl/glsl_types.cpp | 18 +++++++++--------- > src/glsl/glsl_types.h | 3 +++ > 2 files changed, 12 insertions(+), 9 deletions(-) > > diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp > index 66e9b13..3c13fce 100644 > --- a/src/glsl/glsl_types.cpp > +++ b/src/glsl/glsl_types.cpp > @@ -678,12 +678,17 @@ glsl_type::component_slots() const > unsigned > glsl_type::uniform_locations() const > { > - if (this->is_matrix()) > - return 1; > - > unsigned size = 0; > > switch (this->base_type) { > + case GLSL_TYPE_UINT: > + case GLSL_TYPE_INT: > + case GLSL_TYPE_FLOAT: > + case GLSL_TYPE_BOOL: > + case GLSL_TYPE_SAMPLER: > + case GLSL_TYPE_IMAGE: > + return 1; > + > case GLSL_TYPE_STRUCT: > case GLSL_TYPE_INTERFACE: > for (unsigned i = 0; i < this->length; i++) > @@ -692,13 +697,8 @@ glsl_type::uniform_locations() const > case GLSL_TYPE_ARRAY: > return this->length * this->fields.array->uniform_locations(); > default: > - break; > + return 0; > } > - > - /* The location count for many types match with component_slots() result, > - * all expections should be handled above. > - */ > - return component_slots(); > } > > bool > diff --git a/src/glsl/glsl_types.h b/src/glsl/glsl_types.h > index d545533..5a307bb 100644 > --- a/src/glsl/glsl_types.h > +++ b/src/glsl/glsl_types.h > @@ -279,6 +279,9 @@ struct glsl_type { > /** > * Calculate the number of unique values from glGetUniformLocation for the > * elements of the type. > + * > + * This is used to allocate slots in the UniformRemapTable, the amount of > + * locations may not match with actual used storage space by the driver. > */ > unsigned uniform_locations() const; >
Looks OK to me, Reviewed-by: Francisco Jerez <curroje...@riseup.net>
pgpMFMs4eyVy5.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev