Add support for barriers in the compiler
The patch adds support for barriers in vertex, fragment and compute
shaders.
BUG:angleproject:1442
TEST:angle_unittests
Change-Id: Ic85c3337911851a93a3f56bd935774181600eddd
Reviewed-on: https://chromium-review.googlesource.com/380641
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/OutputGLSLBase.cpp b/src/compiler/translator/OutputGLSLBase.cpp
index 839ceb6..9256faa 100644
--- a/src/compiler/translator/OutputGLSLBase.cpp
+++ b/src/compiler/translator/OutputGLSLBase.cpp
@@ -1113,7 +1113,27 @@
case EOpMul:
writeBuiltInFunctionTriplet(visit, "matrixCompMult(", useEmulatedFunction);
break;
-
+ case EOpBarrier:
+ writeBuiltInFunctionTriplet(visit, "barrier(", useEmulatedFunction);
+ break;
+ case EOpMemoryBarrier:
+ writeBuiltInFunctionTriplet(visit, "memoryBarrier(", useEmulatedFunction);
+ break;
+ case EOpMemoryBarrierAtomicCounter:
+ writeBuiltInFunctionTriplet(visit, "memoryBarrierAtomicCounter(", useEmulatedFunction);
+ break;
+ case EOpMemoryBarrierBuffer:
+ writeBuiltInFunctionTriplet(visit, "memoryBarrierBuffer(", useEmulatedFunction);
+ break;
+ case EOpMemoryBarrierImage:
+ writeBuiltInFunctionTriplet(visit, "memoryBarrierImage(", useEmulatedFunction);
+ break;
+ case EOpMemoryBarrierShared:
+ writeBuiltInFunctionTriplet(visit, "memoryBarrierShared(", useEmulatedFunction);
+ break;
+ case EOpGroupMemoryBarrier:
+ writeBuiltInFunctionTriplet(visit, "groupMemoryBarrier(", useEmulatedFunction);
+ break;
default:
UNREACHABLE();
}