dawn-cmake/test/tint/shader_io/fragment_output_locations_f16.wgsl.expected.msl
Zhaoming Jiang 6198bea2ac Dawn&Tint: Implement F16 pipeline IO
This CL implement f16 for pipeline IO, i.e. vertex shader input,
interstage variables between vertex and fragment shader, and fragment
shader output (render target). Unit tests and E2E tests for Tint and
Dawn are also implemented.

Bugs: tint:1473, tint:1502
Change-Id: If0d6b2b3171ec8b7e4efc0efd58cc803c6a3d3a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/111160
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-12-07 04:33:24 +00:00

94 lines
1.7 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
struct tint_symbol {
int value [[color(0)]];
};
int main0_inner() {
return 1;
}
fragment tint_symbol main0() {
int const inner_result = main0_inner();
tint_symbol wrapper_result = {};
wrapper_result.value = inner_result;
return wrapper_result;
}
struct tint_symbol_1 {
uint value [[color(1)]];
};
uint main1_inner() {
return 1u;
}
fragment tint_symbol_1 main1() {
uint const inner_result_1 = main1_inner();
tint_symbol_1 wrapper_result_1 = {};
wrapper_result_1.value = inner_result_1;
return wrapper_result_1;
}
struct tint_symbol_2 {
float value [[color(2)]];
};
float main2_inner() {
return 1.0f;
}
fragment tint_symbol_2 main2() {
float const inner_result_2 = main2_inner();
tint_symbol_2 wrapper_result_2 = {};
wrapper_result_2.value = inner_result_2;
return wrapper_result_2;
}
struct tint_symbol_3 {
float4 value [[color(3)]];
};
float4 main3_inner() {
return float4(1.0f, 2.0f, 3.0f, 4.0f);
}
fragment tint_symbol_3 main3() {
float4 const inner_result_3 = main3_inner();
tint_symbol_3 wrapper_result_3 = {};
wrapper_result_3.value = inner_result_3;
return wrapper_result_3;
}
struct tint_symbol_4 {
half value [[color(4)]];
};
half main4_inner() {
return 2.25h;
}
fragment tint_symbol_4 main4() {
half const inner_result_4 = main4_inner();
tint_symbol_4 wrapper_result_4 = {};
wrapper_result_4.value = inner_result_4;
return wrapper_result_4;
}
struct tint_symbol_5 {
half3 value [[color(5)]];
};
half3 main5_inner() {
return half3(3.0h, 5.0h, 8.0h);
}
fragment tint_symbol_5 main5() {
half3 const inner_result_5 = main5_inner();
tint_symbol_5 wrapper_result_5 = {};
wrapper_result_5.value = inner_result_5;
return wrapper_result_5;
}