SPIRV-Cross/reference/opt/shaders-msl/vert
Hans-Kristian Arntzen d92de00cc1 Rewrite how IDs are iterated over.
This is a fairly fundamental change on how IDs are handled.
It serves many purposes:

- Improve performance. We only need to iterate over IDs which are
  relevant at any one time.
- Makes sure we iterate through IDs in SPIR-V module declaration order
  rather than ID space. IDs don't have to be monotonically increasing,
  which was an assumption SPIRV-Cross used to have. It has apparently
  never been a problem until now.
- Support LUTs of structs. We do this by interleaving declaration of
  constants and struct types in SPIR-V module order.

To support this, the ParsedIR interface needed to change slightly.
Before setting any ID with variant_set<T> we let ParsedIR know
that an ID with a specific type has been added. The surface for change
should be minimal.

ParsedIR will maintain a per-type list of IDs which the cross-compiler
will need to consider for later.

Instead of looping over ir.ids[] (which can be extremely large), we loop
over types now, using:

ir.for_each_typed_id<SPIRVariable>([&](uint32_t id, SPIRVariable &var) {
	handle_variable(var);
});

Now we make sure that we're never looking at irrelevant types.
2019-01-10 12:52:56 +01:00
..
basic.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
copy.flatten.vert Update glslang and SPIRV-Tools. 2018-09-27 11:10:22 +02:00
dynamic.flatten.vert Update a bunch of test cases that I missed. 2018-09-03 17:31:15 -05:00
functions.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
in_out_array_mat.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
interface-block-block-composites.frag MSL: Support composites inside I/O blocks 2019-01-09 09:33:10 +01:00
interface-block-block-composites.vert MSL: Support composites inside I/O blocks 2019-01-09 09:33:10 +01:00
interpolation-qualifiers-block.vert MSL: Support global I/O block and struct Input/Output usage. 2018-09-13 16:04:24 +02:00
interpolation-qualifiers.vert Add tests showing we don't emit interpolation qualifiers in vertex shaders. 2018-09-06 12:28:22 -05:00
layer.msl11.invalid.vert Cast uses of Layer and ViewportIndex to the expected type. 2018-09-19 09:13:30 -05:00
no_stage_out.vert CompilerMSL vertex entry point return void when rasterization disabled. 2018-07-26 00:50:33 -04:00
no_stage_out.write_buff_atomic.vert CompilerMSL disable rasterization on buffer writes in vertex shader. 2018-07-27 16:53:36 -04:00
no_stage_out.write_buff.vert CompilerMSL disable rasterization on buffer writes in vertex shader. 2018-07-27 16:53:36 -04:00
no_stage_out.write_tex.vert CompilerMSL vertex entry point return void when rasterization disabled. 2018-07-26 00:50:33 -04:00
out_block.vert MSL: Support global I/O block and struct Input/Output usage. 2018-09-13 16:04:24 +02:00
packed_matrix.vert Update glslang and SPIRV-Tools. 2018-09-27 11:10:22 +02:00
pointsize.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
read-from-row-major-array.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
resource-arrays-leaf.ios.vert Rewrite how IDs are iterated over. 2019-01-10 12:52:56 +01:00
resource-arrays.ios.vert Rewrite how IDs are iterated over. 2019-01-10 12:52:56 +01:00
return-array.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
set_builtin_in_func.vert Fixes from PR 621 code review. 2018-06-25 11:40:20 -04:00
sign-int-types.vert MSL: Emit wrapper for SSign (sign() for int types) 2018-11-08 13:08:34 +10:00
texture_buffer.vert CompilerMSL support larger texel buffers by using 2D Metal textures. 2018-06-26 17:30:21 -04:00
ubo.alignment.vert Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2018-06-12 11:42:56 -04:00
ubo.vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
viewport-index.msl2.invalid.vert Cast uses of Layer and ViewportIndex to the expected type. 2018-09-19 09:13:30 -05:00