1 /* 2 * Copyright 2020 Google LLC 3 * SPDX-License-Identifier: MIT 4 */ 5 6 #ifndef VKR_DESCRIPTOR_SET_H 7 #define VKR_DESCRIPTOR_SET_H 8 9 #include "vkr_common.h" 10 11 struct vkr_descriptor_set_layout { 12 struct vkr_object base; 13 }; 14 VKR_DEFINE_OBJECT_CAST(descriptor_set_layout, 15 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, 16 VkDescriptorSetLayout) 17 18 struct vkr_descriptor_pool { 19 struct vkr_object base; 20 21 VkDescriptorPoolCreateFlags flags; 22 23 struct list_head descriptor_sets; 24 }; 25 VKR_DEFINE_OBJECT_CAST(descriptor_pool, VK_OBJECT_TYPE_DESCRIPTOR_POOL, VkDescriptorPool) 26 27 struct vkr_descriptor_set { 28 struct vkr_object base; 29 30 struct vkr_device *device; 31 }; 32 VKR_DEFINE_OBJECT_CAST(descriptor_set, VK_OBJECT_TYPE_DESCRIPTOR_SET, VkDescriptorSet) 33 34 struct vkr_descriptor_update_template { 35 struct vkr_object base; 36 }; 37 VKR_DEFINE_OBJECT_CAST(descriptor_update_template, 38 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, 39 VkDescriptorUpdateTemplate) 40 41 void 42 vkr_context_init_descriptor_set_layout_dispatch(struct vkr_context *ctx); 43 44 void 45 vkr_context_init_descriptor_pool_dispatch(struct vkr_context *ctx); 46 47 void 48 vkr_context_init_descriptor_set_dispatch(struct vkr_context *ctx); 49 50 void 51 vkr_context_init_descriptor_update_template_dispatch(struct vkr_context *ctx); 52 53 #endif /* VKR_DESCRIPTOR_SET_H */ 54