aco: update waitcnt on GFX11
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 6 May 2022 09:38:43 +0000 (11:38 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 12 May 2022 15:46:20 +0000 (15:46 +0000)
Not sure if the vmcnt field can use more than 0x3f bits.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16369>

src/amd/compiler/aco_ir.cpp

index 6527dd8..2bc5b4e 100644 (file)
@@ -779,6 +779,11 @@ wait_imm::pack(enum chip_class chip) const
    uint16_t imm = 0;
    assert(exp == unset_counter || exp <= 0x7);
    switch (chip) {
+   case GFX11:
+      assert(lgkm == unset_counter || lgkm <= 0x3f);
+      assert(vm == unset_counter || vm <= 0x3f);
+      imm = ((vm & 0x3f) << 10) | ((lgkm & 0x3f) << 4) | (exp & 0x7);
+      break;
    case GFX10:
    case GFX10_3:
       assert(lgkm == unset_counter || lgkm <= 0x3f);