SPIRV-Cross/reference/shaders-msl
Chip Davis 8cf99e7d44 MSL: Implement CompositeInsert OpSpecConstantOp.
This op creates a new composite constant with one element replaced. So,
we reconstruct the `SPIRConstant` for the composite constant, but with
one of the IDs replaced. Constant initializer lists are memoized for
when the result of a `CompositeInsert` is used in another
`CompositeInsert`.

(I wanted to add a test case for GLSL as well, but for two things:
1. `glslang` in Vulkan mode chokes on the first constant array,
   insisting that its initializer needs to be a constant. [Bug in
   glslang?]
2. The declarations for the buffers used by the shader aren't emitted,
   regardless of whether Vulkan mode is enabled.)

Fixes five tests under
`dEQP-VK.spirv_assembly.instruction.*.opspecconstantop.vector_related`.
2022-11-01 18:11:39 -07:00
..
amd Updates for pull request #1162 2019-09-24 14:35:25 -04:00
asm MSL: Implement CompositeInsert OpSpecConstantOp. 2022-11-01 18:11:39 -07:00
comp MSL: Fix restrict vs __restrict incompatibility. 2022-10-26 17:52:47 +02:00
desktop-only MSL: Use var name instead of var-type name for flattened interface members. 2022-03-04 11:38:53 -05:00
flatten MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results. 2021-09-22 18:58:31 -04:00
frag Emit KHR barycentrics if source enables the KHR extension. 2022-05-27 13:28:25 +02:00
intel Updates for pull request #1162 2019-09-24 14:35:25 -04:00
legacy/vert Updates for pull request #1162 2019-09-24 14:35:25 -04:00
masking MSL: Use var name instead of var-type name for flattened interface members. 2022-03-04 11:38:53 -05:00
tesc MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders. 2022-10-18 15:04:42 -07:00
tese MSL: Support "raw" buffer input in tessellation evaluation shaders. 2022-10-18 14:58:59 -07:00
vert MSL: Fix restrict vs __restrict incompatibility. 2022-10-26 17:52:47 +02:00
vulkan MSL: Support SPV_EXT_demote_to_helper_invocation for MSL 2.3. 2020-10-13 00:25:32 -05:00