// defines built-in interfaces supported by SkSL compute shaders

layout(builtin=28) in uint3 sk_ThreadPosition;

$pure half4 read($readableTexture2D t, uint2 pos);
void write($writableTexture2D t, uint2 pos, half4 color);

$pure uint width($genTexture2D t);
$pure uint height($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();
