SPIRV-Cross-Vulnerable/reference
Bill Hollings 16fbf8872a MSL: Workaround Metal 3.1 regression bug on recursive input structs.
Metal 3.1 introduced a Metal regression bug which causes an infinite recursion
crash during Metal's analysis of an entry point input structure that itself
contains internal recursion. This patch works around this by replacing the
recursive input declaration with a alternate variable of type void*, and
then casting to the correct type at the top of the entry point function.

- Add CompilerMSL::Options::replace_recursive_inputs to enable
  replacing recursive input.
- Add Compiler::type_contains_recursion() to determine if a struct
  contains internal recursion, and add custom Decorations to mark
  such structs, to short-cut future similar checks.
- Replace recursive input struct declarations with void*,
  and emit a recast to correct type at top of entry function.
- Add unit test.
- Compiler::type_is_top_level_block() remove hardcode reference to spirv_cross
  namespace, as it interferes with configurable namespaces (unrelated).
2023-10-14 14:46:47 -04:00
..
opt MSL: Workaround Metal 3.1 regression bug on recursive input structs. 2023-10-14 14:46:47 -04:00
shaders GLSL: Use buffer_reference2 instead of 1. 2023-10-11 14:18:36 +02:00
shaders-hlsl Fix unroll, when storing to pointer to array 2023-09-28 23:58:51 +02:00
shaders-hlsl-no-opt Add test for plain variable mesh position. 2023-07-03 14:25:22 +02:00
shaders-msl MSL: Workaround Metal 3.1 regression bug on recursive input structs. 2023-10-14 14:46:47 -04:00
shaders-msl-no-opt Merge pull request #2203 from Try/msl-atomics-fix 2023-09-25 10:39:13 +02:00
shaders-no-opt Merge pull request #2216 from KhronosGroup/buffer-reference-2 2023-10-11 14:20:36 +02:00
shaders-reflection Use --preserve-numeric-ids when assembling test shaders. 2023-06-23 14:54:16 -07:00
shaders-ue4/asm Use --preserve-numeric-ids when assembling test shaders. 2023-06-23 14:54:16 -07:00
shaders-ue4-no-opt/asm MSL: Handle more complex array copy scenarios with bool <-> short. 2023-06-06 15:05:56 +02:00