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
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)
// Work around ineffective compute-graphics barriers on Nexus 5X.
// TODO(syoussefi): Figure out which other vendors and driver versions are affected.
......
......@@ -199,7 +199,6 @@
// Fails on Nexus 5x only. TODO(jmadill): Remove suppression when possible. http://anglebug.com/2791
2791 VULKAN ANDROID : dEQP-GLES2.functional.clipping.* = SKIP
2599 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.limits.points = FAIL
// Failing on the Pixel 2.
2727 VULKAN ANDROID : dEQP-GLES2.functional.shaders.builtin_variable.pointcoord = FAIL
......
......@@ -4696,6 +4696,9 @@ TEST_P(GLSLTest, PointCoordConsistency)
// AMD's OpenGL drivers may have the same issue. http://anglebug.com/1643
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;
uniform vec2 viewportSize;
void main()
......
......@@ -197,21 +197,33 @@ typedef IndexedPointsTest<GLubyte, GL_UNSIGNED_BYTE> IndexedPointsTestUByte;
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset0)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0);
}
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset1)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1);
}
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset2)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2);
}
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset3)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3);
}
......@@ -220,6 +232,9 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset0)
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -227,6 +242,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset1)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -234,6 +253,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset2)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -241,6 +264,10 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset3)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -248,21 +275,33 @@ typedef IndexedPointsTest<GLushort, GL_UNSIGNED_SHORT> IndexedPointsTestUShort;
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset0)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(0);
}
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset1)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(1);
}
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset2)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(2);
}
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset3)
{
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
runTest(3);
}
......@@ -270,6 +309,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset0)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -277,6 +320,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset1)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -284,6 +331,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset2)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -291,6 +342,10 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset3)
{
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
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);
}
......@@ -302,6 +357,9 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffsetChangingIndice
// TODO(fjhenigman): Figure out why this fails on Ozone Intel.
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(1, 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