pvr: break out queries to separate header

Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37432>
This commit is contained in:
Erik Faye-Lund 2025-09-03 09:53:30 +02:00 committed by Marge Bot
parent 9d2478d353
commit b51fac6212
7 changed files with 80 additions and 50 deletions

View file

@ -51,6 +51,7 @@
#include "pvr_pass.h" #include "pvr_pass.h"
#include "pvr_pds.h" #include "pvr_pds.h"
#include "pvr_private.h" #include "pvr_private.h"
#include "pvr_query.h"
#include "pvr_tex_state.h" #include "pvr_tex_state.h"
#include "pvr_types.h" #include "pvr_types.h"
#include "pvr_usc.h" #include "pvr_usc.h"

View file

@ -63,6 +63,7 @@
#include "pvr_pass.h" #include "pvr_pass.h"
#include "pvr_pds.h" #include "pvr_pds.h"
#include "pvr_private.h" #include "pvr_private.h"
#include "pvr_query.h"
#include "pvr_queue.h" #include "pvr_queue.h"
#include "pvr_robustness.h" #include "pvr_robustness.h"
#include "pvr_tex_state.h" #include "pvr_tex_state.h"

View file

@ -40,6 +40,7 @@
#include "pvr_job_render.h" #include "pvr_job_render.h"
#include "pvr_pds.h" #include "pvr_pds.h"
#include "pvr_private.h" #include "pvr_private.h"
#include "pvr_query.h"
#include "pvr_rogue_fw.h" #include "pvr_rogue_fw.h"
#include "pvr_types.h" #include "pvr_types.h"
#include "pvr_winsys.h" #include "pvr_winsys.h"

View file

@ -186,20 +186,6 @@ struct pvr_graphics_pipeline {
} shader_state; } shader_state;
}; };
struct pvr_query_pool {
struct vk_object_base base;
/* Stride of result_buffer to get to the start of the results for the next
* Phantom.
*/
uint32_t result_stride;
uint32_t query_count;
struct pvr_suballoc_bo *result_buffer;
struct pvr_suballoc_bo *availability_buffer;
};
struct pvr_private_compute_pipeline { struct pvr_private_compute_pipeline {
/* Used by pvr_compute_update_kernel_private(). */ /* Used by pvr_compute_update_kernel_private(). */
uint32_t pds_code_offset; uint32_t pds_code_offset;
@ -221,35 +207,6 @@ struct pvr_private_compute_pipeline {
pvr_dev_addr_t const_buffer_addr; pvr_dev_addr_t const_buffer_addr;
}; };
struct pvr_query_info {
enum pvr_query_type type;
union {
struct {
uint32_t num_query_indices;
struct pvr_suballoc_bo *index_bo;
uint32_t num_queries;
struct pvr_suballoc_bo *availability_bo;
} availability_write;
struct {
VkQueryPool query_pool;
uint32_t first_query;
uint32_t query_count;
} reset_query_pool;
struct {
VkQueryPool query_pool;
uint32_t first_query;
uint32_t query_count;
VkBuffer dst_buffer;
VkDeviceSize dst_offset;
VkDeviceSize stride;
VkQueryResultFlags flags;
} copy_query_results;
};
};
VkResult pvr_wsi_init(struct pvr_physical_device *pdevice); VkResult pvr_wsi_init(struct pvr_physical_device *pdevice);
void pvr_wsi_finish(struct pvr_physical_device *pdevice); void pvr_wsi_finish(struct pvr_physical_device *pdevice);
@ -335,9 +292,6 @@ pvr_stage_mask_dst(VkPipelineStageFlags2 stage_mask)
size_t pvr_pds_get_max_descriptor_upload_const_map_size_in_bytes(void); size_t pvr_pds_get_max_descriptor_upload_const_map_size_in_bytes(void);
VkResult pvr_device_create_compute_query_programs(struct pvr_device *device);
void pvr_device_destroy_compute_query_programs(struct pvr_device *device);
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_descriptor_set_layout, VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_descriptor_set_layout,
vk.base, vk.base,
VkDescriptorSetLayout, VkDescriptorSetLayout,
@ -354,10 +308,6 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_pipeline,
base, base,
VkPipeline, VkPipeline,
VK_OBJECT_TYPE_PIPELINE) VK_OBJECT_TYPE_PIPELINE)
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_query_pool,
base,
VkQueryPool,
VK_OBJECT_TYPE_QUERY_POOL)
/** /**
* Print a FINISHME message, including its source location. * Print a FINISHME message, including its source location.

View file

@ -24,6 +24,8 @@
* Copyright © 2015 Intel Corporation * Copyright © 2015 Intel Corporation
*/ */
#include "pvr_query.h"
#include <assert.h> #include <assert.h>
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>

View file

@ -0,0 +1,74 @@
/*
* Copyright © 2022 Imagination Technologies Ltd.
*
* based in part on anv driver which is:
* Copyright © 2015 Intel Corporation
*
* based in part on radv driver which is:
* Copyright © 2016 Red Hat.
* Copyright © 2016 Bas Nieuwenhuizen
*
* SPDX-License-Identifier: MIT
*/
#ifndef PVR_QUERY_H
#define PVR_QUERY_H
#include "vk_object.h"
#include "pvr_common.h"
struct pvr_device;
struct pvr_query_pool {
struct vk_object_base base;
/* Stride of result_buffer to get to the start of the results for the next
* Phantom.
*/
uint32_t result_stride;
uint32_t query_count;
struct pvr_suballoc_bo *result_buffer;
struct pvr_suballoc_bo *availability_buffer;
};
struct pvr_query_info {
enum pvr_query_type type;
union {
struct {
uint32_t num_query_indices;
struct pvr_suballoc_bo *index_bo;
uint32_t num_queries;
struct pvr_suballoc_bo *availability_bo;
} availability_write;
struct {
VkQueryPool query_pool;
uint32_t first_query;
uint32_t query_count;
} reset_query_pool;
struct {
VkQueryPool query_pool;
uint32_t first_query;
uint32_t query_count;
VkBuffer dst_buffer;
VkDeviceSize dst_offset;
VkDeviceSize stride;
VkQueryResultFlags flags;
} copy_query_results;
};
};
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_query_pool,
base,
VkQueryPool,
VK_OBJECT_TYPE_QUERY_POOL)
VkResult pvr_device_create_compute_query_programs(struct pvr_device *device);
void pvr_device_destroy_compute_query_programs(struct pvr_device *device);
#endif /* PVR_QUERY_H*/

View file

@ -38,6 +38,7 @@
#include "pvr_formats.h" #include "pvr_formats.h"
#include "pvr_pds.h" #include "pvr_pds.h"
#include "pvr_private.h" #include "pvr_private.h"
#include "pvr_query.h"
#include "pvr_tex_state.h" #include "pvr_tex_state.h"
#include "pvr_types.h" #include "pvr_types.h"
#include "vk_alloc.h" #include "vk_alloc.h"