 83170e3f7a
			
		
	
	
		83170e3f7a
		
	
	
	
	
		
			
			(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.
		
			
				
	
	
		
			24 lines
		
	
	
		
			548 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			548 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #version 320 es
 | |
| 
 | |
| #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();
 | |
| }
 |