microsoft / microsoft/DirectXShaderCompiler

[SPIR-V] Please considering emitting SPV_KHR_compute_shader_derivatives extension conditionally

Open
#8,886 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage spirv
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.