#version 450 #extension GL_ARB_gpu_shader_int64: enable #extension GL_AMD_gpu_shader_half_float: enable #extension GL_AMD_gpu_shader_int16: enable #extension GL_AMD_shader_ballot: enable layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; layout(binding = 0) buffer Buffers { int i; uvec2 uv; vec3 fv; dvec4 dv; int64_t i64; u64vec2 u64v; f16vec3 f16v; i16vec4 i16v; uint16_t u16; }; void main() { i = minInvocationsAMD(i); uv = minInvocationsAMD(uv); fv = minInvocationsAMD(fv); dv = minInvocationsAMD(dv); i64 = minInvocationsAMD(i64); u64v = minInvocationsAMD(u64v); f16v = minInvocationsAMD(f16v); i16v = minInvocationsAMD(i16v); u16 = minInvocationsAMD(u16); i = maxInvocationsAMD(i); uv = maxInvocationsAMD(uv); fv = maxInvocationsAMD(fv); dv = maxInvocationsAMD(dv); i64 = maxInvocationsAMD(i64); u64v = maxInvocationsAMD(u64v); f16v = maxInvocationsAMD(f16v); i16v = maxInvocationsAMD(i16v); u16 = maxInvocationsAMD(u16); i = addInvocationsAMD(i); uv = addInvocationsAMD(uv); fv = addInvocationsAMD(fv); dv = addInvocationsAMD(dv); i64 = addInvocationsAMD(i64); u64v = addInvocationsAMD(u64v); f16v = addInvocationsAMD(f16v); i16v = addInvocationsAMD(i16v); u16 = addInvocationsAMD(u16); i = minInvocationsNonUniformAMD(i); uv = minInvocationsNonUniformAMD(uv); fv = minInvocationsNonUniformAMD(fv); dv = minInvocationsNonUniformAMD(dv); i64 = minInvocationsNonUniformAMD(i64); u64v = minInvocationsNonUniformAMD(u64v); f16v = minInvocationsNonUniformAMD(f16v); i16v = minInvocationsNonUniformAMD(i16v); u16 = minInvocationsNonUniformAMD(u16); i = maxInvocationsNonUniformAMD(i); uv = maxInvocationsNonUniformAMD(uv); fv = maxInvocationsNonUniformAMD(fv); dv = maxInvocationsNonUniformAMD(dv); i64 = maxInvocationsNonUniformAMD(i64); u64v = maxInvocationsNonUniformAMD(u64v); f16v = maxInvocationsNonUniformAMD(f16v); i16v = maxInvocationsNonUniformAMD(i16v); u16 = maxInvocationsNonUniformAMD(u16); i = addInvocationsNonUniformAMD(i); uv = addInvocationsNonUniformAMD(uv); fv = addInvocationsNonUniformAMD(fv); dv = addInvocationsNonUniformAMD(dv); i64 = addInvocationsNonUniformAMD(i64); u64v = addInvocationsNonUniformAMD(u64v); f16v = addInvocationsNonUniformAMD(f16v); i16v = addInvocationsNonUniformAMD(i16v); u16 = addInvocationsNonUniformAMD(u16); i = minInvocationsInclusiveScanAMD(i); uv = minInvocationsInclusiveScanAMD(uv); fv = minInvocationsInclusiveScanAMD(fv); dv = minInvocationsInclusiveScanAMD(dv); i64 = minInvocationsInclusiveScanAMD(i64); u64v = minInvocationsInclusiveScanAMD(u64v); f16v = minInvocationsInclusiveScanAMD(f16v); i16v = minInvocationsInclusiveScanAMD(i16v); u16 = minInvocationsInclusiveScanAMD(u16); i = maxInvocationsInclusiveScanAMD(i); uv = maxInvocationsInclusiveScanAMD(uv); fv = maxInvocationsInclusiveScanAMD(fv); dv = maxInvocationsInclusiveScanAMD(dv); i64 = maxInvocationsInclusiveScanAMD(i64); u64v = maxInvocationsInclusiveScanAMD(u64v); f16v = maxInvocationsInclusiveScanAMD(f16v); i16v = maxInvocationsInclusiveScanAMD(i16v); u16 = maxInvocationsInclusiveScanAMD(u16); i = addInvocationsInclusiveScanAMD(i); uv = addInvocationsInclusiveScanAMD(uv); fv = addInvocationsInclusiveScanAMD(fv); dv = addInvocationsInclusiveScanAMD(dv); i64 = addInvocationsInclusiveScanAMD(i64); u64v = addInvocationsInclusiveScanAMD(u64v); f16v = addInvocationsInclusiveScanAMD(f16v); i16v = addInvocationsInclusiveScanAMD(i16v); u16 = addInvocationsInclusiveScanAMD(u16); i = minInvocationsExclusiveScanAMD(i); uv = minInvocationsExclusiveScanAMD(uv); fv = minInvocationsExclusiveScanAMD(fv); dv = minInvocationsExclusiveScanAMD(dv); i64 = minInvocationsExclusiveScanAMD(i64); u64v = minInvocationsExclusiveScanAMD(u64v); f16v = minInvocationsExclusiveScanAMD(f16v); i16v = minInvocationsExclusiveScanAMD(i16v); u16 = minInvocationsExclusiveScanAMD(u16); i = maxInvocationsExclusiveScanAMD(i); uv = maxInvocationsExclusiveScanAMD(uv); fv = maxInvocationsExclusiveScanAMD(fv); dv = maxInvocationsExclusiveScanAMD(dv); i64 = maxInvocationsExclusiveScanAMD(i64); u64v = maxInvocationsExclusiveScanAMD(u64v); f16v = maxInvocationsExclusiveScanAMD(f16v); i16v = maxInvocationsExclusiveScanAMD(i16v); u16 = maxInvocationsExclusiveScanAMD(u16); i = addInvocationsExclusiveScanAMD(i); uv = addInvocationsExclusiveScanAMD(uv); fv = addInvocationsExclusiveScanAMD(fv); dv = addInvocationsExclusiveScanAMD(dv); i64 = addInvocationsExclusiveScanAMD(i64); u64v = addInvocationsExclusiveScanAMD(u64v); f16v = addInvocationsExclusiveScanAMD(f16v); i16v = addInvocationsExclusiveScanAMD(i16v); u16 = addInvocationsExclusiveScanAMD(u16); i = minInvocationsInclusiveScanNonUniformAMD(i); uv = minInvocationsInclusiveScanNonUniformAMD(uv); fv = minInvocationsInclusiveScanNonUniformAMD(fv); dv = minInvocationsInclusiveScanNonUniformAMD(dv); i64 = minInvocationsInclusiveScanNonUniformAMD(i64); u64v = minInvocationsInclusiveScanNonUniformAMD(u64v); f16v = minInvocationsInclusiveScanNonUniformAMD(f16v); i16v = minInvocationsInclusiveScanNonUniformAMD(i16v); u16 = minInvocationsInclusiveScanNonUniformAMD(u16); i = maxInvocationsInclusiveScanNonUniformAMD(i); uv = maxInvocationsInclusiveScanNonUniformAMD(uv); fv = maxInvocationsInclusiveScanNonUniformAMD(fv); dv = maxInvocationsInclusiveScanNonUniformAMD(dv); i64 = maxInvocationsInclusiveScanNonUniformAMD(i64); u64v = maxInvocationsInclusiveScanNonUniformAMD(u64v); f16v = maxInvocationsInclusiveScanNonUniformAMD(f16v); i16v = maxInvocationsInclusiveScanNonUniformAMD(i16v); u16 = maxInvocationsInclusiveScanNonUniformAMD(u16); i = addInvocationsInclusiveScanNonUniformAMD(i); uv = addInvocationsInclusiveScanNonUniformAMD(uv); fv = addInvocationsInclusiveScanNonUniformAMD(fv); dv = addInvocationsInclusiveScanNonUniformAMD(dv); i64 = addInvocationsInclusiveScanNonUniformAMD(i64); u64v = addInvocationsInclusiveScanNonUniformAMD(u64v); f16v = addInvocationsInclusiveScanNonUniformAMD(f16v); i16v = addInvocationsInclusiveScanNonUniformAMD(i16v); u16 = addInvocationsInclusiveScanNonUniformAMD(u16); i = minInvocationsExclusiveScanNonUniformAMD(i); uv = minInvocationsExclusiveScanNonUniformAMD(uv); fv = minInvocationsExclusiveScanNonUniformAMD(fv); dv = minInvocationsExclusiveScanNonUniformAMD(dv); i64 = minInvocationsExclusiveScanNonUniformAMD(i64); u64v = minInvocationsExclusiveScanNonUniformAMD(u64v); f16v = minInvocationsExclusiveScanNonUniformAMD(f16v); i16v = minInvocationsExclusiveScanNonUniformAMD(i16v); u16 = minInvocationsExclusiveScanNonUniformAMD(u16); i = maxInvocationsExclusiveScanNonUniformAMD(i); uv = maxInvocationsExclusiveScanNonUniformAMD(uv); fv = maxInvocationsExclusiveScanNonUniformAMD(fv); dv = maxInvocationsExclusiveScanNonUniformAMD(dv); i64 = maxInvocationsExclusiveScanNonUniformAMD(i64); u64v = maxInvocationsExclusiveScanNonUniformAMD(u64v); f16v = maxInvocationsExclusiveScanNonUniformAMD(f16v); i16v = maxInvocationsExclusiveScanNonUniformAMD(i16v); u16 = maxInvocationsExclusiveScanNonUniformAMD(u16); i = addInvocationsExclusiveScanNonUniformAMD(i); uv = addInvocationsExclusiveScanNonUniformAMD(uv); fv = addInvocationsExclusiveScanNonUniformAMD(fv); dv = addInvocationsExclusiveScanNonUniformAMD(dv); i64 = addInvocationsExclusiveScanNonUniformAMD(i64); u64v = addInvocationsExclusiveScanNonUniformAMD(u64v); f16v = addInvocationsExclusiveScanNonUniformAMD(f16v); i16v = addInvocationsExclusiveScanNonUniformAMD(i16v); u16 = addInvocationsExclusiveScanNonUniformAMD(u16); }