mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-01 20:21:23 +00:00
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>
35 lines
991 B
Plaintext
35 lines
991 B
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct VertexInputs0 {
|
|
uint vertex_index;
|
|
int loc0;
|
|
};
|
|
struct VertexInputs1 {
|
|
float loc2;
|
|
float4 loc3;
|
|
};
|
|
struct tint_symbol_3 {
|
|
int loc0 [[attribute(0)]];
|
|
uint loc1 [[attribute(1)]];
|
|
float loc2 [[attribute(2)]];
|
|
float4 loc3 [[attribute(3)]];
|
|
};
|
|
struct tint_symbol_4 {
|
|
float4 value [[position]];
|
|
};
|
|
|
|
vertex tint_symbol_4 tint_symbol(uint tint_symbol_2 [[vertex_id]], uint instance_index [[instance_id]], tint_symbol_3 tint_symbol_1 [[stage_in]]) {
|
|
VertexInputs0 const inputs0 = {.vertex_index=tint_symbol_2, .loc0=tint_symbol_1.loc0};
|
|
uint const loc1 = tint_symbol_1.loc1;
|
|
VertexInputs1 const inputs1 = {.loc2=tint_symbol_1.loc2, .loc3=tint_symbol_1.loc3};
|
|
uint const foo = (inputs0.vertex_index + instance_index);
|
|
int const i = inputs0.loc0;
|
|
uint const u = loc1;
|
|
float const f = inputs1.loc2;
|
|
float4 const v = inputs1.loc3;
|
|
tint_symbol_4 const tint_symbol_5 = {.value=float4()};
|
|
return tint_symbol_5;
|
|
}
|
|
|