dawn-cmake/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl

51 lines
1.1 KiB
WebGPU Shading Language

struct struct_base {
data : i32;
leftIndex : i32;
rightIndex : i32;
}
struct buf0 {
injectionSwitch : vec2<f32>;
}
var<private> struct_array : array<struct_base, 3u>;
@group(0) @binding(0) var<uniform> x_8 : buf0;
var<private> x_GLF_color : vec4<f32>;
fn main_1() {
var index : i32;
struct_array = array<struct_base, 3u>(struct_base(1, 1, 1), struct_base(1, 1, 1), struct_base(1, 1, 1));
index = 1;
struct_array[1].rightIndex = 1;
let x_39 : i32 = struct_array[1].leftIndex;
if ((x_39 == 1)) {
let x_45 : f32 = x_8.injectionSwitch.x;
let x_48 : i32 = struct_array[i32(x_45)].rightIndex;
index = x_48;
} else {
let x_50 : f32 = x_8.injectionSwitch.y;
let x_53 : i32 = struct_array[i32(x_50)].leftIndex;
index = x_53;
}
let x_55 : i32 = struct_array[1].leftIndex;
if ((x_55 == 1)) {
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
} else {
x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
}
return;
}
struct main_out {
@location(0)
x_GLF_color_1 : vec4<f32>;
}
@stage(fragment)
fn main() -> main_out {
main_1();
return main_out(x_GLF_color);
}