blob: 7df6e493298b867672a1ff3c79cce5415a0a20fb [file] [log] [blame]
struct S {
float y;
};
// Unsized array parameters only work with readonly buffers.
layout(set = 0, binding = 0) readonly buffer testStorageBuffer {
float[] testArr;
};
layout(set = 0, binding = 1) readonly buffer testStorageBufferStruct {
S[] testArrStruct;
};
noinline float unsizedInParameterA(float x[]) { return x[0]; }
noinline float unsizedInParameterB(S x[]) { return x[0].y; }
noinline float unsizedInParameterC(float[] x) { return x[0]; }
noinline float unsizedInParameterD(S[] x) { return x[0].y; }
noinline float unsizedInParameterE(float[]) { return 0.0; }
noinline float unsizedInParameterF(S[]) { return 0.0; }
noinline half4 getColor(float[] arr) {
return half4(arr[0], arr[1], arr[2], arr[3]);
}
noinline half4 getColor_helper(float[] arr) {
return getColor(arr);
}
void main() {
sk_FragColor = getColor_helper(testArr);
unsizedInParameterA(testArr);
unsizedInParameterB(testArrStruct);
unsizedInParameterC(testArr);
unsizedInParameterD(testArrStruct);
unsizedInParameterE(testArr);
unsizedInParameterF(testArrStruct);
}