// defines built-in interfaces supported by SkSL compute shaders layout(builtin=24) in uint3 sk_NumWorkgroups; layout(builtin=26) in uint3 sk_WorkgroupID; layout(builtin=27) in uint3 sk_LocalInvocationID; layout(builtin=28) in uint3 sk_GlobalInvocationID; layout(builtin=29) in uint sk_LocalInvocationIndex; struct IndirectDispatchArgs { int x, y, z; }; $pure half4 textureRead($readableTexture2D t, uint2 pos); void textureWrite($writableTexture2D t, uint2 pos, half4 color); $pure uint textureWidth($genTexture2D t); $pure uint textureHeight($genTexture2D t); // Control-barrier with memory-ordering constraints applied to // workgroup shared memory only. void workgroupBarrier(); // Control-barrier with memory-ordering constraints applied to // uniform and storage-buffer memory. void storageBarrier();