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