diff --git a/.pick_status.json b/.pick_status.json index 2579d061534..8369dfda65a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -8714,7 +8714,7 @@ "description": "radv/amdgpu: Fix crash with RADV_DEBUG=noibs", "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 d0d3073f922..374311e4713 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -457,6 +457,11 @@ radv_amdgpu_winsys_cs_pad(struct radeon_cmdbuf *_cs, unsigned leave_dw_space) radeon_emit_unchecked(&cs->base, PKT3(PKT3_NOP, remaining - 2, 0)); cs->base.cdw += remaining - 1; } + } else if (cs->base.cdw == 0 && leave_dw_space == 0) { + /* Emit a NOP packet to avoid submitting a completely empty IB. */ + const int remaining = pad_dw_mask + 1; + radeon_emit_unchecked(&cs->base, PKT3(PKT3_NOP, remaining - 2, 0)); + cs->base.cdw += remaining - 1; } } else { /* Don't pad on VCN encode/unified as no NOPs */