dawn-cmake/test/shader_io/fragment_input_mixed.wgsl.expected.msl
James Price 7697c31e84 writer/msl: Emit builtins as parameters
Add a config parameter for the CanonicalizeEntryPoint transform that
selects between emitting builtins as parameters (for MSL) or struct
members (for HLSL).

This fixes all of the shader IO issues in Tint's E2E tests for MSL.

Fixed: tint:817
Change-Id: Ieb31cdbd2e4d96ac41f8d8515fd07ead8241d770
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53282
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2021-06-04 14:40:28 +00:00

35 lines
1.0 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
struct FragmentInputs0 {
float4 position;
int loc0;
};
struct FragmentInputs1 {
float4 loc3;
uint sample_mask;
};
struct tint_symbol_4 {
int loc0 [[user(locn0)]];
uint loc1 [[user(locn1)]];
float loc2 [[user(locn2)]];
float4 loc3 [[user(locn3)]];
};
fragment void tint_symbol(float4 tint_symbol_2 [[position]], bool front_facing [[front_facing]], uint sample_index [[sample_id]], uint tint_symbol_3 [[sample_mask]], tint_symbol_4 tint_symbol_1 [[stage_in]]) {
FragmentInputs0 const inputs0 = {.position=tint_symbol_2, .loc0=tint_symbol_1.loc0};
uint const loc1 = tint_symbol_1.loc1;
FragmentInputs1 const inputs1 = {.loc3=tint_symbol_1.loc3, .sample_mask=tint_symbol_3};
float const loc2 = tint_symbol_1.loc2;
if (front_facing) {
float4 const foo = inputs0.position;
uint const bar = (sample_index + inputs1.sample_mask);
int const i = inputs0.loc0;
uint const u = loc1;
float const f = loc2;
float4 const v = inputs1.loc3;
}
return;
}