SPIRV-Tools/source
Steven Perron f393b0e480 Don't merge types of resources
When doing reflection users care about the names of the variable, the
name of the type, and the name of the members.  Remove duplicates breaks
this because it removes the names one of the types when merging.

To fix this we have to keep the different types around for each
resource.  This commit adds code to remove duplicates to look for the
types uses to describe resources, and make sure they do not get merged.

However, allow merging of a type used in a resource with something not
used in a resource.  Was done when the non resource type came second.

This could have a negative effect on compile time, but it was not
expected to be much.

Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1372.
2018-06-27 13:57:07 -04:00
..
comp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
link [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
opt Don't merge types of resources 2018-06-27 13:57:07 -04:00
util Small vector optimization for operands. 2018-06-12 13:41:08 -04:00
val Add a WIP WebGPU environment. It disallows OpUndef 2018-06-21 15:53:15 -04:00
CMakeLists.txt Validate static uses of interfaces 2018-06-13 10:56:14 -04:00
assembly_grammar.cpp Migrate to use unified grammar tables 2018-03-17 15:25:26 -04:00
assembly_grammar.h Add Vulkan validation rules for BuiltIn variables 2018-03-23 14:02:42 -04:00
binary.cpp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
binary.h Support building under CYGWIN 2016-12-21 10:34:23 -05:00
cfa.h Fixes compile errors generated with -Wpedantic 2018-03-22 09:40:11 -04:00
diagnostic.cpp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
diagnostic.h [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
disassemble.cpp Adding ostream operators for IR structures 2018-01-12 11:19:58 -05:00
disassemble.h Adding ostream operators for IR structures 2018-01-12 11:19:58 -05:00
enum_set.h Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
enum_string_mapping.cpp Avoid using static unordered_map (#1304) 2018-02-15 10:19:15 -05:00
enum_string_mapping.h Consistently include latest spirv.h header file. 2018-02-27 18:47:29 -05:00
ext_inst.cpp Add a WIP WebGPU environment. It disallows OpUndef 2018-06-21 15:53:15 -04:00
ext_inst.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
extensions.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
extensions.h Turn all function static non-POD variables into global POD variables 2017-10-25 15:44:19 -04:00
extinst.debuginfo.grammar.json Add asm, dis support for DebugInfo extended instruction set 2017-12-22 09:39:36 -05:00
extinst.spv-amd-gcn-shader.grammar.json Fix spelling in SPV_AMD_gcn_shader support 2017-04-03 14:59:18 -04:00
extinst.spv-amd-shader-ballot.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
extinst.spv-amd-shader-trinary-minmax.grammar.json Add support for SPV AMD extensions 2017-06-21 15:08:07 -04:00
id_descriptor.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
id_descriptor.h Add new compression algorithm and models 2017-11-21 17:32:58 -05:00
instruction.h Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
latest_version_glsl_std_450_header.h Use SPIR-V headers from "unified1" directory 2018-01-31 15:36:50 -05:00
latest_version_opencl_std_header.h Use SPIR-V headers from "unified1" directory 2018-01-31 15:36:50 -05:00
latest_version_spirv_header.h Use SPIR-V headers from "unified1" directory 2018-01-31 15:36:50 -05:00
libspirv.cpp Linker code cleanups 2018-01-05 13:28:44 -05:00
macro.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
message.cpp spirv-val prints warnings 2017-03-17 12:48:51 -04:00
message.h Clean up header dependency. 2016-09-22 18:15:23 -04:00
name_mapper.cpp Consistently include latest spirv.h header file. 2018-02-27 18:47:29 -05:00
name_mapper.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
opcode.cpp Instruction lookup succeeds if it's enabled by a capability 2018-06-20 10:44:03 -04:00
opcode.h Add Dead insert elmination back in. 2018-04-24 10:10:30 -04:00
operand.cpp Operand lookup succeeds if it's enabled by a capability 2018-06-11 19:27:52 -04:00
operand.h Migrate to use unified grammar tables 2018-03-17 15:25:26 -04:00
parsed_operand.cpp Extract EmitNumericLiteral from disassembler 2016-11-15 14:05:03 -05:00
parsed_operand.h Extract EmitNumericLiteral from disassembler 2016-11-15 14:05:03 -05:00
print.cpp Support outputting ANSI color escape sequences in library 2017-12-01 09:03:35 -05:00
print.h Support outputting ANSI color escape sequences in library 2017-12-01 09:03:35 -05:00
software_version.cpp Add missing function parameters in libspirv.h 2018-04-03 10:10:43 -04:00
spirv_constant.h Fixes #1433. Validate binary version 2018-04-06 22:41:50 -04:00
spirv_definition.h Refactor include of latest spir-v header versions 2017-12-14 11:18:20 -05:00
spirv_endian.cpp Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
spirv_endian.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
spirv_stats.cpp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
spirv_stats.h Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
spirv_target_env.cpp Add a WIP WebGPU environment. It disallows OpUndef 2018-06-21 15:53:15 -04:00
spirv_target_env.h Fixes #1433. Validate binary version 2018-04-06 22:41:50 -04:00
spirv_validator_options.cpp Add validation for structs decorated as Block or BufferBlock. 2018-06-26 14:23:18 -04:00
spirv_validator_options.h Add validation for structs decorated as Block or BufferBlock. 2018-06-26 14:23:18 -04:00
table.cpp Add a WIP WebGPU environment. It disallows OpUndef 2018-06-21 15:53:15 -04:00
table.h Migrate to use unified grammar tables 2018-03-17 15:25:26 -04:00
text.cpp Fixes #1433. Validate binary version 2018-04-06 22:41:50 -04:00
text.h Relicense SPIRV-Tools under Apache 2.0 2016-09-02 10:00:29 -04:00
text_handler.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
text_handler.h [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
validate.cpp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
validate.h Validate static uses of interfaces 2018-06-13 10:56:14 -04:00
validate_adjacency.cpp Add adjacency validation pass 2018-02-01 14:10:55 -05:00
validate_arithmetics.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
validate_atomics.cpp Add Vulkan specific atomic result type restriction 2018-03-26 12:06:25 -04:00
validate_barriers.cpp Fixes #1483. Validating Vulkan 1.1 barrier execution scopes 2018-04-17 10:26:38 -04:00
validate_bitwise.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
validate_builtins.cpp Allow ViewportIndex & Layer to be used in VS/DS with extension 2018-05-16 13:16:27 -04:00
validate_capability.cpp Add Vulkan 1.1 capability sets 2018-06-21 14:12:02 -04:00
validate_cfg.cpp [val] Add extra context to error messages. (#1600) 2018-06-19 16:02:44 -04:00
validate_composites.cpp Fixes #1403. 2018-03-28 09:04:08 -04:00
validate_conversion.cpp Re-enabled checks for UConvert 2018-04-06 10:51:57 -04:00
validate_datarules.cpp Re-format files in source, source/opt, source/util, source/val and tools. 2017-11-08 14:03:08 -05:00
validate_decorations.cpp validator: Fix storage buffer layout message 2018-06-27 09:54:40 -04:00
validate_derivatives.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
validate_ext_inst.cpp Fix validation issues relevant to SPV_AMD_gpu_shader_int16. 2018-04-16 10:49:01 -04:00
validate_id.cpp Add validation for structs decorated as Block or BufferBlock. 2018-06-26 14:23:18 -04:00
validate_image.cpp Add barrier instructions validation pass 2018-02-05 13:14:55 -05:00
validate_instruction.cpp Add a WIP WebGPU environment. It disallows OpUndef 2018-06-21 15:53:15 -04:00
validate_interfaces.cpp Validate static uses of interfaces 2018-06-13 10:56:14 -04:00
validate_layout.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
validate_literals.cpp validate & test of literal's upper bits 2017-12-19 13:19:56 -05:00
validate_logicals.cpp Re-format source tree - NFC. 2017-11-27 14:31:49 -05:00
validate_non_uniform.cpp Fixes #1480. Validate group non-uniform scopes. 2018-04-20 09:25:00 -04:00
validate_primitives.cpp More validation on primitive instructions 2017-12-19 13:26:07 -05:00
validate_type_unique.cpp Allow duplicate pointer types 2018-05-31 09:14:38 -04:00