Skip to content
Snippets Groups Projects

vkd3d-shader/dxil: TGSM part 2.

Merged Conor McCarthy requested to merge cmccarthy/vkd3d:tgsm_2 into master

Merge request reports

Checking pipeline status.

Merged by Alexandre JulliardAlexandre Julliard 11 months ago (Mar 27, 2024 10:07pm UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • 2582 2608 return true;
    2583 2609 }
    2584 2610
    2611 static bool sm6_value_validate_is_pointer_to_i32(const struct sm6_value *value, struct sm6_parser *sm6)
    2612 {
    2613 if (!sm6_type_is_pointer(value->type) || !sm6_type_is_i32(value->type->u.pointer.type))
    2614 {
    2615 WARN("Operand result type %u is not a pointer to i32.\n", value->type->class);
    2616 vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND,
    2617 "An int32 pointer operand passed to a DXIL instruction is not an int32 pointer.");
  • Giovanni Mascellani
  • Giovanni Mascellani
  • 9248 9248
    9249 9249 val_id = spirv_compiler_emit_load_src_with_type(compiler, &src[1], VKD3DSP_WRITEMASK_0, component_type);
    9250 9250
    9251 if (instruction->flags & VKD3DARF_SEQ_CST)
    9252 WARN("Ignoring sequentially consistent ordering.\n");
    9253 if (instruction->flags & VKD3DARF_VOLATILE)
    9254 WARN("Ignoring 'volatile' attribute.\n");
    • Comment on lines +9251 to +9254

      Do you plan to add them shortly? Sequential consistency should be pretty easy, you just have to add the appropriate flag.

      Volatile seems a bit more complicated: it requires the Vulkan memory model, which in turn is incompatible with sequential consistency. So I don't know what's the solution for this. I wonder whether volatile accesses are used often in practice.

    • It was in the dev branch, so I added it here. This MR is fairly big but this addition is not complex.

    • The WARN is an improvement, but I think ultimately we'd want a vkd3d_shader_warning() here.

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

    approved this merge request

  • Conor McCarthy added 4 commits

    added 4 commits

    • 962c7103 - vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId,...
    • 396a7803 - vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
    • 42d838ba - vkd3d-shader/spirv: Emit a warning if the atomic instruction volatile flag is unhandled.
    • 3da1dbcb - vkd3d-shader/spirv: Handle the sequentially consistent ordering flag for atomic instructions.

    Compare with previous version

  • Conor McCarthy changed the description

    changed the description

  • Conor McCarthy added 13 commits

    added 13 commits

    • 3da1dbcb...166dc24b - 4 commits from branch wine:master
    • 4e4829db - vkd3d-shader/spirv: Do not assert if a TGSM load dst register is not UINT.
    • d6666690 - vkd3d-shader/spirv: Do not assert if a TGSM store data register is not UINT.
    • b8dab5c5 - vkd3d-shader/spirv: Support 64-bit register info component type in spirv_compiler_emit_load_reg().
    • dbea370c - vkd3d-shader/dxil: Emit an error if a constant code is unhandled.
    • c9201bf4 - tests/shader-runner: Add TGSM tests.
    • 845a339c - vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId,...
    • 2e4b1724 - vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
    • 76f631f8 - vkd3d-shader/spirv: Emit a warning if the atomic instruction volatile flag is unhandled.
    • cc3fa434 - vkd3d-shader/spirv: Handle the sequentially consistent ordering flag for atomic instructions.

    Compare with previous version

  • Conor McCarthy added 4 commits

    added 4 commits

    • b8c66836 - vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId,...
    • 2fdc7695 - vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
    • 1d3cb737 - vkd3d-shader/spirv: Emit a warning if the atomic instruction volatile flag is unhandled.
    • 8c2df5b2 - vkd3d-shader/spirv: Handle the sequentially consistent ordering flag for atomic instructions.

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading