microsoft / microsoft/DirectXShaderCompiler

[6.10] [LinAlg] Dxil Ops should have read/write restrictions

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

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
The DXIL ops defined in hctdb.py for Linear Algebra have no read/write restrictions applied to them. This limits the compiler's ability to perform some basic optimizations including deduplication of resource handle creation/annotation.

Steps to Reproduce
https://godbolt.org/z/a7bGebqE6

This demonstrates a Thread scope matrix being loaded twice and little more. In each case, the resource handle being loaded from is created and annotated twice.

There are various other cases where optimization opportunities like this could be lost

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 inspecting the Linear Algebra DXIL operation definitions in hctdb.py and reproduce the behavior using the linked Godbolt example. Determine the appropriate read/write restrictions for those operations, then verify that resource handle creation and annotation are no longer duplicated and that the optimization behavior is preserved.

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
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.