Front-end: Complete GL_ARB_compute_shader, previous commit was missing new barriers.
This amends the previous commit, which ommitted barriers in version 420 for compute shader.
This commit is contained in:
		
							parent
							
								
									d94c003fb7
								
							
						
					
					
						commit
						548c3adecd
					
				@ -19,4 +19,12 @@ void main()
 | 
				
			|||||||
            gl_MaxComputeImageUniforms +
 | 
					            gl_MaxComputeImageUniforms +
 | 
				
			||||||
            gl_MaxComputeAtomicCounters +
 | 
					            gl_MaxComputeAtomicCounters +
 | 
				
			||||||
            gl_MaxComputeAtomicCounterBuffers;
 | 
					            gl_MaxComputeAtomicCounterBuffers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    barrier();
 | 
				
			||||||
 | 
					    memoryBarrier();
 | 
				
			||||||
 | 
					    memoryBarrierAtomicCounter();
 | 
				
			||||||
 | 
					    memoryBarrierBuffer();
 | 
				
			||||||
 | 
					    memoryBarrierImage();
 | 
				
			||||||
 | 
					    memoryBarrierShared();
 | 
				
			||||||
 | 
					    groupMemoryBarrier();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -46,6 +46,13 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:17        'sfoo' (shared 3-component vector of float)
 | 
					0:17        'sfoo' (shared 3-component vector of float)
 | 
				
			||||||
0:17        Constant:
 | 
					0:17        Constant:
 | 
				
			||||||
0:17          1057.000000
 | 
					0:17          1057.000000
 | 
				
			||||||
 | 
					0:23      Barrier (global void)
 | 
				
			||||||
 | 
					0:24      MemoryBarrier (global void)
 | 
				
			||||||
 | 
					0:25      MemoryBarrierAtomicCounter (global void)
 | 
				
			||||||
 | 
					0:26      MemoryBarrierBuffer (global void)
 | 
				
			||||||
 | 
					0:27      MemoryBarrierImage (global void)
 | 
				
			||||||
 | 
					0:28      MemoryBarrierShared (global void)
 | 
				
			||||||
 | 
					0:29      GroupMemoryBarrier (global void)
 | 
				
			||||||
0:?   Linker Objects
 | 
					0:?   Linker Objects
 | 
				
			||||||
0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
 | 
					0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
 | 
				
			||||||
0:?       2 (const uint)
 | 
					0:?       2 (const uint)
 | 
				
			||||||
@ -99,6 +106,13 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:17        'sfoo' (shared 3-component vector of float)
 | 
					0:17        'sfoo' (shared 3-component vector of float)
 | 
				
			||||||
0:17        Constant:
 | 
					0:17        Constant:
 | 
				
			||||||
0:17          1057.000000
 | 
					0:17          1057.000000
 | 
				
			||||||
 | 
					0:23      Barrier (global void)
 | 
				
			||||||
 | 
					0:24      MemoryBarrier (global void)
 | 
				
			||||||
 | 
					0:25      MemoryBarrierAtomicCounter (global void)
 | 
				
			||||||
 | 
					0:26      MemoryBarrierBuffer (global void)
 | 
				
			||||||
 | 
					0:27      MemoryBarrierImage (global void)
 | 
				
			||||||
 | 
					0:28      MemoryBarrierShared (global void)
 | 
				
			||||||
 | 
					0:29      GroupMemoryBarrier (global void)
 | 
				
			||||||
0:?   Linker Objects
 | 
					0:?   Linker Objects
 | 
				
			||||||
0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
 | 
					0:?     'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
 | 
				
			||||||
0:?       2 (const uint)
 | 
					0:?       2 (const uint)
 | 
				
			||||||
 | 
				
			|||||||
@ -1572,7 +1572,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
        stageBuiltins[EShLangTessControl].append(
 | 
					        stageBuiltins[EShLangTessControl].append(
 | 
				
			||||||
            "void barrier();"
 | 
					            "void barrier();"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
    if ((profile != EEsProfile && version >= 430) || esBarrier)
 | 
					    if ((profile != EEsProfile && version >= 420) || esBarrier)
 | 
				
			||||||
        stageBuiltins[EShLangCompute].append(
 | 
					        stageBuiltins[EShLangCompute].append(
 | 
				
			||||||
            "void barrier();"
 | 
					            "void barrier();"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
@ -1580,7 +1580,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
        commonBuiltins.append(
 | 
					        commonBuiltins.append(
 | 
				
			||||||
            "void memoryBarrier();"
 | 
					            "void memoryBarrier();"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
    if ((profile != EEsProfile && version >= 430) || esBarrier) {
 | 
					    if ((profile != EEsProfile && version >= 420) || esBarrier) {
 | 
				
			||||||
        commonBuiltins.append(
 | 
					        commonBuiltins.append(
 | 
				
			||||||
            "void memoryBarrierAtomicCounter();"
 | 
					            "void memoryBarrierAtomicCounter();"
 | 
				
			||||||
            "void memoryBarrierBuffer();"
 | 
					            "void memoryBarrierBuffer();"
 | 
				
			||||||
@ -3912,6 +3912,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul
 | 
				
			|||||||
            symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms",        1, &E_GL_ARB_compute_shader);
 | 
					            symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms",        1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
            symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters",       1, &E_GL_ARB_compute_shader);
 | 
					            symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters",       1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
            symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader);
 | 
					            symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("barrier",                    1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("memoryBarrierAtomicCounter", 1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("memoryBarrierBuffer",        1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("memoryBarrierImage",         1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("memoryBarrierShared",        1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
 | 
					            symbolTable.setFunctionExtensions("groupMemoryBarrier",         1, &E_GL_ARB_compute_shader);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user