Module: Mesa Branch: master Commit: 2b34985d93e7914ead00227aa2842846df3c487f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b34985d93e7914ead00227aa2842846df3c487f
Author: Samuel Pitoiset <[email protected]> Date: Thu Oct 4 10:37:09 2018 +0200 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 <[email protected]> Tested-by: Józef Kucia <[email protected]> Reviewed-by: Dave Airlie <[email protected]> --- src/amd/vulkan/radv_query.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index d607d24cfc..41af16ba76 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) { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
