SPIRV-Cross/reference/opt/shaders-msl
Chip Davis 41007cdc7d MSL: Deduplicate function constants.
It is possible in SPIR-V to declare multiple specialization constants
with the same constant ID. The most common cause of this in GLSL is
defining a spec constant, then declaring the workgroup size to use that
spec constant by its ID. But, MSL forbids defining multiple function
constants with the same function constant ID. So, we must only emit one
definition of the actual function constant (with the
`[[function_constant(id)]]` attribute); but we can point the other
variables at this one definition.

Fixes three tests in the Vulkan CTS under
`dEQP-VK.compute.basic.max_local_size_*`.
2023-02-17 10:43:50 -08:00
..
amd Updates for pull request #1162 2019-09-24 14:35:25 -04:00
asm MSL: Deduplicate function constants. 2023-02-17 10:43:50 -08:00
comp MSL: Deduplicate function constants. 2023-02-17 10:43:50 -08: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 MSL: Add a workaround for broken level() arguments. 2023-02-02 22:01:46 -08: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: Manually update BuiltInHelperInvocation when a fragment is discarded. 2022-11-19 23:48:26 -08:00