mesa/src/virtio/vulkan/vn_query_pool.h

41 lines
1023 B
C

/*
* Copyright 2019 Google LLC
* SPDX-License-Identifier: MIT
*
* based in part on anv and radv which are:
* Copyright © 2015 Intel Corporation
* Copyright © 2016 Red Hat.
* Copyright © 2016 Bas Nieuwenhuizen
*/
#ifndef VN_QUERY_POOL_H
#define VN_QUERY_POOL_H
#include "vn_common.h"
struct vn_feedback_buffer;
struct vn_query_pool {
struct vn_object_base base;
VkAllocationCallbacks allocator;
uint32_t query_count;
/* synchronize lazy init of qfb buffer */
simple_mtx_t mutex;
/* non-NULL if VN_PERF_NO_QUERY_FEEDBACK is disabled */
struct vn_feedback_buffer *fb_buf;
uint32_t result_array_size;
bool saturate_on_overflow;
};
VK_DEFINE_NONDISP_HANDLE_CASTS(vn_query_pool,
base.base,
VkQueryPool,
VK_OBJECT_TYPE_QUERY_POOL)
VkResult
vn_query_feedback_buffer_init_once(struct vn_device *dev,
struct vn_query_pool *pool);
#endif /* VN_QUERY_POOL_H */