Skip to content
Snippets Groups Projects

vkd3d-shader/ir: Validate index count for some register types.

Merged Giovanni Mascellani requested to merge giomasce/vkd3d:yellowstone into master
1 unresolved thread

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 6 commits

    • 9e563a33 - vkd3d-shader/d3dbc: Do not emit indices for DEPTHOUT registers.
    • bf3495c3 - vkd3d-shader/ir: Validate index count for DEPTHOUT registers.
    • cf97fa25 - vkd3d-shader/ir: Validate index count for DEPTHOUTGE registers.
    • fde474d2 - vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers.
    • f2263c5c - vkd3d-shader/ir: Validate index count for RASTOUT registers.
    • 8897331f - vkd3d-shader/ir: Validate index count for MISCTYPE registers.

    Compare with previous version

  • requested review from @zfigura

  • Especially for the first commit it would be great to have @zfigura's opinion on this.

    • I don't have strong opinions on whether 1/6 is better than the alternative.

      If we do go with 1/6, LOOP (aL) definitely doesn't have an index either. PREDICATE (p0) and ADDR (a0) both have an index in the assembly, but the index doesn't mean anything as there's only one register of each type. (ADDR is also the same as TEXTURE, which is a bit awkward.) So I'd assert LOOP should certainly be treated like DEPTHOUT; I'm less sure about the other two.

    • I haven't begun touch other registers in part because I noticed that ADDR and TEXTURE share the same value and I wanted to understand what's really supposed to happen there before writing validation checks, and in part because you mentioned having some patches to regularize a few quirks in VSIR (such as splitting ADDR and TEXTURE), so, since I'm not in a rush, I wanted to see how things settled.

      My general philosophy is that each time an index carry no information it should just not exist is VSIR, so that would be the case of PREDICATE and ADDR too. To me the zero in "p0" is just part of the name. I can also tolerate an index with a fixed value if anybody has strong opinions, it's not that much more work. To me that's mostly a matter of language cleanness.

    • Please register or sign in to reply
  • Elizabeth Figura approved this merge request

    approved this merge request

  • Giovanni Mascellani approved this merge request

    approved this merge request

  • Henri Verbeet approved this merge request

    approved this merge request

  • Henri Verbeet added 23 commits

    added 23 commits

    • 8897331f...caa2a9d3 - 17 commits from branch wine:master
    • 53e35f2d - vkd3d-shader/d3dbc: Do not emit indices for DEPTHOUT registers.
    • c3757e69 - vkd3d-shader/ir: Validate index count for DEPTHOUT registers.
    • 62598326 - vkd3d-shader/ir: Validate index count for DEPTHOUTGE registers.
    • 19d35d89 - vkd3d-shader/ir: Validate index count for DEPTHOUTLE registers.
    • 99aebb1b - vkd3d-shader/ir: Validate index count for RASTOUT registers.
    • 7e9dc8da - vkd3d-shader/ir: Validate index count for MISCTYPE registers.

    Compare with previous version

Please register or sign in to reply
Loading