MSL: Don't emit native array for masked clip/cull distance.

This commit is contained in:
Hans-Kristian Arntzen 2021-04-16 14:19:07 +02:00
parent 406af8ff4d
commit 4a379a00f3
2 changed files with 3 additions and 2 deletions

View File

@ -53,7 +53,7 @@ struct main0_out
};
static inline __attribute__((always_inline))
void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread float (&gl_ClipDistance)[2])
void write_in_func(thread float4& v0, thread float4& v1, thread float4& gl_Position, thread float& gl_PointSize, thread spvUnsafeArray<float, 2>& gl_ClipDistance)
{
v0 = float4(1.0);
v1 = float4(2.0);

View File

@ -12439,7 +12439,8 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg)
is_using_builtin_array = true;
auto storage = get<SPIRType>(var.basetype).storage;
if (storage == StorageClassOutput && variable_storage_requires_stage_io(storage))
if (storage == StorageClassOutput && variable_storage_requires_stage_io(storage) &&
!is_stage_output_builtin_masked(builtin_type))
is_using_builtin_array = true;
if (is_using_builtin_array)