SPIRV-Cross/reference/opt/shaders-msl/asm
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
..
comp MSL: Implement CompositeInsert OpSpecConstantOp. 2022-11-01 18:11:39 -07:00
frag Roll dependencies. 2022-05-27 13:28:25 +02:00
tesc MSL: Fix '--msl-multi-patch-workgroup' out of bounds reads when dispatching more threads than control points (#1662) 2021-04-29 20:01:26 +02:00
tese MSL: Support "raw" buffer input in tessellation evaluation shaders. 2022-10-18 14:58:59 -07:00
vert Attempt more optimal codegen for OpCompositeInsert. 2022-05-18 16:37:33 +02:00