microsoft / microsoft/DirectXShaderCompiler

Revise DXC help text: "(must be used with /Fo <file>)"

Open
#6,402 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug diagnostic
Dominant language
C++
Stars
3.7k
Forks
900
Avg merge
2d 11h
Merged PRs (30d)
44

Description

Description
Several of DXC's tool options, such as /Qstrip_debug have help text like this added to the end: "(must be used with /Fo <file>)"
However, these options do not technically require /Fo to be used for dxc. This text may be confusing, so perhaps it should be removed.
These options may not do much without /Fo, since they impact what's included in the output specified by /Fo, but it's not invalid.

I think the text was added in relation to container modification. When you load a shader container from file with /dumpbin these options only apply to the new container output specified by /Fo, not the original loaded container file. It might make sense to emit a warning in a case where the option does nothing because you aren't outputting a container, but this text in the option isn't necessary.

These are the affected options:

  • -extractrootsignature - It probably makes sense to leave the text on this option, since the only scenario this is used for is the /dumpbin container modification scenario.
  • -Qstrip_debug
  • -Qstrip_priv
  • -Qstrip_reflect
  • -Qstrip_rootsignature

Additionally, the /Qstrip_debug option says "Strip debug information from 4_0+ shader bytecode", which was inherited directly from FXC. Since DXC never produced 4_0 or 5_0 bytecode (only 6_0+), this is odd. FXC had it because of differences in functionality between DX9 and DX10 shader targets. The "4_0+" should probably be removed for DXC.

https://github.com/microsoft/DirectXShaderCompiler/blob/130877392c263888ef06bab768856d3dab1f1c9a/include/dxc/Support/HLSLOptions.td#L495-L496

Environment

  • DXC version: any
  • Host Operating System: any

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 at include/dxc/Support/HLSLOptions.td around lines 495-496 and inspect the help text for the listed DXC options. Verify the current output for these options, then update the misleading /Fo wording and the 4_0+ reference where appropriate. Done means the help text accurately describes DXC behavior, while the extract-rootsignature wording is retained.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, compilers
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.