Mesa (master): radv: fix resetting the pool for timestamp queries

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 4 08:57:33 UTC 2018


Module: Mesa
Branch: master
Commit: 2b34985d93e7914ead00227aa2842846df3c487f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b34985d93e7914ead00227aa2842846df3c487f

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
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 <samuel.pitoiset at gmail.com>
Tested-by: Józef Kucia <joseph.kucia at gmail.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>

---

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




More information about the mesa-commit mailing list