diff --git a/.pick_status.json b/.pick_status.json index 9ecf955030b7..de0605b72707 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -8294,7 +8294,7 @@ "description": "radv: Handle VK_SUBOPTIMAL_KHR in trace layers", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/layers/radv_rmv_layer.c b/src/amd/vulkan/layers/radv_rmv_layer.c index 90a1c6a9dcd4..5e05c1231568 100644 --- a/src/amd/vulkan/layers/radv_rmv_layer.c +++ b/src/amd/vulkan/layers/radv_rmv_layer.c @@ -34,7 +34,7 @@ rmv_QueuePresentKHR(VkQueue _queue, const VkPresentInfoKHR *pPresentInfo) struct radv_device *device = queue->device; VkResult res = queue->device->layer_dispatch.rmv.QueuePresentKHR(_queue, pPresentInfo); - if (res != VK_SUCCESS || !device->vk.memory_trace_data.is_enabled) + if ((res != VK_SUCCESS && res != VK_SUBOPTIMAL_KHR) || !device->vk.memory_trace_data.is_enabled) return res; vk_rmv_log_misc_token(&device->vk, VK_RMV_MISC_EVENT_TYPE_PRESENT); diff --git a/src/amd/vulkan/layers/radv_rra_layer.c b/src/amd/vulkan/layers/radv_rra_layer.c index 84ffcd111bca..2c1e83526a64 100644 --- a/src/amd/vulkan/layers/radv_rra_layer.c +++ b/src/amd/vulkan/layers/radv_rra_layer.c @@ -33,7 +33,7 @@ rra_QueuePresentKHR(VkQueue _queue, const VkPresentInfoKHR *pPresentInfo) { RADV_FROM_HANDLE(radv_queue, queue, _queue); VkResult result = queue->device->layer_dispatch.rra.QueuePresentKHR(_queue, pPresentInfo); - if (result != VK_SUCCESS) + if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR) return result; if (!queue->device->rra_trace.copy_after_build) diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 553b77a32551..07a8974631a4 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -579,7 +579,7 @@ sqtt_QueuePresentKHR(VkQueue _queue, const VkPresentInfoKHR *pPresentInfo) VkResult result; result = queue->device->layer_dispatch.rgp.QueuePresentKHR(_queue, pPresentInfo); - if (result != VK_SUCCESS) + if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR) return result; radv_handle_sqtt(_queue);