glsl: fix shader_storage_blocks_write_access for SSBO block arrays

CTS: GL45-CTS.compute_shader.resources-max

Fixes: 4e1e8f684b "glsl: remember which SSBOs are not read-only and pass it to gallium"

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Marek Olšák 2019-04-08 17:20:13 -04:00
parent f0fb73dcf6
commit b7ca074cc0

View file

@ -544,8 +544,12 @@ public:
assert(buffer_block_index != -1);
if (var->is_in_shader_storage_block() &&
!var->data.memory_read_only)
shader_storage_blocks_write_access |= 1 << buffer_block_index;
!var->data.memory_read_only) {
shader_storage_blocks_write_access |=
u_bit_consecutive(buffer_block_index,
var->type->is_array() ?
var->type->array_size() : 1);
}
/* Uniform blocks that were specified with an instance name must be
* handled a little bit differently. The name of the variable is the