Module: Mesa Branch: main Commit: fffafa363543c89846291e40e521b48197a061f6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fffafa363543c89846291e40e521b48197a061f6
Author: Mike Blumenkrantz <[email protected]> Date: Mon May 16 09:02:07 2022 -0400 zink: move get_timestamp to screen this doesn't need to use a particular context Reviewed-by: Adam Jackson <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16529> --- src/gallium/drivers/zink/zink_query.c | 9 ++++----- src/gallium/drivers/zink/zink_query.h | 4 ++++ src/gallium/drivers/zink/zink_screen.c | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c index 7e2a1dbf91b..9d955c2dd1c 100644 --- a/src/gallium/drivers/zink/zink_query.c +++ b/src/gallium/drivers/zink/zink_query.c @@ -1293,10 +1293,10 @@ zink_get_query_result_resource(struct pipe_context *pctx, force_cpu_read(ctx, pquery, result_type, pres, offset); } -static uint64_t -zink_get_timestamp(struct pipe_context *pctx) +uint64_t +zink_get_timestamp(struct pipe_screen *pscreen) { - struct zink_screen *screen = zink_screen(pctx->screen); + struct zink_screen *screen = zink_screen(pscreen); uint64_t timestamp, deviation; if (screen->info.have_EXT_calibrated_timestamps) { VkCalibratedTimestampInfoEXT cti = {0}; @@ -1306,7 +1306,7 @@ zink_get_timestamp(struct pipe_context *pctx) mesa_loge("ZINK: vkGetCalibratedTimestampsEXT failed"); } } else { - pctx = &screen->copy_context->base; + struct pipe_context *pctx = &screen->copy_context->base; struct pipe_query *pquery = pctx->create_query(pctx, PIPE_QUERY_TIMESTAMP, 0); if (!pquery) return 0; @@ -1336,5 +1336,4 @@ zink_context_query_init(struct pipe_context *pctx) pctx->get_query_result_resource = zink_get_query_result_resource; pctx->set_active_query_state = zink_set_active_query_state; pctx->render_condition = zink_render_condition; - pctx->get_timestamp = zink_get_timestamp; } diff --git a/src/gallium/drivers/zink/zink_query.h b/src/gallium/drivers/zink/zink_query.h index 7bb73e8f02a..1465ce5b248 100644 --- a/src/gallium/drivers/zink/zink_query.h +++ b/src/gallium/drivers/zink/zink_query.h @@ -25,6 +25,7 @@ #define ZINK_QUERY_H #include <stdbool.h> +#include <inttypes.h> struct zink_batch; struct zink_batch_state; @@ -32,6 +33,7 @@ struct zink_context; struct zink_fence; struct zink_query; struct zink_screen; +struct pipe_screen; #ifdef __cplusplus extern "C" { #endif @@ -59,6 +61,8 @@ zink_check_conditional_render(struct zink_context *ctx); void zink_context_destroy_query_pools(struct zink_context *ctx); +uint64_t +zink_get_timestamp(struct pipe_screen *pscreen); #ifdef __cplusplus } #endif diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 248abc7bd13..35a8f7ea27d 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -34,6 +34,7 @@ #include "zink_instance.h" #include "zink_program.h" #include "zink_public.h" +#include "zink_query.h" #include "zink_resource.h" #include "nir_to_spirv/nir_to_spirv.h" // for SPIRV_VERSION @@ -2195,6 +2196,7 @@ zink_internal_create_screen(const struct pipe_screen_config *config) screen->base.get_vendor = zink_get_vendor; screen->base.get_device_vendor = zink_get_device_vendor; screen->base.get_compute_param = zink_get_compute_param; + screen->base.get_timestamp = zink_get_timestamp; screen->base.query_memory_info = zink_query_memory_info; screen->base.get_param = zink_get_param; screen->base.get_paramf = zink_get_paramf;
