Skip to content
Snippets Groups Projects

vkd3d-shader/hlsl: Tessellation shader semantic fixes.

Fixes Wither 3's NVIDIA HairWorks in DX11 mode (once geometry shader support is merged).

Edited by Shaun Ren

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
  • Shaun Ren changed the description

    changed the description

  • Shaun Ren added 2 commits

    added 2 commits

    • 8495785d - tests: Add signature reflection tests for register allocation rules in tessellation shaders.
    • 4e8c4503 - vkd3d-shader/hlsl: Add special allocation rules for patch constant data.

    Compare with previous version

    • From 4/6:

      -            *sysval_semantic = semantics[i].semantic;
      +            if ((is_patch_constant_func && output) || (version->type == VKD3D_SHADER_TYPE_DOMAIN && !output))
      +                *sysval_semantic = semantics[i].semantic == ~0u ? ~0u : VKD3D_SHADER_SV_NONE;
      +            else
      +                *sysval_semantic = semantics[i].semantic;

      Wouldn't it be a bit simpler to write

      +            if (((is_patch_constant_func && output) || (version->type == VKD3D_SHADER_TYPE_DOMAIN && !output)) && semantics[i].semantic != ~0u)
      +                *sysval_semantic = VKD3D_SHADER_SV_NONE;
      +            else
      +                *sysval_semantic = semantics[i].semantic;

      Why do we need the domain input special case here? Can't we just put the other ones as SV_NONE in the table?

    • Author Contributor

      Right, removed.

    • Thanks. The other comment (which I wrote in a kind of unclear way) still stands. I.e. we could have

      +            if (is_patch_constant_func && output && semantics[i].semantic != ~0u)
      +                *sysval_semantic = VKD3D_SHADER_SV_NONE;
      +            else
      +                *sysval_semantic = semantics[i].semantic;
    • Author Contributor

      OK changed.

    • Please register or sign in to reply
  • Shaun Ren added 3 commits

    added 3 commits

    • afd74c50 - vkd3d-shader/tpf: Support SV_RenderTargetArrayIndex/SV_ViewportArrayIndex...
    • d6e819c9 - tests: Add signature reflection tests for register allocation rules in tessellation shaders.
    • 530c2d8b - vkd3d-shader/hlsl: Add special allocation rules for patch constant data.

    Compare with previous version

  • Shaun Ren added 3 commits

    added 3 commits

    • 124b9408 - vkd3d-shader/tpf: Support SV_RenderTargetArrayIndex/SV_ViewportArrayIndex...
    • d1bd8a31 - tests: Add signature reflection tests for register allocation rules in tessellation shaders.
    • 677fe551 - vkd3d-shader/hlsl: Add special allocation rules for patch constant data.

    Compare with previous version

  • Elizabeth Figura approved this merge request

    approved this merge request

  • Henri Verbeet approved this merge request

    approved this merge request

  • Henri Verbeet added 41 commits

    added 41 commits

    • 677fe551...70655012 - 35 commits from branch wine:master
    • d1df10ac - vkd3d-shader/hlsl: Use dcl_output_siv for patch constant function sysval outputs.
    • ec2f18ab - vkd3d-shader/hlsl: Free all allocators in allocate_semantic_registers().
    • 05f8dd82 - vkd3d-shader/hlsl: Prioritize smaller writemasks for all allocators in...
    • d3b32fef - vkd3d-shader/tpf: Support SV_RenderTargetArrayIndex/SV_ViewportArrayIndex...
    • 7ba84b77 - tests: Add signature reflection tests for register allocation rules in tessellation shaders.
    • 0c139ef7 - vkd3d-shader/hlsl: Add special allocation rules for patch constant data.

    Compare with previous version

Please register or sign in to reply
Loading