xref: /aosp_15_r20/external/skia/tests/sksl/shared/StorageBuffer.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor;
3*c8dee2aaSAndroid Build Coastguard Workerstruct SomeData {
4*c8dee2aaSAndroid Build Coastguard Worker    vec4 a;
5*c8dee2aaSAndroid Build Coastguard Worker    vec2 b;
6*c8dee2aaSAndroid Build Coastguard Worker};
7*c8dee2aaSAndroid Build Coastguard Workerlayout (binding = 0, set = 0) readonly buffer storageBuffer {
8*c8dee2aaSAndroid Build Coastguard Worker    uint offset;
9*c8dee2aaSAndroid Build Coastguard Worker    SomeData[] inputData;
10*c8dee2aaSAndroid Build Coastguard Worker};
11*c8dee2aaSAndroid Build Coastguard Workerlayout (binding = 1, set = 0) buffer outputBuffer {
12*c8dee2aaSAndroid Build Coastguard Worker    SomeData[] outputData;
13*c8dee2aaSAndroid Build Coastguard Worker};
14*c8dee2aaSAndroid Build Coastguard Workerlayout (location = 2) flat in int bufferIndex;
15*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
16*c8dee2aaSAndroid Build Coastguard Worker    outputData[offset] = inputData[offset];
17*c8dee2aaSAndroid Build Coastguard Worker    return inputData[bufferIndex].a * inputData[bufferIndex].b.x;
18*c8dee2aaSAndroid Build Coastguard Worker}
19