diff --git a/.pick_status.json b/.pick_status.json index 0cf7bf35eff..9d9f09e4bae 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4814,7 +4814,7 @@ "description": "radv: fix GPU hangs with image copies for ASTC/ETC2 formats on transfer queue", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/meta/radv_meta_copy.c b/src/amd/vulkan/meta/radv_meta_copy.c index 16c703af58f..c446889178c 100644 --- a/src/amd/vulkan/meta/radv_meta_copy.c +++ b/src/amd/vulkan/meta/radv_meta_copy.c @@ -231,7 +231,7 @@ radv_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkCopyBufferToIm &pCopyBufferToImageInfo->pRegions[r]); } - if (radv_is_format_emulated(pdev, dst_image->vk.format)) { + if (radv_is_format_emulated(pdev, dst_image->vk.format) && cmd_buffer->qf != RADV_QUEUE_TRANSFER) { cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH | RADV_CMD_FLAG_PS_PARTIAL_FLUSH | radv_src_access_flush(cmd_buffer, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, 0, dst_image, NULL) | @@ -643,7 +643,7 @@ radv_CmdCopyImage2(VkCommandBuffer commandBuffer, const VkCopyImageInfo2 *pCopyI &pCopyImageInfo->pRegions[r]); } - if (radv_is_format_emulated(pdev, dst_image->vk.format)) { + if (radv_is_format_emulated(pdev, dst_image->vk.format) && cmd_buffer->qf != RADV_QUEUE_TRANSFER) { cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH | RADV_CMD_FLAG_PS_PARTIAL_FLUSH | radv_src_access_flush(cmd_buffer, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, 0, dst_image, NULL) |