From 043d2f43f0cd6dca4bec98639b0b79febf6d15ac Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 1 Aug 2025 10:06:33 +0200 Subject: [PATCH] radv: Add timeout to video encode query Reviewed-by: Dave Airlie Cc: mesa-stable Part-of: (cherry picked from commit 142d54817a2d796bd94bedd583c3eb0e924bbde6) --- .pick_status.json | 2 +- src/amd/vulkan/radv_query.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index fb3aea76a94..cea1856cc30 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5784,7 +5784,7 @@ "description": "radv: Add timeout to video encode query", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index f4b4b42deea..e9c05c889de 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -2063,6 +2063,7 @@ radv_get_rel_timeout_for_query(VkQueryType type) case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT: + case VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR: return radv_get_tdr_timeout_for_ip(AMD_IP_GFX) * 2; default: return radv_get_tdr_timeout_for_ip(AMD_IP_COMPUTE) * 2; @@ -2392,11 +2393,13 @@ radv_GetQueryPoolResults(VkDevice _device, VkQueryPool queryPool, uint32_t first uint32_t value; do { value = p_atomic_read(&src32[1]); - } while (value != 1 && (flags & VK_QUERY_RESULT_WAIT_BIT)); + } while (value != 1 && (flags & VK_QUERY_RESULT_WAIT_BIT) && !(timed_out = (atimeout < os_time_get_nano()))); available = value != 0; - if (!available && !(flags & VK_QUERY_RESULT_PARTIAL_BIT)) + if (timed_out) + result = VK_ERROR_DEVICE_LOST; + else if (!available && !(flags & VK_QUERY_RESULT_PARTIAL_BIT)) result = VK_NOT_READY; if (flags & VK_QUERY_RESULT_64_BIT) {