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