From 65a5fbcb151aea52a02f2862d5eebd6ddfe2fd13 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 29 Jul 2022 13:04:31 -0700 Subject: [PATCH] turnip: add tu_query.h Part-of: --- src/freedreno/vulkan/tu_common.h | 1 + src/freedreno/vulkan/tu_private.h | 31 +-------------------- src/freedreno/vulkan/tu_query.c | 1 + src/freedreno/vulkan/tu_query.h | 45 +++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 src/freedreno/vulkan/tu_query.h diff --git a/src/freedreno/vulkan/tu_common.h b/src/freedreno/vulkan/tu_common.h index ab6885d49e7..9aa757dfee1 100644 --- a/src/freedreno/vulkan/tu_common.h +++ b/src/freedreno/vulkan/tu_common.h @@ -115,6 +115,7 @@ /* vk object types */ struct tu_device; struct tu_instance; +struct tu_query_pool; struct breadcrumbs_context; struct tu_bo; diff --git a/src/freedreno/vulkan/tu_private.h b/src/freedreno/vulkan/tu_private.h index bb46cd3147e..eea1765d5f6 100644 --- a/src/freedreno/vulkan/tu_private.h +++ b/src/freedreno/vulkan/tu_private.h @@ -34,6 +34,7 @@ #include "tu_descriptor_set.h" #include "tu_drm.h" #include "tu_perfetto.h" +#include "tu_query.h" #include "tu_suballoc.h" #include "tu_util.h" @@ -1926,34 +1927,6 @@ tu_buffer_view_init(struct tu_buffer_view *view, struct tu_device *device, const VkBufferViewCreateInfo *pCreateInfo); -#define PERF_CNTRS_REG 4 - -struct tu_perf_query_data -{ - uint32_t gid; /* group-id */ - uint32_t cid; /* countable-id within the group */ - uint32_t cntr_reg; /* counter register within the group */ - uint32_t pass; /* pass index that countables can be requested */ - uint32_t app_idx; /* index provided by apps */ -}; - -struct tu_query_pool -{ - struct vk_object_base base; - - VkQueryType type; - uint32_t stride; - uint64_t size; - uint32_t pipeline_statistics; - struct tu_bo *bo; - - /* For performance query */ - const struct fd_perfcntr_group *perf_group; - uint32_t perf_group_count; - uint32_t counter_index_count; - struct tu_perf_query_data perf_query_data[0]; -}; - uint32_t tu_subpass_get_attachment_to_resolve(const struct tu_subpass *subpass, uint32_t index); @@ -2060,8 +2033,6 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline, base, VkPipeline, VK_OBJECT_TYPE_PIPELINE) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline_layout, base, VkPipelineLayout, VK_OBJECT_TYPE_PIPELINE_LAYOUT) -VK_DEFINE_NONDISP_HANDLE_CASTS(tu_query_pool, base, VkQueryPool, - VK_OBJECT_TYPE_QUERY_POOL) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_render_pass, base, VkRenderPass, VK_OBJECT_TYPE_RENDER_PASS) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_sampler, base, VkSampler, diff --git a/src/freedreno/vulkan/tu_query.c b/src/freedreno/vulkan/tu_query.c index fcb17b68215..adfba1bbcb5 100644 --- a/src/freedreno/vulkan/tu_query.c +++ b/src/freedreno/vulkan/tu_query.c @@ -23,6 +23,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include "tu_query.h" #include "tu_private.h" #include diff --git a/src/freedreno/vulkan/tu_query.h b/src/freedreno/vulkan/tu_query.h new file mode 100644 index 00000000000..a56d4eeb19d --- /dev/null +++ b/src/freedreno/vulkan/tu_query.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2016 Red Hat. + * Copyright © 2016 Bas Nieuwenhuizen + * SPDX-License-Identifier: MIT + * + * based in part on anv driver which is: + * Copyright © 2015 Intel Corporation + */ + +#ifndef TU_QUERY_H +#define TU_QUERY_H + +#include "tu_common.h" + +#define PERF_CNTRS_REG 4 + +struct tu_perf_query_data +{ + uint32_t gid; /* group-id */ + uint32_t cid; /* countable-id within the group */ + uint32_t cntr_reg; /* counter register within the group */ + uint32_t pass; /* pass index that countables can be requested */ + uint32_t app_idx; /* index provided by apps */ +}; + +struct tu_query_pool +{ + struct vk_object_base base; + + VkQueryType type; + uint32_t stride; + uint64_t size; + uint32_t pipeline_statistics; + struct tu_bo *bo; + + /* For performance query */ + const struct fd_perfcntr_group *perf_group; + uint32_t perf_group_count; + uint32_t counter_index_count; + struct tu_perf_query_data perf_query_data[0]; +}; +VK_DEFINE_NONDISP_HANDLE_CASTS(tu_query_pool, base, VkQueryPool, + VK_OBJECT_TYPE_QUERY_POOL) + +#endif /* TU_QUERY_H */