KhronosGroup / KhronosGroup/SPIRV-Cross

MSL & GLSL: Support OpUndef in constant composite (and spec constant composite)

Open
#1,758 0 comments 0 reactions 0 assignees View on GitHub
CTS
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.