From e1e35112c859bff2b5ba02397ac548af5b8317d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 25 Nov 2023 07:41:24 -0500 Subject: [PATCH] winsys/amdgpu: bypass GL2 for command buffers Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c index 485e14af633..7449a97ca38 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c @@ -871,9 +871,13 @@ static bool amdgpu_ib_new_buffer(struct amdgpu_winsys *ws, /* Use cached GTT for command buffers. Writing to other heaps is very slow on the CPU. * The speed of writing to GTT WC is somewhere between no difference and very slow, while * VRAM being very slow a lot more often. + * + * Bypass GL2 because command buffers are read only once. Bypassing GL2 has better latency + * and doesn't have to wait for cached GL2 requests to be processed. */ enum radeon_bo_domain domain = RADEON_DOMAIN_GTT; - unsigned flags = RADEON_FLAG_NO_INTERPROCESS_SHARING; + unsigned flags = RADEON_FLAG_NO_INTERPROCESS_SHARING | + RADEON_FLAG_GL2_BYPASS; if (cs->ip_type == AMD_IP_GFX || cs->ip_type == AMD_IP_COMPUTE ||