| out vec4 sk_FragColor; | |
| struct SomeData { | |
| vec4 a; | |
| vec2 b; | |
| }; | |
| layout (binding = 0, set = 0) readonly buffer storageBuffer { | |
| uint offset; | |
| SomeData[] inputData; | |
| }; | |
| layout (binding = 1, set = 0) buffer outputBuffer { | |
| SomeData[] outputData; | |
| }; | |
| layout (location = 2) flat in int bufferIndex; | |
| vec4 main() { | |
| outputData[offset] = inputData[offset]; | |
| return inputData[bufferIndex].a * inputData[bufferIndex].b.x; | |
| } |