-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[glsl-in] Subgroup support #7571
Copy link
Copy link
Open
Labels
area: naga front-endTranslation to Naga IRTranslation to Naga IRlang: GLSLOpenGL Shading LanguageOpenGL Shading LanguagenagaShader TranslatorShader Translatortype: enhancementNew feature or requestNew feature or request
Description
GLSL ingest in Naga currently does not support subgroup functions.
Here is an example shader taken from Khronos' subgroup tutorial article:
#version 450
#extension GL_KHR_shader_subgroup_arithmetic: enable
layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
layout(std430, set=0, binding=0) buffer layout_foo {
uint foo[];
};
layout(std430, set=0, binding=1) buffer layout_bar {
uint bar;
};
void main() {
uint value = subgroupMax(foo[gl_GlobalInvocationID.x]);
// A single invocation in the subgroup will do the atomic operation
if (subgroupElect()) {
atomicMax(bar, value);
}
}
This produces a couple of unknown function errors for subgroupMax and subgroupElect (and atomicMax, but that is a different issue).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area: naga front-endTranslation to Naga IRTranslation to Naga IRlang: GLSLOpenGL Shading LanguageOpenGL Shading LanguagenagaShader TranslatorShader Translatortype: enhancementNew feature or requestNew feature or request