From: Marek Olšák Date: Sun, 15 May 2022 01:16:31 +0000 (-0400) Subject: winsys/amdgpu: initialize IB_PREAMBLE in advance X-Git-Tag: upstream/22.3.5~8752 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=394e42427fb361ff4a41e70f4dc8818519ba7b28;p=platform%2Fupstream%2Fmesa.git winsys/amdgpu: initialize IB_PREAMBLE in advance Reviewed-by: Mihai Preda Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c index 94e6c6f..73b4f03 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c @@ -873,14 +873,19 @@ static bool amdgpu_init_cs_context(struct amdgpu_winsys *ws, * the next IB starts drawing, and so the cache flush at the end of IB * is always late. */ - if (ws->info.drm_minor >= 26) + if (ws->info.drm_minor >= 26) { + cs->ib[IB_PREAMBLE].flags = AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE; cs->ib[IB_MAIN].flags = AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE; + } break; default: assert(0); } + cs->ib[IB_PREAMBLE].flags |= AMDGPU_IB_FLAG_PREAMBLE; + cs->ib[IB_PREAMBLE].ip_type = cs->ib[IB_MAIN].ip_type; + cs->last_added_bo = NULL; return true; } @@ -1047,8 +1052,6 @@ amdgpu_cs_setup_preemption(struct radeon_cmdbuf *rcs, const uint32_t *preamble_i amdgpu_bo_unmap(&ws->dummy_ws.base, preamble_bo); for (unsigned i = 0; i < 2; i++) { - csc[i]->ib[IB_PREAMBLE] = csc[i]->ib[IB_MAIN]; - csc[i]->ib[IB_PREAMBLE].flags |= AMDGPU_IB_FLAG_PREAMBLE; csc[i]->ib[IB_PREAMBLE].va_start = amdgpu_winsys_bo(preamble_bo)->va; csc[i]->ib[IB_PREAMBLE].ib_bytes = preamble_num_dw * 4;