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:
John Kessenich 2016-05-30 19:38:39 -06:00
parent d94c003fb7
commit 548c3adecd
3 changed files with 31 additions and 2 deletions

View File

@ -19,4 +19,12 @@ void main()
gl_MaxComputeImageUniforms +
gl_MaxComputeAtomicCounters +
gl_MaxComputeAtomicCounterBuffers;
barrier();
memoryBarrier();
memoryBarrierAtomicCounter();
memoryBarrierBuffer();
memoryBarrierImage();
memoryBarrierShared();
groupMemoryBarrier();
}

View File

@ -46,6 +46,13 @@ ERROR: node is still EOpNull!
0:17 'sfoo' (shared 3-component vector of float)
0:17 Constant:
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:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)
@ -99,6 +106,13 @@ ERROR: node is still EOpNull!
0:17 'sfoo' (shared 3-component vector of float)
0:17 Constant:
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:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize)
0:? 2 (const uint)

View File

@ -1572,7 +1572,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
stageBuiltins[EShLangTessControl].append(
"void barrier();"
);
if ((profile != EEsProfile && version >= 430) || esBarrier)
if ((profile != EEsProfile && version >= 420) || esBarrier)
stageBuiltins[EShLangCompute].append(
"void barrier();"
);
@ -1580,7 +1580,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
commonBuiltins.append(
"void memoryBarrier();"
);
if ((profile != EEsProfile && version >= 430) || esBarrier) {
if ((profile != EEsProfile && version >= 420) || esBarrier) {
commonBuiltins.append(
"void memoryBarrierAtomicCounter();"
"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_MaxComputeAtomicCounters", 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;