From: Samuel Pitoiset Date: Thu, 4 Oct 2018 08:37:09 +0000 (+0200) Subject: radv: fix resetting the pool for timestamp queries X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2b34985d93e7914ead00227aa2842846df3c487f;p=mesa.git radv: fix resetting the pool for timestamp queries Since the driver no longer uses the availability bit for timestamp queries it shouldn't reset it. Instead, it should reset the query values to UINT32_MAX. This fixes VM faults. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108164 Signed-off-by: Samuel Pitoiset Tested-by: Józef Kucia Reviewed-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index d607d24cfc6..41af16ba768 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -1088,20 +1088,18 @@ void radv_CmdResetQueryPool( { RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); RADV_FROM_HANDLE(radv_query_pool, pool, queryPool); + uint32_t value = pool->type == VK_QUERY_TYPE_TIMESTAMP + ? TIMESTAMP_NOT_READY : 0; uint32_t flush_bits = 0; flush_bits |= radv_fill_buffer(cmd_buffer, pool->bo, firstQuery * pool->stride, - queryCount * pool->stride, 0); - - if (pool->type == VK_QUERY_TYPE_TIMESTAMP || - pool->type == VK_QUERY_TYPE_PIPELINE_STATISTICS) { - uint32_t value = pool->type == VK_QUERY_TYPE_TIMESTAMP - ? TIMESTAMP_NOT_READY : 0; + queryCount * pool->stride, value); + if (pool->type == VK_QUERY_TYPE_PIPELINE_STATISTICS) { flush_bits |= radv_fill_buffer(cmd_buffer, pool->bo, pool->availability_offset + firstQuery * 4, - queryCount * 4, value); + queryCount * 4, 0); } if (flush_bits) {