blob: 8388bf9385b5cd64a147fa93896668bc28797d27 [file] [log] [blame]
James Price085093d2024-06-06 02:09:47 +00001#include <metal_stdlib>
2using namespace metal;
James Price48be7e82024-06-19 22:38:07 +00003
James Price085093d2024-06-06 02:09:47 +00004struct tint_module_vars_struct {
James Price2cc6b3c2024-06-13 20:31:41 +00005 device int* prevent_dce;
6};
James Price48be7e82024-06-19 22:38:07 +00007
James Price2cc6b3c2024-06-13 20:31:41 +00008struct VertexOutput {
9 float4 pos;
10 int prevent_dce;
James Price085093d2024-06-06 02:09:47 +000011};
James Price48be7e82024-06-19 22:38:07 +000012
James Price085093d2024-06-06 02:09:47 +000013struct vertex_main_outputs {
James Price2cc6b3c2024-06-13 20:31:41 +000014 float4 VertexOutput_pos [[position]];
15 int VertexOutput_prevent_dce [[user(locn0)]] [[flat]];
James Price085093d2024-06-06 02:09:47 +000016};
dan sinclairf1f381a2023-11-22 09:44:15 +000017
James Price2cc6b3c2024-06-13 20:31:41 +000018int transpose_b9ad1f() {
James Price085093d2024-06-06 02:09:47 +000019 half3x2 arg_0 = half3x2(half2(1.0h), half2(1.0h), half2(1.0h));
20 half2x3 res = transpose(arg_0);
James Price2cc6b3c2024-06-13 20:31:41 +000021 return select(0, 1, (res[0][0] == 0.0h));
dan sinclairf1f381a2023-11-22 09:44:15 +000022}
James Price48be7e82024-06-19 22:38:07 +000023
James Price2cc6b3c2024-06-13 20:31:41 +000024fragment void fragment_main(device int* prevent_dce [[buffer(0)]]) {
James Price085093d2024-06-06 02:09:47 +000025 tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce};
James Price2cc6b3c2024-06-13 20:31:41 +000026 (*tint_module_vars.prevent_dce) = transpose_b9ad1f();
dan sinclairf1f381a2023-11-22 09:44:15 +000027}
James Price48be7e82024-06-19 22:38:07 +000028
James Price2cc6b3c2024-06-13 20:31:41 +000029kernel void compute_main(device int* prevent_dce [[buffer(0)]]) {
James Price085093d2024-06-06 02:09:47 +000030 tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce};
James Price2cc6b3c2024-06-13 20:31:41 +000031 (*tint_module_vars.prevent_dce) = transpose_b9ad1f();
James Pricea30f8dd2024-05-10 14:31:43 +000032}
James Price48be7e82024-06-19 22:38:07 +000033
James Price2cc6b3c2024-06-13 20:31:41 +000034VertexOutput vertex_main_inner() {
35 VertexOutput out = {};
36 out.pos = float4(0.0f);
37 out.prevent_dce = transpose_b9ad1f();
38 return out;
39}
James Price48be7e82024-06-19 22:38:07 +000040
James Price2cc6b3c2024-06-13 20:31:41 +000041vertex vertex_main_outputs vertex_main() {
42 VertexOutput const v = vertex_main_inner();
43 return vertex_main_outputs{.VertexOutput_pos=v.pos, .VertexOutput_prevent_dce=v.prevent_dce};
dan sinclairf1f381a2023-11-22 09:44:15 +000044}