Skip to content
Snippets Groups Projects

vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

Merged Conor McCarthy requested to merge cmccarthy/vkd3d:sig_merge 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
  • Conor McCarthy added 1 commit

    added 1 commit

    • 639f8852 - vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes."

    Compare with previous version

  • Conor McCarthy changed the description

    changed the description

    • So why is the original commit wrong/superfluous? Arguably this incident simply re-emphasises the need for test coverage for changes like these; if we're going to revert this, could we at least get a test this time?

    • Author Developer

      This issue is a little more specific than it first appeared. It occurs when an I/O row is split into multiple elements by components, but the first element is unused, e.g.:

      Name                 Index   Mask Register SysValue  Format   Used
      -------------------- ----- ------ -------- -------- ------- ------
      sv_position              0   xyzw        0      POS   float
      texcoord                 0   xy          1     NONE   float
      texcoord                 1     zw        1     NONE   float     zw

      And the declaration contains an interpolation mode: dcl_input_ps constant v1.zw

      The old fix needs to be reverted, and replaced with a new fix. When split elements are merged, the interpolation mode should be taken from those which have one.

      I was unable to make a shader runner test which touches the issue. My knowledge of interpolation modes and their effects isn't great. Any suggestions?

    • Author Developer

      I have a test which should work, but only with fxc. Our HLSL compiler doesn't split the VS outputs and PS inputs. A d3d12 test seems excessive, but the only way it will work in shader runner is if the compiler is patched so the signatures match fxc.

    • A d3d12 test seems excessive

      I don't think we should keep a particularly high barrier on adding d3d12 tests. It would be nice to move as many as possible of them to the shader runner to save on boilerplate (and to make the shader runner language more powerful so that more tests can be converted), but in the meantime I don't think we want to give up on d3d12 tests because they're too many or because only some features can be tested there.

    • Please register or sign in to reply
  • Henri Verbeet mentioned in merge request !537 (merged)

    mentioned in merge request !537 (merged)

  • Conor McCarthy added 17 commits

    added 17 commits

    • 639f8852...50cebc72 - 14 commits from branch wine:master
    • db353669 - vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes."
    • dfc85c23 - tests: Test an interpolated PS input where component x is unused.
    • a0dc5254 - vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

    Compare with previous version

  • Conor McCarthy added 3 commits

    added 3 commits

    • 02c985b9 - vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes."
    • 79d3a5e4 - tests: Test an interpolated PS input where component x is unused.
    • 8a201593 - vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

    Compare with previous version

  • Conor McCarthy added 83 commits

    added 83 commits

    • 8a201593...cd77b2a9 - 80 commits from branch wine:master
    • 9daf8b07 - vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes."
    • fd0e5e0f - tests: Test an interpolated PS input where component x is unused.
    • 3201d151 - vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

    Compare with previous version

  • Conor McCarthy changed title from vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes." to vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

    changed title from vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes." to vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

  • Henri Verbeet approved this merge request

    approved this merge request

  • Alexandre Julliard added 10 commits

    added 10 commits

    • 3201d151...efe800f7 - 7 commits from branch wine:master
    • b8280e42 - vkd3d-shader/ir: Revert "Do not merge signature elements which have different...
    • 759362b5 - tests: Test an interpolated PS input where component x is unused.
    • 83851133 - vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.

    Compare with previous version

  • Alexandre Julliard approved this merge request

    approved this merge request

Please register or sign in to reply
Loading