blob: e9e12f12a80df3107cb8614ffcd5a69ff71404ce [file] [log] [blame]
alias Mat = mat3x3<f32>;
struct S {
m : Mat,
}
struct S2 {
m : array<Mat, 1>,
}
struct S3 {
s : S,
}
struct S4 {
s : array<S, 1>,
}
@group(0) @binding(0) var<storage, read_write> buffer0 : Mat;
@group(0) @binding(1) var<storage, read_write> buffer1 : S;
@group(0) @binding(2) var<storage, read_write> buffer2 : S2;
@group(0) @binding(3) var<storage, read_write> buffer3 : S3;
@group(0) @binding(4) var<storage, read_write> buffer4 : S4;
@group(0) @binding(5) var<storage, read_write> buffer5 : array<Mat, 1>;
@group(0) @binding(6) var<storage, read_write> buffer6 : array<S, 1>;
@group(0) @binding(7) var<storage, read_write> buffer7 : array<S2, 1>;
@compute @workgroup_size(1)
fn main() {
var m : Mat;
for(var c = 0u; (c < 3); c++) {
m[c] = vec3(f32(((c * 3) + 1)), f32(((c * 3) + 2)), f32(((c * 3) + 3)));
}
{
let a = m;
buffer0 = a;
}
{
let a = S(m);
buffer1 = a;
}
{
let a = S2(array<Mat, 1>(m));
buffer2 = a;
}
{
let a = S3(S(m));
buffer3 = a;
}
{
let a = S4(array<S, 1>(S(m)));
buffer4 = a;
}
{
let a = array<Mat, 1>(m);
buffer5 = a;
}
{
let a = array<S, 1>(S(m));
buffer6 = a;
}
{
let a = array<S2, 1>(S2(array<Mat, 1>(m)));
buffer7 = a;
}
}