vkQueuePresentKHR might return VK_SUBOPTIMAL_KHR which is not VK_SUCCESS
but presentation succeeded anyway. We should capture a trace even if
VK_SUBOPTIMAL_KHR is returned.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24052>
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);
{
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)
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);