microsoft / microsoft/DirectXShaderCompiler
[SPIR-V] Please considering emitting SPV_KHR_compute_shader_derivatives extension conditionally
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
The previous fix for https://github.com/microsoft/DirectXShaderCompiler/issues/7943 emits additional extension requirement and execution mode globally for shaders uses QuadReadAcross* intrinsics, which breaks so many legacy devices. I know It better reflects QuadReadAcross* intrinsics in spirv which is good, but I think the most of the stuff been talked about in that thread should be targeting SM6.6, at least the required vulkan extension VK_KHR_compute_shader_derivatives is targeting SM6.6. So please consider at least gating that fix for SM6.6+only, as it really should not be enabled by default on SM6.0.
At least on mobile deivces, there's few device actually supports this extension, for example samsung doesn't support this extension until S26 (Adreno 840)
Steps to Reproduce
Actual Behavior
Environment
- DXC version
- Host Operating System <!--- Host operating system and version --->
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 tracing the previous fix referenced in issue 7943 and the SPIR-V emission path for QuadReadAcross* intrinsics. Compare the generated extension requirement and execution mode for SM6.0 versus SM6.6, and verify that legacy shader targets no longer require VK_KHR_compute_shader_derivatives while SM6.6 targets retain the appropriate behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100