glsl: Add operator for .length() method on implicitly-sized arrays
authorYevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Wed, 14 Jul 2021 17:39:45 +0000 (20:39 +0300)
committerMarge Bot <eric+marge@anholt.net>
Tue, 27 Jul 2021 10:02:50 +0000 (10:02 +0000)
commit441826aaaac54e84629269c4622be2f17a465209
tree5f47e8d741631d3c8a819ffe3d411fec58ef0336
parente6cdb01c517b42dece9ed532fd6eba7a74aa8f71
glsl: Add operator for .length() method on implicitly-sized arrays

ARB_shader_storage_buffer_object extension (promoted to core in 4.3) allows us
to call .length() method on arrays declared without an explicit size. The length is
determined at link time as a maximum array access.

Fixes: 273f61a0051a ("glsl: Add parser/compiler support for unsized array's length()")
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11952>
src/compiler/glsl/ir.cpp
src/compiler/glsl/ir_expression_operation.py
src/compiler/glsl/ir_validate.cpp
src/compiler/glsl/linker.cpp
src/mesa/program/ir_to_mesa.cpp
src/mesa/state_tracker/st_glsl_to_tgsi.cpp