radv: Add timeout to video encode query

Reviewed-by: Dave Airlie <airlied@redhat.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36645>
(cherry picked from commit 142d54817a)
This commit is contained in:
David Rosca 2025-08-01 10:06:33 +02:00 committed by Eric Engestrom
parent 8476bd5002
commit 043d2f43f0
2 changed files with 6 additions and 3 deletions

View file

@ -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

View file

@ -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) {