panvk: Move panvk_descriptor_{set,pool} definitions to panvk_descriptor_set.h

Along with the various SW-descriptor definitions.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28170>
This commit is contained in:
Boris Brezillon
2023-12-19 16:27:41 +01:00
committed by Marge Bot
parent 4a16aaafb5
commit a944d7270b
4 changed files with 89 additions and 66 deletions
@@ -24,6 +24,8 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#include "panvk_descriptor_set.h"
#include "panvk_private.h"
#include "panvk_sampler.h"
@@ -0,0 +1,85 @@
/*
* Copyright © 2021 Collabora Ltd.
* SPDX-License-Identifier: MIT
*/
#ifndef PANVK_DESCRIPTOR_SET_H
#define PANVK_DESCRIPTOR_SET_H
#include <stdint.h>
#include "vk_object.h"
struct panvk_descriptor_pool;
struct panvk_descriptor_set_layout;
struct panvk_priv_bo;
struct panvk_desc_pool_counters {
unsigned samplers;
unsigned combined_image_samplers;
unsigned sampled_images;
unsigned storage_images;
unsigned uniform_texel_bufs;
unsigned storage_texel_bufs;
unsigned input_attachments;
unsigned uniform_bufs;
unsigned storage_bufs;
unsigned uniform_dyn_bufs;
unsigned storage_dyn_bufs;
unsigned sets;
};
struct panvk_descriptor_pool {
struct vk_object_base base;
struct panvk_desc_pool_counters max;
struct panvk_desc_pool_counters cur;
struct panvk_descriptor_set *sets;
};
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_pool, base, VkDescriptorPool,
VK_OBJECT_TYPE_DESCRIPTOR_POOL)
/* This has to match nir_address_format_64bit_bounded_global */
struct panvk_ssbo_addr {
uint64_t base_addr;
uint32_t size;
uint32_t zero; /* Must be zero! */
};
struct panvk_bview_desc {
uint32_t elems;
};
struct panvk_image_desc {
uint16_t width;
uint16_t height;
uint16_t depth;
uint8_t levels;
uint8_t samples;
};
struct panvk_buffer_desc {
struct panvk_buffer *buffer;
VkDeviceSize offset;
VkDeviceSize size;
};
struct panvk_descriptor_set {
struct vk_object_base base;
struct panvk_descriptor_pool *pool;
const struct panvk_descriptor_set_layout *layout;
struct panvk_buffer_desc *dyn_ssbos;
void *ubos;
struct panvk_buffer_desc *dyn_ubos;
void *samplers;
void *textures;
void *img_attrib_bufs;
uint32_t *img_fmts;
struct panvk_priv_bo *desc_bo;
};
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_set, base, VkDescriptorSet,
VK_OBJECT_TYPE_DESCRIPTOR_SET)
#endif
+1 -54
View File
@@ -67,6 +67,7 @@
#include "pan_desc.h"
#include "pan_jc.h"
#include "pan_texture.h"
#include "panvk_descriptor_set.h"
#include "panvk_macros.h"
#include "panvk_mempool.h"
#include "panvk_pipeline.h"
@@ -336,27 +337,6 @@ struct panvk_cmd_event_op {
struct panvk_event *event;
};
struct panvk_buffer_desc {
struct panvk_buffer *buffer;
VkDeviceSize offset;
VkDeviceSize size;
};
struct panvk_descriptor_set {
struct vk_object_base base;
struct panvk_descriptor_pool *pool;
const struct panvk_descriptor_set_layout *layout;
struct panvk_buffer_desc *dyn_ssbos;
void *ubos;
struct panvk_buffer_desc *dyn_ubos;
void *samplers;
void *textures;
void *img_attrib_bufs;
uint32_t *img_fmts;
struct panvk_priv_bo *desc_bo;
};
#define MAX_SETS 4
struct panvk_descriptor_set_binding_layout {
@@ -484,28 +464,6 @@ panvk_pipeline_layout_ubo_index(const struct panvk_pipeline_layout *layout,
array_index;
}
struct panvk_desc_pool_counters {
unsigned samplers;
unsigned combined_image_samplers;
unsigned sampled_images;
unsigned storage_images;
unsigned uniform_texel_bufs;
unsigned storage_texel_bufs;
unsigned input_attachments;
unsigned uniform_bufs;
unsigned storage_bufs;
unsigned uniform_dyn_bufs;
unsigned storage_dyn_bufs;
unsigned sets;
};
struct panvk_descriptor_pool {
struct vk_object_base base;
struct panvk_desc_pool_counters max;
struct panvk_desc_pool_counters cur;
struct panvk_descriptor_set *sets;
};
enum panvk_dynamic_state_bits {
PANVK_DYNAMIC_VIEWPORT = 1 << 0,
PANVK_DYNAMIC_SCISSOR = 1 << 1,
@@ -522,13 +480,6 @@ enum panvk_dynamic_state_bits {
PANVK_DYNAMIC_ALL = (1 << 12) - 1,
};
/* This has to match nir_address_format_64bit_bounded_global */
struct panvk_ssbo_addr {
uint64_t base_addr;
uint32_t size;
uint32_t zero; /* Must be zero! */
};
union panvk_sysval_vec4 {
float f32[4];
uint32_t u32[4];
@@ -760,10 +711,6 @@ VK_DEFINE_HANDLE_CASTS(panvk_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_cmd_pool, vk.base, VkCommandPool,
VK_OBJECT_TYPE_COMMAND_POOL)
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_pool, base, VkDescriptorPool,
VK_OBJECT_TYPE_DESCRIPTOR_POOL)
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_set, base, VkDescriptorSet,
VK_OBJECT_TYPE_DESCRIPTOR_SET)
VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_descriptor_set_layout, vk.base,
VkDescriptorSetLayout,
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)
+1 -12
View File
@@ -46,14 +46,11 @@
#include "panvk_buffer.h"
#include "panvk_cs.h"
#include "panvk_descriptor_set.h"
#include "panvk_sampler.h"
#define PANVK_DESCRIPTOR_ALIGN 8
struct panvk_bview_desc {
uint32_t elems;
};
static void
panvk_fill_bview_desc(struct panvk_bview_desc *desc,
struct panvk_buffer_view *view)
@@ -61,14 +58,6 @@ panvk_fill_bview_desc(struct panvk_bview_desc *desc,
desc->elems = view->vk.elements;
}
struct panvk_image_desc {
uint16_t width;
uint16_t height;
uint16_t depth;
uint8_t levels;
uint8_t samples;
};
static void
panvk_fill_image_desc(struct panvk_image_desc *desc,
struct panvk_image_view *view)