Path: blob/21.2-virgl/src/virtio/vulkan/vn_descriptor_set.h
4560 views
/*1* Copyright 2019 Google LLC2* SPDX-License-Identifier: MIT3*4* based in part on anv and radv which are:5* Copyright © 2015 Intel Corporation6* Copyright © 2016 Red Hat.7* Copyright © 2016 Bas Nieuwenhuizen8*/910#ifndef VN_DESCRIPTOR_SET_H11#define VN_DESCRIPTOR_SET_H1213#include "vn_common.h"1415struct vn_descriptor_set_layout_binding {16bool has_immutable_samplers;17};1819struct vn_descriptor_set_layout {20struct vn_object_base base;21struct vn_descriptor_set_layout_binding bindings[];22};23VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_set_layout,24base.base,25VkDescriptorSetLayout,26VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)2728struct vn_descriptor_pool {29struct vn_object_base base;3031VkAllocationCallbacks allocator;32struct list_head descriptor_sets;33};34VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_pool,35base.base,36VkDescriptorPool,37VK_OBJECT_TYPE_DESCRIPTOR_POOL)3839struct vn_update_descriptor_sets {40uint32_t write_count;41VkWriteDescriptorSet *writes;42VkDescriptorImageInfo *images;43VkDescriptorBufferInfo *buffers;44VkBufferView *views;45};4647struct vn_descriptor_set {48struct vn_object_base base;4950const struct vn_descriptor_set_layout *layout;51struct list_head head;52};53VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_set,54base.base,55VkDescriptorSet,56VK_OBJECT_TYPE_DESCRIPTOR_SET)5758struct vn_descriptor_update_template_entry {59size_t offset;60size_t stride;61};6263struct vn_descriptor_update_template {64struct vn_object_base base;6566mtx_t mutex;67struct vn_update_descriptor_sets *update;6869struct vn_descriptor_update_template_entry entries[];70};71VK_DEFINE_NONDISP_HANDLE_CASTS(vn_descriptor_update_template,72base.base,73VkDescriptorUpdateTemplate,74VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE)7576#endif /* VN_DESCRIPTOR_SET_H */777879