KhronosGroup / KhronosGroup/SPIRV-Cross
MSL & GLSL: Support OpUndef in constant composite (and spec constant composite)
- Dominant language
- GLSL
- Stars
- 2.5k
- Forks
- 713
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 16
Description
These CTS test fail after SPIR-V conversion to MSL fails with `Bad cast` in attempting to incorporate an `OpUndef` into a `OpConstantComposite` or `OpSpecConstantComposite`:
dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_constant_composite
dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_spec_constant_composite
The related conversion to GLSL also fails.
SPIR-V files:
[undefined_constant_composite.spv.zip](https://github.com/KhronosGroup/SPIRV-Cross/files/7297488/undefined_constant_composite.spv.zip)
[undefined_spec_constant_composite.spv.zip](https://github.com/KhronosGroup/SPIRV-Cross/files/7297491/undefined_spec_constant_composite.spv.zip)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the two named dEQP-VK SPIR-V assembly tests and inspect the attached undefined_constant_composite.spv and undefined_spec_constant_composite.spv inputs. Trace their conversion to MSL and GLSL, focusing on the Bad cast involving OpUndef in constant composites. Done means both conversions succeed and the two CTS tests pass.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100