Commit eb06814d by Xinghua Cao Committed by Commit Bot

Correct barriers of glMemoryBarrier in test cases

Some test cases use wrong barriers when calling glMemoryBarrier. Bug: angleproject:2280 Change-Id: I0750c1eba84ed8af32091f7ecd5bdbd2b32fd397 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687591Reviewed-by: 's avatarJiajia Qin <jiajia.qin@intel.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
parent 1ebe6014
...@@ -225,7 +225,7 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement) ...@@ -225,7 +225,7 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement)
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
glBindBuffer(GL_ATOMIC_COUNTER_BUFFER, atomicCounterBuffer); glBindBuffer(GL_ATOMIC_COUNTER_BUFFER, atomicCounterBuffer);
void *mappedBuffer = void *mappedBuffer =
...@@ -281,7 +281,7 @@ void main() ...@@ -281,7 +281,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
for (unsigned int ii = 0; ii < kBufferCount; ++ii) for (unsigned int ii = 0; ii < kBufferCount; ++ii)
{ {
......
...@@ -54,7 +54,7 @@ class ComputeShaderTest : public ANGLETest ...@@ -54,7 +54,7 @@ class ComputeShaderTest : public ANGLETest
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
T outputValues[kWidth * kHeight] = {}; T outputValues[kWidth * kHeight] = {};
glUseProgram(0); glUseProgram(0);
...@@ -425,7 +425,7 @@ void main() ...@@ -425,7 +425,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
void *mappedBuffer = void *mappedBuffer =
glMapBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, sizeof(GLuint) * 3, GL_MAP_READ_BIT); glMapBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, sizeof(GLuint) * 3, GL_MAP_READ_BIT);
memcpy(bufferData, mappedBuffer, sizeof(bufferData)); memcpy(bufferData, mappedBuffer, sizeof(bufferData));
...@@ -449,9 +449,10 @@ void main() ...@@ -449,9 +449,10 @@ void main()
glUseProgram(program1); glUseProgram(program1);
glDispatchCompute(8, 4, 2); glDispatchCompute(8, 4, 2);
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT);
glUseProgram(program0); glUseProgram(program0);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
mappedBuffer = mappedBuffer =
glMapBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, sizeof(GLuint) * 3, GL_MAP_READ_BIT); glMapBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, sizeof(GLuint) * 3, GL_MAP_READ_BIT);
memcpy(bufferData, mappedBuffer, sizeof(bufferData)); memcpy(bufferData, mappedBuffer, sizeof(bufferData));
...@@ -624,7 +625,7 @@ void main() ...@@ -624,7 +625,7 @@ void main()
glDispatchComputeIndirect(0); glDispatchComputeIndirect(0);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
GLuint outputValues[kWidth][kHeight]; GLuint outputValues[kWidth][kHeight];
GLuint expectedValue = 100u; GLuint expectedValue = 100u;
...@@ -689,7 +690,7 @@ void main() ...@@ -689,7 +690,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
GLuint outputValues[2][1]; GLuint outputValues[2][1];
GLuint expectedValue = 100; GLuint expectedValue = 100;
...@@ -752,7 +753,7 @@ void main() ...@@ -752,7 +753,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, mFramebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, mFramebuffer);
...@@ -1032,7 +1033,7 @@ void main() ...@@ -1032,7 +1033,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint expectedValue = 150; constexpr GLuint expectedValue = 150;
glUseProgram(0); glUseProgram(0);
...@@ -1094,7 +1095,7 @@ void main() ...@@ -1094,7 +1095,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint expectedValue = 200; constexpr GLuint expectedValue = 200;
glUseProgram(0); glUseProgram(0);
...@@ -1156,7 +1157,7 @@ void main() ...@@ -1156,7 +1157,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint expectedValue = 200; constexpr GLuint expectedValue = 200;
glUseProgram(0); glUseProgram(0);
...@@ -1226,7 +1227,7 @@ void main() ...@@ -1226,7 +1227,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint expectedValue = 200; constexpr GLuint expectedValue = 200;
glUseProgram(0); glUseProgram(0);
...@@ -1307,7 +1308,7 @@ void main() ...@@ -1307,7 +1308,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint expectedValue = 200; constexpr GLuint expectedValue = 200;
glUseProgram(0); glUseProgram(0);
...@@ -1376,7 +1377,7 @@ void main() ...@@ -1376,7 +1377,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
glFramebufferTextureLayer(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture[1], 0, 0); glFramebufferTextureLayer(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture[1], 0, 0);
...@@ -1446,7 +1447,7 @@ void main() ...@@ -1446,7 +1447,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
glFramebufferTextureLayer(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture[1], 0, 0); glFramebufferTextureLayer(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture[1], 0, 0);
...@@ -1475,6 +1476,10 @@ TEST_P(ComputeShaderTest, BindImageTextureWithOneLayerTextureCube) ...@@ -1475,6 +1476,10 @@ TEST_P(ComputeShaderTest, BindImageTextureWithOneLayerTextureCube)
// Missing image support in Vulkan. http://anglebug.com/3563 // Missing image support in Vulkan. http://anglebug.com/3563
ANGLE_SKIP_TEST_IF(IsVulkan()); ANGLE_SKIP_TEST_IF(IsVulkan());
// GL_FRAMEBUFFER_BARRIER_BIT is invalid on Nvidia Linux platform.
// http://anglebug.com/3736
ANGLE_SKIP_TEST_IF(IsNVIDIA() && IsOpenGL() && IsLinux());
GLTexture texture[2]; GLTexture texture[2];
GLFramebuffer framebuffer; GLFramebuffer framebuffer;
constexpr char kCS[] = R"(#version 310 es constexpr char kCS[] = R"(#version 310 es
...@@ -1524,7 +1529,7 @@ void main() ...@@ -1524,7 +1529,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
...@@ -1560,6 +1565,10 @@ TEST_P(ComputeShaderTest, BindImageTextureWithMixTextureTypes) ...@@ -1560,6 +1565,10 @@ TEST_P(ComputeShaderTest, BindImageTextureWithMixTextureTypes)
// Missing image support in Vulkan. http://anglebug.com/3563 // Missing image support in Vulkan. http://anglebug.com/3563
ANGLE_SKIP_TEST_IF(IsVulkan()); ANGLE_SKIP_TEST_IF(IsVulkan());
// GL_FRAMEBUFFER_BARRIER_BIT is invalid on Nvidia Linux platform.
// http://anglebug.com/3736
ANGLE_SKIP_TEST_IF(IsNVIDIA() && IsOpenGL() && IsLinux());
GLTexture texture[4]; GLTexture texture[4];
GLFramebuffer framebuffer; GLFramebuffer framebuffer;
const char csSource[] = const char csSource[] =
...@@ -1630,7 +1639,7 @@ TEST_P(ComputeShaderTest, BindImageTextureWithMixTextureTypes) ...@@ -1630,7 +1639,7 @@ TEST_P(ComputeShaderTest, BindImageTextureWithMixTextureTypes)
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
...@@ -1754,7 +1763,7 @@ void main() ...@@ -1754,7 +1763,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
constexpr GLuint kExpectedValue = 4; constexpr GLuint kExpectedValue = 4;
glUseProgram(0); glUseProgram(0);
...@@ -2282,7 +2291,7 @@ void main() ...@@ -2282,7 +2291,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight * 4]; GLuint outputValues[kWidth * kHeight * 4];
glUseProgram(0); glUseProgram(0);
glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
...@@ -2338,14 +2347,14 @@ void main() ...@@ -2338,14 +2347,14 @@ void main()
glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glBindImageTexture(0, texture[1], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI); glBindImageTexture(0, texture[1], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI);
glBindImageTexture(1, texture[2], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[2], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
GLuint outputValue; GLuint outputValue;
...@@ -2398,14 +2407,14 @@ void main() ...@@ -2398,14 +2407,14 @@ void main()
glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glBindImageTexture(0, texture[2], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI); glBindImageTexture(0, texture[2], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI);
glBindImageTexture(1, texture[0], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[0], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
GLuint outputValue; GLuint outputValue;
...@@ -2796,7 +2805,7 @@ void main() ...@@ -2796,7 +2805,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
glUniform1ui(glGetUniformLocation(program, "factor"), 3); glUniform1ui(glGetUniformLocation(program, "factor"), 3);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
...@@ -2804,7 +2813,7 @@ void main() ...@@ -2804,7 +2813,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth * kHeight]; GLuint outputValues[kWidth * kHeight];
GLuint expectedValue = 600; GLuint expectedValue = 600;
glUseProgram(0); glUseProgram(0);
...@@ -2946,7 +2955,7 @@ void main() ...@@ -2946,7 +2955,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues[kWidth2 * kHeight2 * 4]; GLuint outputValues[kWidth2 * kHeight2 * 4];
constexpr GLuint expectedValue[] = {4, 2}; constexpr GLuint expectedValue[] = {4, 2};
glUseProgram(0); glUseProgram(0);
...@@ -3013,7 +3022,7 @@ void main() ...@@ -3013,7 +3022,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues; GLuint outputValues;
constexpr GLuint expectedValue = 2; constexpr GLuint expectedValue = 2;
glUseProgram(0); glUseProgram(0);
...@@ -3075,7 +3084,7 @@ void main() ...@@ -3075,7 +3084,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
GLuint outputValues; GLuint outputValues;
constexpr GLuint expectedValue = 3; constexpr GLuint expectedValue = 3;
glUseProgram(0); glUseProgram(0);
...@@ -3252,9 +3261,9 @@ void main(void) { ...@@ -3252,9 +3261,9 @@ void main(void) {
glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F); glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
glUseProgram(program); glUseProgram(program);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::blue); EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::blue);
...@@ -3326,12 +3335,12 @@ void main(void) { ...@@ -3326,12 +3335,12 @@ void main(void) {
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glUniform1f(glGetUniformLocation(csProgram, "factor"), 1.0); glUniform1f(glGetUniformLocation(csProgram, "factor"), 1.0);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glUseProgram(program); glUseProgram(program);
...@@ -3401,7 +3410,7 @@ void main(void) { ...@@ -3401,7 +3410,7 @@ void main(void) {
glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F); glBindImageTexture(0, texture, 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA32F);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glUseProgram(program); glUseProgram(program);
...@@ -3415,7 +3424,7 @@ void main(void) { ...@@ -3415,7 +3424,7 @@ void main(void) {
glUseProgram(csProgram); glUseProgram(csProgram);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glUseProgram(program); glUseProgram(program);
......
...@@ -320,14 +320,14 @@ void main() ...@@ -320,14 +320,14 @@ void main()
glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[1], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glBindImageTexture(0, texture[1], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI); glBindImageTexture(0, texture[1], 0, GL_FALSE, 0, GL_READ_ONLY, GL_R32UI);
glBindImageTexture(1, texture[2], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI); glBindImageTexture(1, texture[2], 0, GL_FALSE, 0, GL_WRITE_ONLY, GL_R32UI);
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_FRAMEBUFFER_BARRIER_BIT);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
GLuint outputValue; GLuint outputValue;
......
...@@ -737,7 +737,7 @@ void main() { ...@@ -737,7 +737,7 @@ void main() {
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glMemoryBarrier(GL_ATOMIC_COUNTER_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
glBindBuffer(GL_ATOMIC_COUNTER_BUFFER, atomicCounterBuffer); glBindBuffer(GL_ATOMIC_COUNTER_BUFFER, atomicCounterBuffer);
void *mappedBuffer = void *mappedBuffer =
......
...@@ -349,7 +349,7 @@ void main() ...@@ -349,7 +349,7 @@ void main()
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT | GL_SHADER_STORAGE_BARRIER_BIT);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, shaderStorageBuffer); glBindBuffer(GL_SHADER_STORAGE_BUFFER, shaderStorageBuffer);
const void *bufferData = const void *bufferData =
...@@ -362,7 +362,7 @@ void main() ...@@ -362,7 +362,7 @@ void main()
// Running shader twice to make sure that the buffer gets updated correctly 123->124->125 // Running shader twice to make sure that the buffer gets updated correctly 123->124->125
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT | GL_PIXEL_BUFFER_BARRIER_BIT);
bufferData = glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, kBytesPerComponent, GL_MAP_READ_BIT); bufferData = glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, kBytesPerComponent, GL_MAP_READ_BIT);
...@@ -451,7 +451,7 @@ void main() ...@@ -451,7 +451,7 @@ void main()
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT | GL_SHADER_STORAGE_BARRIER_BIT);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, shaderStorageBuffer); glBindBuffer(GL_SHADER_STORAGE_BUFFER, shaderStorageBuffer);
...@@ -460,7 +460,7 @@ void main() ...@@ -460,7 +460,7 @@ void main()
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
glDispatchCompute(1, 1, 1); glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
// Read back shader storage buffer // Read back shader storage buffer
constexpr unsigned int kExpectedValues[2] = {3u, 4u}; constexpr unsigned int kExpectedValues[2] = {3u, 4u};
......
...@@ -150,7 +150,7 @@ void DispatchComputePerfBenchmark::drawBenchmark() ...@@ -150,7 +150,7 @@ void DispatchComputePerfBenchmark::drawBenchmark()
for (unsigned int it = 0; it < params.iterationsPerStep; it++) for (unsigned int it = 0; it < params.iterationsPerStep; it++)
{ {
glDispatchCompute(mDispatchX, mDispatchY, 1); glDispatchCompute(mDispatchX, mDispatchY, 1);
glMemoryBarrier(GL_TEXTURE_UPDATE_BARRIER_BIT); glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
} }
ASSERT_GL_NO_ERROR(); ASSERT_GL_NO_ERROR();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment