1*c8dee2aaSAndroid Build Coastguard Worker// defines built-in interfaces supported by SkSL compute shaders 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerlayout(builtin=24) in uint3 sk_NumWorkgroups; 4*c8dee2aaSAndroid Build Coastguard Workerlayout(builtin=26) in uint3 sk_WorkgroupID; 5*c8dee2aaSAndroid Build Coastguard Workerlayout(builtin=27) in uint3 sk_LocalInvocationID; 6*c8dee2aaSAndroid Build Coastguard Workerlayout(builtin=28) in uint3 sk_GlobalInvocationID; 7*c8dee2aaSAndroid Build Coastguard Workerlayout(builtin=29) in uint sk_LocalInvocationIndex; 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Workerstruct IndirectDispatchArgs { 10*c8dee2aaSAndroid Build Coastguard Worker int x, y, z; 11*c8dee2aaSAndroid Build Coastguard Worker}; 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker$pure half4 textureRead($readableTexture2D t, uint2 pos); 14*c8dee2aaSAndroid Build Coastguard Workervoid textureWrite($writableTexture2D t, uint2 pos, half4 color); 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker$pure uint textureWidth($genTexture2D t); 17*c8dee2aaSAndroid Build Coastguard Worker$pure uint textureHeight($genTexture2D t); 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker// Control-barrier with memory-ordering constraints applied to 20*c8dee2aaSAndroid Build Coastguard Worker// workgroup shared memory only. 21*c8dee2aaSAndroid Build Coastguard Workervoid workgroupBarrier(); 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker// Control-barrier with memory-ordering constraints applied to 24*c8dee2aaSAndroid Build Coastguard Worker// uniform and storage-buffer memory. 25*c8dee2aaSAndroid Build Coastguard Workervoid storageBarrier(); 26