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; }
