From 79a84be7437464a00985ee8da63b1425d10073b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Fri, 29 Aug 2025 13:14:51 +0200 Subject: [PATCH] radv/amdgpu: Don't use IB2 on GFX6 (for now) GFX6 actually supports IB2, but doesn't support chaining between chunks inside the IB2. See WaCpIb2ChainingUnsupported in PAL. Disable IB2 on GFX6 for now. The proper fix will be to disable use_ib in just secondary command buffers on GFX6 and emit multiple IB2 packets in the main command buffer. This will be implemented later. Cc: mesa-stable Part-of: (cherry picked from commit e8d1e935fb41bfc593f473d99f4711073307d013) --- .pick_status.json | 2 +- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 5a6d1a3df99..59cdfda0662 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -8694,7 +8694,7 @@ "description": "radv/amdgpu: Don't use IB2 on GFX6 (for now)", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c index 1db8d566fda..441abc547e4 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -736,7 +736,8 @@ radv_amdgpu_cs_execute_secondary(struct radeon_cmdbuf *_parent, struct radeon_cm struct radv_amdgpu_cs *parent = radv_amdgpu_cs(_parent); struct radv_amdgpu_cs *child = radv_amdgpu_cs(_child); struct radv_amdgpu_winsys *ws = parent->ws; - const bool use_ib2 = parent->use_ib && !parent->is_secondary && allow_ib2 && parent->hw_ip == AMD_IP_GFX; + const bool use_ib2 = parent->use_ib && !parent->is_secondary && allow_ib2 && parent->hw_ip == AMD_IP_GFX && + ws->info.gfx_level >= GFX7; if (parent->status != VK_SUCCESS || child->status != VK_SUCCESS) return;