Commit d53944cc by Shahbaz Youssefi Committed by Commit Bot

Disable AtomicCounterBuffer tests on Vulkan

If a shard executes a Vulkan test first, it sets the window's pixel format to something that the gl backend doesn't agree with. This causes subsequent OpenGL tests to all fail, and eventually leads to a crash. This disables AtomicCounterBuffer tests on Vulkan so that every shard starts with some OpenGL test first (note that AtomicCounterBuffer is alphabetically the first test suite). Bug: angleproject:3738 Change-Id: Ifc32e7884e53ec2a10eb939cf23e5db7fa66f8b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745359Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent efa898ac
...@@ -32,9 +32,6 @@ class AtomicCounterBufferTest : public ANGLETest ...@@ -32,9 +32,6 @@ class AtomicCounterBufferTest : public ANGLETest
// Test GL_ATOMIC_COUNTER_BUFFER is not supported with version lower than ES31. // Test GL_ATOMIC_COUNTER_BUFFER is not supported with version lower than ES31.
TEST_P(AtomicCounterBufferTest, AtomicCounterBufferBindings) TEST_P(AtomicCounterBufferTest, AtomicCounterBufferBindings)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
ASSERT_EQ(3, getClientMajorVersion()); ASSERT_EQ(3, getClientMajorVersion());
GLBuffer atomicCounterBuffer; GLBuffer atomicCounterBuffer;
glBindBufferBase(GL_ATOMIC_COUNTER_BUFFER, 0, atomicCounterBuffer.get()); glBindBufferBase(GL_ATOMIC_COUNTER_BUFFER, 0, atomicCounterBuffer.get());
...@@ -54,9 +51,6 @@ class AtomicCounterBufferTest31 : public AtomicCounterBufferTest ...@@ -54,9 +51,6 @@ class AtomicCounterBufferTest31 : public AtomicCounterBufferTest
// Linking should fail if counters in vertex shader exceed gl_MaxVertexAtomicCounters. // Linking should fail if counters in vertex shader exceed gl_MaxVertexAtomicCounters.
TEST_P(AtomicCounterBufferTest31, ExceedMaxVertexAtomicCounters) TEST_P(AtomicCounterBufferTest31, ExceedMaxVertexAtomicCounters)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
constexpr char kVS[] = constexpr char kVS[] =
"#version 310 es\n" "#version 310 es\n"
"layout(binding = 0) uniform atomic_uint foo[gl_MaxVertexAtomicCounters + 1];\n" "layout(binding = 0) uniform atomic_uint foo[gl_MaxVertexAtomicCounters + 1];\n"
...@@ -78,9 +72,6 @@ TEST_P(AtomicCounterBufferTest31, ExceedMaxVertexAtomicCounters) ...@@ -78,9 +72,6 @@ TEST_P(AtomicCounterBufferTest31, ExceedMaxVertexAtomicCounters)
// GLSL ES Spec 3.10.4, section 9.2.1. // GLSL ES Spec 3.10.4, section 9.2.1.
TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecified) TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecified)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
constexpr char kVS[] = constexpr char kVS[] =
"#version 310 es\n" "#version 310 es\n"
"layout(binding = 0, offset = 4) uniform atomic_uint foo;\n" "layout(binding = 0, offset = 4) uniform atomic_uint foo;\n"
...@@ -103,9 +94,6 @@ TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecified) ...@@ -103,9 +94,6 @@ TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecified)
// value. // value.
TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecifiedWithSameValue) TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecifiedWithSameValue)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
constexpr char kVS[] = constexpr char kVS[] =
"#version 310 es\n" "#version 310 es\n"
"layout(binding = 0, offset = 4) uniform atomic_uint foo;\n" "layout(binding = 0, offset = 4) uniform atomic_uint foo;\n"
...@@ -127,9 +115,6 @@ TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecifiedWithSameValue) ...@@ -127,9 +115,6 @@ TEST_P(AtomicCounterBufferTest31, OffsetNotAllSpecifiedWithSameValue)
// Tests atomic counter reads using compute shaders. Used as a sanity check for the translator. // Tests atomic counter reads using compute shaders. Used as a sanity check for the translator.
TEST_P(AtomicCounterBufferTest31, AtomicCounterReadCompute) TEST_P(AtomicCounterBufferTest31, AtomicCounterReadCompute)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
// Skipping due to a bug on the Qualcomm Vulkan Android driver. // Skipping due to a bug on the Qualcomm Vulkan Android driver.
// http://anglebug.com/3726 // http://anglebug.com/3726
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan()); ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
...@@ -163,9 +148,6 @@ void main() ...@@ -163,9 +148,6 @@ void main()
// Test atomic counter read. // Test atomic counter read.
TEST_P(AtomicCounterBufferTest31, AtomicCounterRead) TEST_P(AtomicCounterBufferTest31, AtomicCounterRead)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
// Skipping due to a bug on the Qualcomm Vulkan Android driver. // Skipping due to a bug on the Qualcomm Vulkan Android driver.
// http://anglebug.com/3726 // http://anglebug.com/3726
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan()); ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
...@@ -206,9 +188,6 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterRead) ...@@ -206,9 +188,6 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterRead)
// Test atomic counter increment and decrement. // Test atomic counter increment and decrement.
TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement) TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
// Skipping due to a bug on the Qualcomm Vulkan Android driver. // Skipping due to a bug on the Qualcomm Vulkan Android driver.
// http://anglebug.com/3726 // http://anglebug.com/3726
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan()); ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
...@@ -254,9 +233,6 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement) ...@@ -254,9 +233,6 @@ TEST_P(AtomicCounterBufferTest31, AtomicCounterIncrementAndDecrement)
// Tests multiple atomic counter buffers. // Tests multiple atomic counter buffers.
TEST_P(AtomicCounterBufferTest31, AtomicCounterMultipleBuffers) TEST_P(AtomicCounterBufferTest31, AtomicCounterMultipleBuffers)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
// Skipping due to a bug on the Qualcomm Vulkan Android driver. // Skipping due to a bug on the Qualcomm Vulkan Android driver.
// http://anglebug.com/3726 // http://anglebug.com/3726
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan()); ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
...@@ -313,9 +289,6 @@ void main() ...@@ -313,9 +289,6 @@ void main()
// Test atomic counter array of array. // Test atomic counter array of array.
TEST_P(AtomicCounterBufferTest31, AtomicCounterArrayOfArray) TEST_P(AtomicCounterBufferTest31, AtomicCounterArrayOfArray)
{ {
// Crashes in older drivers. http://anglebug.com/3738
ANGLE_SKIP_TEST_IF(IsOpenGL() && IsWindows() && IsAMD());
// Fails on D3D. Some counters are double-incremented while some are untouched, hinting at a // Fails on D3D. Some counters are double-incremented while some are untouched, hinting at a
// bug in index translation. http://anglebug.com/3783 // bug in index translation. http://anglebug.com/3783
ANGLE_SKIP_TEST_IF(IsD3D11()); ANGLE_SKIP_TEST_IF(IsD3D11());
...@@ -460,17 +433,17 @@ void main() ...@@ -460,17 +433,17 @@ void main()
} }
} }
// TODO(syoussefi): re-enable tests on Vulkan once http://anglebug.com/3738 is resolved. The issue
// is with WGL where if a Vulkan test is run first in the shard, it causes crashes when an OpenGL
// test is run afterwards. AtomicCounter* tests are alphabetically first, and having them not run
// on Vulkan makes every shard our bots currently make do have at least some OpenGL test run before
// any Vulkan test.
ANGLE_INSTANTIATE_TEST(AtomicCounterBufferTest, ANGLE_INSTANTIATE_TEST(AtomicCounterBufferTest,
ES3_OPENGL(), ES3_OPENGL(),
ES3_OPENGLES(), ES3_OPENGLES(),
ES31_OPENGL(), ES31_OPENGL(),
ES31_OPENGLES(), ES31_OPENGLES(),
ES31_D3D11(), ES31_D3D11());
ES31_VULKAN()); ANGLE_INSTANTIATE_TEST(AtomicCounterBufferTest31, ES31_OPENGL(), ES31_OPENGLES(), ES31_D3D11());
ANGLE_INSTANTIATE_TEST(AtomicCounterBufferTest31,
ES31_OPENGL(),
ES31_OPENGLES(),
ES31_D3D11(),
ES31_VULKAN());
} // namespace } // namespace
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