MSL: Handle effective storage for masked CP outputs.

This commit is contained in:
Hans-Kristian Arntzen 2021-03-26 17:28:42 +01:00
parent f2b5fb3f45
commit 04988b89b9

View File

@ -8653,7 +8653,10 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice
// Internally, access chain implementation can also be used on composites,
// ignore scalar access workarounds in this case.
StorageClass effective_storage;
if (expression_type(base).pointer)
auto *var = maybe_get_backing_variable(base);
if (var && variable_decl_is_threadgroup_like(*var))
effective_storage = StorageClassWorkgroup;
else if (expression_type(base).pointer)
effective_storage = get_expression_effective_storage_class(base);
else
effective_storage = StorageClassGeneric;