Hash :
62628799
Author :
Date :
2021-07-21T22:55:22
Vulkan: SPIR-V Gen: Support dEQP A temporary condition for direct SPIR-V generation is added to test expectations while this work is in progress, so test suites can be partially enabled. 32 tests are currently failing. Bug: angleproject:4889 Change-Id: Icf0f6ef80d30fdb7564d8ecf928e67ca58ace86f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042556 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
ANGLE integrates dEQP (i.e. the OpenGL CTS) for conformance testing. It uses gtest to run tests, and provides the means for dEQP to use ANGLE.
Occasionally, ANGLE overrides certain dEQP files by copying them to this directory, adding the
_override suffix, and modifying them. deqp.gni is used to select these override files to be
built with dEQP instead of the original files.
This is primarily done to fix tests until they are fixed upstream.
For every set of dEQP tests, for example GLES3 tests on the Vulkan backend, an expectations file exists to let the test harness know which tests it should skip (as they are known to crash), or expect to see failed. Warnings are generated if a test unexpectedly passes, but an unexpected failure is an error. This let’s ANGLE ensure there are no regressions.
While developing a feature, or testing on a new platform, the expectations files can be modified to reflect the reality of the situation. The expected format for every line in these files is:
{BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
MODIFIERS can be a combination of the below list, combined with a logical AND:
WIN XP VISTA WIN7 WIN8 WIN10
MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
LINUX CHROMEOS ANDROID
NVIDIA AMD INTEL
DEBUG RELEASE
D3D9 D3D11 OPENGL GLES VULKAN
NEXUS5X PIXEL2ORXL
QUADROP400
SWIFTSHADER
PREROTATION PREROTATION90 PREROTATION180 PREROTATION270
SPIRVGEN
TEST_NAME can be a specific test name, or set of test names using '*' as wildcard anywhere in
the name. Examples:
// Disabled everywhere as is too slow:
3445 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 = SKIP
// Crashes on both D3D11 and OPENGL:
1442 OPENGL : dEQP-GLES31.functional.separate_shader.* = SKIP
1442 D3D11 : dEQP-GLES31.functional.separate_shader.* = SKIP
// Unsupported feature:
3726 VULKAN ANDROID : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*atomic_counter* = FAIL
// Failing test in Nvidia's OpenGL implementation on windows:
1665 WIN NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.negative.command_offset_not_in_buffer_unsigned32_wrap = FAIL
// Failing when emulated pre-rotation is enabled, no matter which angle:
1234 PREROTATION : dEQP-GLES3.*blit* = FAIL
// Failing when emulated pre-rotation is enabled with 270 degree angle:
1234 PREROTATION270 : dEQP-GLES3.*blit* = FAIL
// Crashing when generating SPIR-V directly from the translator
1234 SPIRVGEN : dEQP.GLES2/functional_shaders_texture_functions_vertex_texture2dprojlod_vec4 = SKIP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
# dEQP Support
ANGLE integrates dEQP (i.e. the OpenGL CTS) for conformance testing. It uses gtest to run tests,
and provides the means for dEQP to use ANGLE.
## Overriding dEQP files
Occasionally, ANGLE overrides certain dEQP files by copying them to this directory, adding the
`_override` suffix, and modifying them. `deqp.gni` is used to select these override files to be
built with dEQP instead of the original files.
This is primarily done to fix tests until they are fixed upstream.
## Expectation files format
For every set of dEQP tests, for example GLES3 tests on the Vulkan backend, an expectations file
exists to let the test harness know which tests it should skip (as they are known to crash), or
expect to see failed. Warnings are generated if a test unexpectedly passes, but an unexpected
failure is an error. This let's ANGLE ensure there are no regressions.
While developing a feature, or testing on a new platform, the expectations files can be modified to
reflect the reality of the situation. The expected format for every line in these files is:
{BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
`MODIFIERS` can be a combination of the below list, combined with a logical AND:
WIN XP VISTA WIN7 WIN8 WIN10
MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
LINUX CHROMEOS ANDROID
NVIDIA AMD INTEL
DEBUG RELEASE
D3D9 D3D11 OPENGL GLES VULKAN
NEXUS5X PIXEL2ORXL
QUADROP400
SWIFTSHADER
PREROTATION PREROTATION90 PREROTATION180 PREROTATION270
SPIRVGEN
`TEST_NAME` can be a specific test name, or set of test names using `'*'` as wildcard anywhere in
the name. Examples:
// Disabled everywhere as is too slow:
3445 : dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 = SKIP
// Crashes on both D3D11 and OPENGL:
1442 OPENGL : dEQP-GLES31.functional.separate_shader.* = SKIP
1442 D3D11 : dEQP-GLES31.functional.separate_shader.* = SKIP
// Unsupported feature:
3726 VULKAN ANDROID : dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*atomic_counter* = FAIL
// Failing test in Nvidia's OpenGL implementation on windows:
1665 WIN NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.negative.command_offset_not_in_buffer_unsigned32_wrap = FAIL
// Failing when emulated pre-rotation is enabled, no matter which angle:
1234 PREROTATION : dEQP-GLES3.*blit* = FAIL
// Failing when emulated pre-rotation is enabled with 270 degree angle:
1234 PREROTATION270 : dEQP-GLES3.*blit* = FAIL
// Crashing when generating SPIR-V directly from the translator
1234 SPIRVGEN : dEQP.GLES2/functional_shaders_texture_functions_vertex_texture2dprojlod_vec4 = SKIP