SPIRV-Tools/source
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
..
fuzz spirv-fuzz: Add support for BuiltIn decoration (#3736) 2020-09-02 14:14:58 +01:00
link CMake: Enable building with BUILD_SHARED_LIBS=1 (#3490) 2020-07-27 13:29:07 -04:00
opt Correctly replace debug lexical scope of instruction (#3718) 2020-08-31 10:05:38 -04:00
reduce Avoid using /MP4 for clang on windows. (#3662) 2020-08-10 10:59:24 -04:00
util Support constant-folding UConvert and SConvert (#2960) 2019-10-16 16:29:55 -04:00
val spirv-val: Add Vulkan VUID labels to BuiltIn (#3756) 2020-09-02 14:02:13 -04:00
assembly_grammar.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
assembly_grammar.h
binary.cpp Add support for KHR_ray_{query,tracing} extensions (#3235) 2020-03-17 15:30:19 -04:00
binary.h
cfa.h Fix -Wrange-loop-analysis warning (#3712) 2020-08-17 12:59:36 -04:00
CMakeLists.txt Avoid using /MP4 for clang on windows. (#3662) 2020-08-10 10:59:24 -04:00
diagnostic.cpp
diagnostic.h
disassemble.cpp Add support for KHR_ray_{query,tracing} extensions (#3235) 2020-03-17 15:30:19 -04:00
disassemble.h
enum_set.h Instrument: Debug Printf support (#3215) 2020-03-12 09:19:52 -04:00
enum_string_mapping.cpp
enum_string_mapping.h
ext_inst.cpp Validator support for non-semantic clspv reflection (#3618) 2020-07-30 12:08:53 -04:00
ext_inst.h Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
extensions.cpp
extensions.h
instruction.h
latest_version_glsl_std_450_header.h
latest_version_opencl_std_header.h
latest_version_spirv_header.h
libspirv.cpp Add SpirvTools::IsValid(). (#2326) 2019-01-24 09:45:09 -05:00
macro.h
name_mapper.cpp Update some language usage. (#3611) 2020-07-29 13:50:58 -04:00
name_mapper.h
opcode.cpp spirv-opt: Add spvOpcodeIsAccessChain (#3682) 2020-08-11 11:21:36 -04:00
opcode.h spirv-opt: Add spvOpcodeIsAccessChain (#3682) 2020-08-11 11:21:36 -04:00
operand.cpp Avoid operand type range checks (#3379) 2020-07-27 13:14:03 -04:00
operand.h Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
parsed_operand.cpp
parsed_operand.h
pch_source.cpp
pch_source.h
print.cpp build: cmake: Add support for Fuchsia. (#3062) 2019-11-26 16:22:59 -05:00
print.h
software_version.cpp
spirv_constant.h
spirv_definition.h
spirv_endian.cpp
spirv_endian.h
spirv_fuzzer_options.cpp spirv-fuzz: Add replay range option (#3535) 2020-07-15 12:13:23 +01:00
spirv_fuzzer_options.h spirv-fuzz: Add replay range option (#3535) 2020-07-15 12:13:23 +01:00
spirv_optimizer_options.cpp Add —preserve-bindings and —preserve-spec-constants (#2693) 2019-07-10 14:12:19 -04:00
spirv_optimizer_options.h Add —preserve-bindings and —preserve-spec-constants (#2693) 2019-07-10 14:12:19 -04:00
spirv_reducer_options.cpp reduce: increase default step limit (#3327) 2020-04-30 22:48:21 +01:00
spirv_reducer_options.h Refactor reducer options (#2709) 2019-07-04 11:11:42 +01:00
spirv_target_env.cpp Add spvParseVulkanEnv (#3142) 2020-01-23 17:20:32 -05:00
spirv_target_env.h Validate that in OpenGL env block variables have Binding (#2685) 2019-07-02 08:11:20 -04:00
spirv_validator_options.cpp Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
spirv_validator_options.h Make pointers to isomorphic type interchangeable with option. (#2570) 2019-05-13 13:48:17 -04:00
table.cpp Add basic support for Vulkan 1.2: SPV_ENV_VULKAN_1_2 2020-01-14 20:06:19 -05:00
table.h Use last version (#2578) 2019-05-10 11:02:01 -04:00
text_handler.cpp Avoid GCC8 warning in text_handler.cpp. (#2197) 2018-12-13 15:03:28 -05:00
text_handler.h
text.cpp Support OpenCL.DebugInfo.100 extended instruction set (#3080) 2019-12-19 17:16:26 -05:00
text.h