Enable GL_KHR_shader_subgroup properly
(and GL_NV_shader_subgroup_partitioned) based on GL/ES version instead of predicating it on vulkan SPV generation Also add AST testing. The glsl.450.subgroup* files are largely the same as the spv.subgroup* The glsl.es320.subgroup* files are the same as the 450 versions, but modified to be ES compatible.
This commit is contained in:
parent
5efb004d59
commit
83170e3f7a
66 changed files with 95051 additions and 10 deletions
23
Test/glsl.450.subgroupBasic.comp
Normal file
23
Test/glsl.450.subgroupBasic.comp
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_basic: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
layout(binding = 0) buffer Buffer
|
||||
{
|
||||
int a[];
|
||||
} data;
|
||||
|
||||
void main()
|
||||
{
|
||||
data.a[gl_SubgroupSize] = 1;
|
||||
data.a[gl_SubgroupInvocationID] = 1;
|
||||
data.a[gl_NumSubgroups] = 1;
|
||||
data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0;
|
||||
subgroupBarrier();
|
||||
subgroupMemoryBarrier();
|
||||
subgroupMemoryBarrierBuffer();
|
||||
subgroupMemoryBarrierShared();
|
||||
subgroupMemoryBarrierImage();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue