xref: /aosp_15_r20/external/mesa3d/src/freedreno/vulkan/tu_query_pool.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright © 2016 Red Hat.
3  * Copyright © 2016 Bas Nieuwenhuizen
4  * SPDX-License-Identifier: MIT
5  *
6  * based in part on anv driver which is:
7  * Copyright © 2015 Intel Corporation
8  */
9 
10 #ifndef TU_QUERY_POOL_H
11 #define TU_QUERY_POOL_H
12 
13 #include "tu_common.h"
14 
15 #include "vk_query_pool.h"
16 
17 #define PERF_CNTRS_REG 4
18 
19 struct tu_perf_query_data
20 {
21    uint32_t gid;      /* group-id */
22    uint32_t cid;      /* countable-id within the group */
23    uint32_t cntr_reg; /* counter register within the group */
24    uint32_t pass;     /* pass index that countables can be requested */
25    uint32_t app_idx;  /* index provided by apps */
26 };
27 
28 struct tu_query_pool
29 {
30    struct vk_query_pool vk;
31 
32    uint64_t size;
33    uint32_t query_stride;
34    struct tu_bo *bo;
35 
36    /* For performance query */
37    const struct fd_perfcntr_group *perf_group;
38    uint32_t perf_group_count;
39    uint32_t counter_index_count;
40    struct tu_perf_query_data perf_query_data[0];
41 };
42 
43 VK_DEFINE_NONDISP_HANDLE_CASTS(tu_query_pool, vk.base, VkQueryPool,
44                                VK_OBJECT_TYPE_QUERY_POOL)
45 
46 #endif /* TU_QUERY_POOL_H */
47