Module: Mesa
Branch: main
Commit: c62170fe57b90bd0b2387ddf25a755e9428e3587
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c62170fe57b90bd0b2387ddf25a755e9428e3587

Author: Marek Olšák <[email protected]>
Date:   Wed Sep 28 06:24:49 2022 -0400

winsys/amdgpu: fix (enable) preemption for chained IBs

Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19131>

---

 src/amd/registers/pkt3.json               | 1 +
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/registers/pkt3.json b/src/amd/registers/pkt3.json
index e54196e9eed..bdee735560b 100644
--- a/src/amd/registers/pkt3.json
+++ b/src/amd/registers/pkt3.json
@@ -496,6 +496,7 @@
    "fields": [
     {"bits": [0, 19], "name": "IB_SIZE"},
     {"bits": [20, 20], "name": "CHAIN"},
+    {"bits": [21, 21], "name": "PRE_ENA"},
     {"bits": [23, 23], "name": "VALID"}
    ]
   },
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index a6cb9d81e2b..3b6f3ab326f 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -824,7 +824,8 @@ static void amdgpu_set_ib_size(struct radeon_cmdbuf *rcs, 
struct amdgpu_ib *ib)
 {
    if (ib->ptr_ib_size_inside_ib) {
       *ib->ptr_ib_size = rcs->current.cdw |
-                         S_3F2_CHAIN(1) | S_3F2_VALID(1);
+                         S_3F2_CHAIN(1) | S_3F2_VALID(1) |
+                         S_3F2_PRE_ENA(((struct amdgpu_cs*)ib)->preamble_ib_bo 
!= NULL);
    } else {
       *ib->ptr_ib_size = rcs->current.cdw;
    }

Reply via email to