Reviewed-by: Iago Toral Quiroga <[email protected]> You can also add the new piglit tests that this fixes to the commit log.
Iago On Wed, 2017-02-15 at 15:12 +0100, Jose Maria Casanova Crespo wrote: > If an unsized declared array is not the last in an SSBO > and an implicit size can not be defined on linking time, > the linker should raise an error instead of reaching > an assertion on GL. > > This reverts part of commit 3da08e166415a745139c1127040a24e8a45dc553 > getting back to the behavior of commit > 5b2675093e863a52b610f112884ae12d42513770 > > The original patch was correct for GLES that should produce > a compile-time error but the linker error is still necessary in > desktop GL. > > Signed-off-by: Jose Maria Casanova Crespo <[email protected]> > --- > src/compiler/glsl/link_uniform_blocks.cpp | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/compiler/glsl/link_uniform_blocks.cpp > b/src/compiler/glsl/link_uniform_blocks.cpp > index ba01269..839fd07 100644 > --- a/src/compiler/glsl/link_uniform_blocks.cpp > +++ b/src/compiler/glsl/link_uniform_blocks.cpp > @@ -146,7 +146,13 @@ private: > */ > const glsl_type *type_for_size = type; > if (type->is_unsized_array()) { > - assert(last_field); > + if (!last_field) { > + linker_error(prog, "unsized array `%s' definition: " > + "only last member of a shader storage block > " > + "can be defined as unsized array", > + name); > + } > + > type_for_size = type->without_array(); > } > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
