From fe84aaa8a712e628b4a397f4617341031fc5dff8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 16 Oct 2024 15:20:30 -0400 Subject: [PATCH] hk: switch to 64-bit queries for timestamps Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/shaders/query.cl | 3 --- src/asahi/vulkan/hk_query_pool.c | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/asahi/lib/shaders/query.cl b/src/asahi/lib/shaders/query.cl index db6272bce12..3e31182be4e 100644 --- a/src/asahi/lib/shaders/query.cl +++ b/src/asahi/lib/shaders/query.cl @@ -10,9 +10,6 @@ static inline void write_query_result(uintptr_t dst_addr, int32_t idx, bool is_64, uint64_t result) { - /* TODO: do we want real 64-bit stats? sync with CPU impl */ - result &= 0xffffffff; - if (is_64) { global uint64_t *out = (global uint64_t *)dst_addr; out[idx] = result; diff --git a/src/asahi/vulkan/hk_query_pool.c b/src/asahi/vulkan/hk_query_pool.c index e9603ae2869..948449cb035 100644 --- a/src/asahi/vulkan/hk_query_pool.c +++ b/src/asahi/vulkan/hk_query_pool.c @@ -32,9 +32,7 @@ #include "vulkan/vulkan_core.h" struct hk_query_report { - /* TODO: do we want this to be legit u64? */ - uint32_t value; - uint32_t padding; + uint64_t value; }; static uint16_t * @@ -311,6 +309,8 @@ emit_zero_queries(struct hk_cmd_buffer *cmd, struct hk_query_pool *pool, for (unsigned j = 0; j < hk_reports_per_query(pool); ++j) { hk_queue_write(cmd, report + (j * sizeof(struct hk_query_report)), 0, false); + hk_queue_write(cmd, report + (j * sizeof(struct hk_query_report)) + 4, + 0, false); } } }