Commit fa7ca18f by Jamie Madill Committed by Commit Bot

Vulkan: Enable dEQP point limit raster test.

This requires enabling a workaround in the ANGLE shader translator to clamp the point size. Bug: angleproject:2599 Change-Id: I3171bdca5dd2e5af965e94ee2a955f46f8d706da Reviewed-on: https://chromium-review.googlesource.com/c/1412235Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 915d4068
...@@ -1050,6 +1050,13 @@ void RendererVk::initFeatures(const std::vector<VkExtensionProperties> &deviceEx ...@@ -1050,6 +1050,13 @@ void RendererVk::initFeatures(const std::vector<VkExtensionProperties> &deviceEx
mFeatures.clampPointSize = true; mFeatures.clampPointSize = true;
} }
// We also need to clamp point size on several Android drivers.
// TODO(jmadill): Remove suppression once fixed. http://anglebug.com/2599
if (IsAndroid())
{
mFeatures.clampPointSize = true;
}
#if defined(ANGLE_PLATFORM_ANDROID) #if defined(ANGLE_PLATFORM_ANDROID)
// Work around ineffective compute-graphics barriers on Nexus 5X. // Work around ineffective compute-graphics barriers on Nexus 5X.
// TODO(syoussefi): Figure out which other vendors and driver versions are affected. // TODO(syoussefi): Figure out which other vendors and driver versions are affected.
......
...@@ -199,7 +199,6 @@ ...@@ -199,7 +199,6 @@
// Fails on Nexus 5x only. TODO(jmadill): Remove suppression when possible. http://anglebug.com/2791 // Fails on Nexus 5x only. TODO(jmadill): Remove suppression when possible. http://anglebug.com/2791
2791 VULKAN ANDROID : dEQP-GLES2.functional.clipping.* = SKIP 2791 VULKAN ANDROID : dEQP-GLES2.functional.clipping.* = SKIP
2599 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.limits.points = FAIL
// Failing on the Pixel 2. // Failing on the Pixel 2.
2727 VULKAN ANDROID : dEQP-GLES2.functional.shaders.builtin_variable.pointcoord = FAIL 2727 VULKAN ANDROID : dEQP-GLES2.functional.shaders.builtin_variable.pointcoord = FAIL
......
...@@ -4696,6 +4696,9 @@ TEST_P(GLSLTest, PointCoordConsistency) ...@@ -4696,6 +4696,9 @@ TEST_P(GLSLTest, PointCoordConsistency)
// AMD's OpenGL drivers may have the same issue. http://anglebug.com/1643 // AMD's OpenGL drivers may have the same issue. http://anglebug.com/1643
ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsOpenGL()); ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsOpenGL());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
constexpr char kPointCoordVS[] = R"(attribute vec2 position; constexpr char kPointCoordVS[] = R"(attribute vec2 position;
uniform vec2 viewportSize; uniform vec2 viewportSize;
void main() void main()
......
...@@ -197,21 +197,33 @@ typedef IndexedPointsTest<GLubyte, GL_UNSIGNED_BYTE> IndexedPointsTestUByte; ...@@ -197,21 +197,33 @@ typedef IndexedPointsTest<GLubyte, GL_UNSIGNED_BYTE> IndexedPointsTestUByte;
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset0) TEST_P(IndexedPointsTestUByte, UnsignedByteOffset0)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0); runTest(0);
} }
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset1) TEST_P(IndexedPointsTestUByte, UnsignedByteOffset1)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1); runTest(1);
} }
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset2) TEST_P(IndexedPointsTestUByte, UnsignedByteOffset2)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2); runTest(2);
} }
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset3) TEST_P(IndexedPointsTestUByte, UnsignedByteOffset3)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3); runTest(3);
} }
...@@ -220,6 +232,9 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset0) ...@@ -220,6 +232,9 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset0)
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0, true); runTest(0, true);
} }
...@@ -227,6 +242,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset1) ...@@ -227,6 +242,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset1)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1, true); runTest(1, true);
} }
...@@ -234,6 +253,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset2) ...@@ -234,6 +253,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset2)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2, true); runTest(2, true);
} }
...@@ -241,6 +264,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset3) ...@@ -241,6 +264,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset3)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3, true); runTest(3, true);
} }
...@@ -248,21 +275,33 @@ typedef IndexedPointsTest<GLushort, GL_UNSIGNED_SHORT> IndexedPointsTestUShort; ...@@ -248,21 +275,33 @@ typedef IndexedPointsTest<GLushort, GL_UNSIGNED_SHORT> IndexedPointsTestUShort;
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset0) TEST_P(IndexedPointsTestUShort, UnsignedShortOffset0)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0); runTest(0);
} }
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset1) TEST_P(IndexedPointsTestUShort, UnsignedShortOffset1)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1); runTest(1);
} }
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset2) TEST_P(IndexedPointsTestUShort, UnsignedShortOffset2)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2); runTest(2);
} }
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset3) TEST_P(IndexedPointsTestUShort, UnsignedShortOffset3)
{ {
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3); runTest(3);
} }
...@@ -270,6 +309,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset0) ...@@ -270,6 +309,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset0)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0, true); runTest(0, true);
} }
...@@ -277,6 +320,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset1) ...@@ -277,6 +320,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset1)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1, true); runTest(1, true);
} }
...@@ -284,6 +331,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset2) ...@@ -284,6 +331,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset2)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2, true); runTest(2, true);
} }
...@@ -291,6 +342,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset3) ...@@ -291,6 +342,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset3)
{ {
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848 // TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD()); ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3, true); runTest(3, true);
} }
...@@ -302,6 +357,9 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffsetChangingIndice ...@@ -302,6 +357,9 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffsetChangingIndice
// TODO(fjhenigman): Figure out why this fails on Ozone Intel. // TODO(fjhenigman): Figure out why this fails on Ozone Intel.
ANGLE_SKIP_TEST_IF(IsOzone() && IsIntel() && IsOpenGLES()); ANGLE_SKIP_TEST_IF(IsOzone() && IsIntel() && IsOpenGLES());
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3, true); runTest(3, true);
runTest(1, true); runTest(1, true);
runTest(0, true); runTest(0, true);
......
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