Skip to content
Snippets Groups Projects

hlsl: Parse profile and register space reservations.

Merged Elizabeth Figura requested to merge zfigura/vkd3d:mr1 into master
3 unresolved threads

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
272 272
273 273 runner->caps.runner = "d3d11.dll";
274 274 runner->caps.minimum_shader_model = SHADER_MODEL_4_0;
275 runner->caps.maximum_shader_model = SHADER_MODEL_5_1;
275 runner->caps.maximum_shader_model = SHADER_MODEL_5_0;
  • Comment on lines -275 to +275

    I researched this a little bit but didn't find an authoritative answer: D3D11 was never supposed to support SM5.1 in the first place, right?

  • Author Developer

    I researched this a little bit but didn't find an authoritative answer: D3D11 was never supposed to support SM5.1 in the first place, right?

    I don't know that there's an authoritative answer either, but I think it's fair to assume so. The only features that I know are specific to 5.1 are dynamically indexed resource arrays, unbounded resource arrays, and register spaces, and those are all things that only d3d12 has API support for.

    The documentation also lists ROVs, SV_InnerCoverage, and SV_StencilRef as new in 5.1, and d3d11 supports them, but they work in 5.0 as well (probably retroactively).

  • Please register or sign in to reply
  • Giovanni Mascellani
    Giovanni Mascellani @giomasce started a thread on commit 81d2cd1d
  • 140 {
    141 return tex1.Load(int3(0, 0, 0));
    142 }
    143
    144 [test]
    145 todo(sm<6) draw quad
    146 probe all rgba (2, 2, 2, 99)
    147
    148 % The documentation explicitly gives this case as an example, implying that a
    149 % more specific profile takes precedence over a less specific one. It doesn't.
    150 % If we're not on the specific version, the compiler silently chooses the
    151 % general case; if we are, the compiler detects a conflict and fails.
    152
    153 % sm6 is of course differnet. It seems to detect conflicts if the exact same
    154 % reservation is given, but if two different reservations are given it instead
    155 % just picks the last one, without regard to version.
  • Giovanni Mascellani
    Giovanni Mascellani @giomasce started a thread on commit 81d2cd1d
  • 1 % Tests for register reservations that use the "profile" syntax.
    2
    3 [require]
    4 shader model >= 4.0
    • I would add shader model < 4.1. It doesn't change anything in our current situation, but it documents a relevant feature of this test file, and it might become relevant at some point in the future if for some reason we have a runner that is capable of 4.1 but not of 4.0 (not that I consider this particularly likely).

    • Author Developer

      Fair enough, I'll change that.

    • Author Developer

      Eh, except, that means the sm6 tests won't be run. It's a bit awkward, but I'm not sure it's worth the effort of changing.

    • Please register or sign in to reply
  • Giovanni Mascellani approved this merge request

    approved this merge request

  • Elizabeth Figura added 2 commits

    added 2 commits

    • e0f17447 - tests: Add tests for profile syntax in register reservations.
    • 3bedce06 - tests: Add tests for register space reservation syntax.

    Compare with previous version

  • Henri Verbeet approved this merge request

    approved this merge request

  • Alexandre Julliard approved this merge request

    approved this merge request

  • Please register or sign in to reply
    Loading