dawn-cmake/test/shader_io/invariant_struct_member.wgsl.expected.msl
Ben Clayton 05eedd81b0 writer/msl: Only use [[invariant]] on MSL 2.1+
This is not supported on older versions.
This behavior was agreed by the WGSL core group:
https://github.com/gpuweb/gpuweb/issues/893#issuecomment-745537465

Bug: tint:1327
Change-Id: I1a0459068c438e625ae9d99fe4a044a96f2db57e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/71684
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-12-03 21:58:53 +00:00

30 lines
527 B
Plaintext

#include <metal_stdlib>
using namespace metal;
#if __METAL_VERSION__ >= 210
#define TINT_INVARIANT [[invariant]]
#else
#define TINT_INVARIANT
#endif
struct Out {
float4 pos;
};
struct tint_symbol_1 {
float4 pos [[position]] TINT_INVARIANT;
};
Out tint_symbol_inner() {
Out const tint_symbol_2 = {};
return tint_symbol_2;
}
vertex tint_symbol_1 tint_symbol() {
Out const inner_result = tint_symbol_inner();
tint_symbol_1 wrapper_result = {};
wrapper_result.pos = inner_result.pos;
return wrapper_result;
}