Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit fa7ca18

Browse files
null77Commit Bot
authored andcommitted
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/1412235 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
1 parent 915d406 commit fa7ca18

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
lines changed

src/libANGLE/renderer/vulkan/RendererVk.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,13 @@ void RendererVk::initFeatures(const std::vector<VkExtensionProperties> &deviceEx
10501050
mFeatures.clampPointSize = true;
10511051
}
10521052

1053+
// We also need to clamp point size on several Android drivers.
1054+
// TODO(jmadill): Remove suppression once fixed. http://anglebug.com/2599
1055+
if (IsAndroid())
1056+
{
1057+
mFeatures.clampPointSize = true;
1058+
}
1059+
10531060
#if defined(ANGLE_PLATFORM_ANDROID)
10541061
// Work around ineffective compute-graphics barriers on Nexus 5X.
10551062
// TODO(syoussefi): Figure out which other vendors and driver versions are affected.

src/tests/deqp_support/deqp_gles2_test_expectations.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@
199199

200200
// Fails on Nexus 5x only. TODO(jmadill): Remove suppression when possible. http://anglebug.com/2791
201201
2791 VULKAN ANDROID : dEQP-GLES2.functional.clipping.* = SKIP
202-
2599 VULKAN ANDROID : dEQP-GLES2.functional.rasterization.limits.points = FAIL
203202

204203
// Failing on the Pixel 2.
205204
2727 VULKAN ANDROID : dEQP-GLES2.functional.shaders.builtin_variable.pointcoord = FAIL

src/tests/gl_tests/GLSLTest.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4696,6 +4696,9 @@ TEST_P(GLSLTest, PointCoordConsistency)
46964696
// AMD's OpenGL drivers may have the same issue. http://anglebug.com/1643
46974697
ANGLE_SKIP_TEST_IF(IsAMD() && IsWindows() && IsOpenGL());
46984698

4699+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
4700+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
4701+
46994702
constexpr char kPointCoordVS[] = R"(attribute vec2 position;
47004703
uniform vec2 viewportSize;
47014704
void main()

src/tests/gl_tests/IndexedPointsTest.cpp

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,21 +197,33 @@ typedef IndexedPointsTest<GLubyte, GL_UNSIGNED_BYTE> IndexedPointsTestUByte;
197197

198198
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset0)
199199
{
200+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
201+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
202+
200203
runTest(0);
201204
}
202205

203206
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset1)
204207
{
208+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
209+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
210+
205211
runTest(1);
206212
}
207213

208214
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset2)
209215
{
216+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
217+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
218+
210219
runTest(2);
211220
}
212221

213222
TEST_P(IndexedPointsTestUByte, UnsignedByteOffset3)
214223
{
224+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
225+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
226+
215227
runTest(3);
216228
}
217229

@@ -220,77 +232,120 @@ TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset0)
220232
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
221233
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
222234

235+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
236+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
237+
223238
runTest(0, true);
224239
}
225240

226241
TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset1)
227242
{
228243
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
229244
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
245+
246+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
247+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
248+
230249
runTest(1, true);
231250
}
232251

233252
TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset2)
234253
{
235254
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
236255
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
256+
257+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
258+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
259+
237260
runTest(2, true);
238261
}
239262

240263
TEST_P(IndexedPointsTestUByte, VertexWithColorUnsignedByteOffset3)
241264
{
242265
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
243266
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
267+
268+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
269+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
270+
244271
runTest(3, true);
245272
}
246273

247274
typedef IndexedPointsTest<GLushort, GL_UNSIGNED_SHORT> IndexedPointsTestUShort;
248275

249276
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset0)
250277
{
278+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
279+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
280+
251281
runTest(0);
252282
}
253283

254284
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset1)
255285
{
286+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
287+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
288+
256289
runTest(1);
257290
}
258291

259292
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset2)
260293
{
294+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
295+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
296+
261297
runTest(2);
262298
}
263299

264300
TEST_P(IndexedPointsTestUShort, UnsignedShortOffset3)
265301
{
302+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
303+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
304+
266305
runTest(3);
267306
}
268307

269308
TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset0)
270309
{
271310
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
272311
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
312+
313+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
314+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
315+
273316
runTest(0, true);
274317
}
275318

276319
TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset1)
277320
{
278321
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
279322
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
323+
324+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
325+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
326+
280327
runTest(1, true);
281328
}
282329

283330
TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset2)
284331
{
285332
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
286333
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
334+
335+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
336+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
337+
287338
runTest(2, true);
288339
}
289340

290341
TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffset3)
291342
{
292343
// TODO(fjhenigman): Fix with buffer offset http://anglebug.com/2848
293344
ANGLE_SKIP_TEST_IF(IsVulkan() && IsAMD());
345+
346+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
347+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
348+
294349
runTest(3, true);
295350
}
296351

@@ -302,6 +357,9 @@ TEST_P(IndexedPointsTestUShort, VertexWithColorUnsignedShortOffsetChangingIndice
302357
// TODO(fjhenigman): Figure out why this fails on Ozone Intel.
303358
ANGLE_SKIP_TEST_IF(IsOzone() && IsIntel() && IsOpenGLES());
304359

360+
// http://anglebug.com/2599: Fails on the 5x due to driver bug.
361+
ANGLE_SKIP_TEST_IF(IsAndroid() && IsVulkan());
362+
305363
runTest(3, true);
306364
runTest(1, true);
307365
runTest(0, true);

0 commit comments

Comments
 (0)