SPIRV-Tools/test/val
sfricke-samsung 2c60d16a64
spirv-val: Add Vulkan VUID labels to BuiltIn (#3756)
The Vulkan 1.2.152 headers/spec now include Valid Usage IDs (VUID)
for every BuiltIn. This change adds labeling to help aid tracking
the coverage gap in Vulkan targeted validation. This is done with
a script in the Validation Layers that parses the source for VUID
strings, both that there is an implementation and a test for it.

There are 2 main changes:

1. A VUID string is added where applicable. It is wrapped in a function
that at runtimes checks if Vulkan is the target so that other targets
will not be effected as the output error only changes for Vulkan and
the overhead only occurs if there is an error at all.

2. For unit test, a new parameter value was added to allow make sure
that for each VUID there is a matching test. There are cases where the
same unit test checks multiple VUs via the parameter feature of gtest.
For this, I added a custom gMock Matcher to simply loop over a list
of VUID strings
2020-09-02 14:02:13 -04:00
..
CMakeLists.txt CMake: Enable building with BUILD_SHARED_LIBS=1 (#3490) 2020-07-27 13:29:07 -04:00
pch_test_val.cpp Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
pch_test_val.h Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026) 2018-11-06 09:26:23 -05:00
val_adjacency_test.cpp Update some language usage. (#3611) 2020-07-29 13:50:58 -04:00
val_arithmetics_test.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
val_atomics_test.cpp Add changes for SPV_EXT_shader_atomic_float (#3562) 2020-07-21 10:31:05 -04:00
val_barriers_test.cpp Validate ShaderCallKHR memory scope (#3332) 2020-05-05 13:08:28 -04:00
val_bitwise_test.cpp Add validation for execution modes 2018-10-02 10:22:23 -04:00
val_builtins_test.cpp spirv-val: Add Vulkan VUID labels to BuiltIn (#3756) 2020-09-02 14:02:13 -04:00
val_capability_test.cpp Update OpenCL capabilities validation (#3149) 2020-07-27 13:01:45 -04:00
val_cfg_test.cpp Update some language usage. (#3611) 2020-07-29 13:50:58 -04:00
val_code_generator.cpp Allow arrays of out per-primitive builtins for mesh shaders (#2617) 2019-05-23 15:08:59 -04:00
val_code_generator.h Move CodeGenerator to be accessible by other validation tests (#2343) 2019-01-29 10:27:11 -05:00
val_composites_test.cpp Disallow use of OpCompositeExtract/OpCompositeInsert with no indices (#2980) 2019-10-17 13:53:34 -04:00
val_constants_test.cpp Validate physical storage buffer restrictions (#2930) 2019-10-02 21:12:57 -04:00
val_conversion_test.cpp Relaxed bitcast with pointers (#2878) 2019-09-18 11:55:39 -04:00
val_data_test.cpp Only allow previously declared forward refs in structs (#2920) 2019-09-25 18:11:22 -04:00
val_decoration_test.cpp Validate location assignments (#3308) 2020-06-25 13:22:45 -04:00
val_derivatives_test.cpp Check that derivatives operate on 32-bit values (#2983) 2019-10-18 09:02:25 -04:00
val_entry_point.cpp Adding valilidation checks for OpEntryPoint duplicate names and execution mode (#2862) 2019-09-16 19:13:30 -04:00
val_explicit_reserved_test.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
val_ext_inst_test.cpp Allow DebugTypeTemplate for Type operand (#3702) 2020-08-16 23:42:59 -04:00
val_extension_spv_khr_terminate_invocation.cpp Support SPV_KHR_terminate_invocation (#3568) 2020-07-22 11:45:02 -04:00
val_extensions_test.cpp Support SPV_KHR_terminate_invocation (#3568) 2020-07-22 11:45:02 -04:00
val_fixtures.h spvtest::Validate::CompileFailure: Don't leak the diagnostic (#2564) 2019-05-07 22:01:06 -04:00
val_function_test.cpp Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
val_id_test.cpp Allow sampledimage types as operand of OpCopyObject (#3222) 2020-03-09 15:03:39 -04:00
val_image_test.cpp Add validation support for ImageGatherBiasLodAMD (#3363) 2020-05-25 09:41:34 -04:00
val_interfaces_test.cpp Only validation locations for appropriate execution models (#3656) 2020-08-11 18:51:49 -04:00
val_layout_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_limits_test.cpp Assembler: Can't set an ID in instruction without result ID (#2852) 2019-09-11 13:15:25 -04:00
val_literals_test.cpp Validate sign of int types. (#2549) 2019-05-06 13:05:31 -04:00
val_logicals_test.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
val_memory_test.cpp Add support for KHR_ray_{query,tracing} extensions (#3235) 2020-03-17 15:30:19 -04:00
val_misc_test.cpp Re-enable OpReadClockKHR validation (#3013) 2019-11-07 09:51:38 -05:00
val_modes_test.cpp Update access control lists. (#3433) 2020-06-15 13:20:40 -04:00
val_non_semantic_test.cpp Add support for SPV_KHR_non_semantic_info (#3110) 2019-12-18 18:10:29 -05:00
val_non_uniform_test.cpp Remove use of deprecated googletest macro (#2286) 2019-01-29 18:56:52 -05:00
val_opencl_test.cpp Refactor the InstructionPass (#2924) 2019-09-27 00:06:36 -04:00
val_primitives_test.cpp Update some language usage. (#3611) 2020-07-29 13:50:58 -04:00
val_small_type_uses_test.cpp Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
val_ssa_test.cpp Remove validate_datarules.cpp (#2911) 2019-09-24 17:55:12 -04:00
val_state_test.cpp Change handling of unknown extentions in validtor. (#1951) 2018-10-03 15:59:40 -04:00
val_storage_test.cpp Refactor the InstructionPass (#2924) 2019-09-27 00:06:36 -04:00
val_type_unique_test.cpp Remove validate_datarules.cpp (#2911) 2019-09-24 17:55:12 -04:00
val_validation_state_test.cpp Validate that OpUnreacahble is not statically reachable (#2473) 2019-03-29 10:49:37 -04:00
val_version_test.cpp Validate OpenCL memory and addressing model environment rules (#2589) 2019-05-17 08:25:20 -04:00
val_webgpu_test.cpp Permit Simple and GLSL450 memory model in WEBGPU_0 (#3463) 2020-07-17 12:23:11 -04:00