microsoft / microsoft/DirectXShaderCompiler
Passing `int4` constants to `dst` causes ICE
Open
Nobody has claimed this yet.
bug
needs-triage
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
Passing dst 2 int4 arguments causes a stack overflow.
Steps to Reproduce
Shader:
[shader("pixel")]
void PSMain() {
int4 r = dst(int4(1, 2, 3, 4), int4(5, 6, 7, 8));
if (r.x != 1) discard;
}
Command: dxc.exe -T ps_6_6 -E PSMain dst_int4.hlsl
Actual Behavior
Internal compiler error: stack overflow
Environment
dxcompiler.dll: 1.9(5184-21d28f72)(1.9.2602.17) - 1.9.2602.17 (21d28f727)- Windows 10
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided dxc.exe command with the HLSL shader and PSMain entry point to reproduce the stack overflow. Trace how dst handles two int4 constant arguments, then add a regression test showing compilation completes without an internal compiler error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100