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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37121>
(cherry picked from commit e8d1e935fb)
This commit is contained in:
Timur Kristóf 2025-08-29 13:14:51 +02:00 committed by Eric Engestrom
parent 15d67c309b
commit 79a84be743
2 changed files with 3 additions and 2 deletions

View file

@ -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

View file

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