1    type DescriptorSetLayoutBinding = struct
2        binding : u32
3        descriptor_type : DescriptorType
4        descriptor_count : u32
5        stage_flags : ShaderStageFlags
6        immutable_samplers : ptr VkSampler
7    
8    type DescriptorSetLayoutCreateInfo = struct
9        type : StructureType
10       next : Ptr
11       flags : DescriptorSetLayoutCreateFlags
12       binding_count : u32
13       bindings : ptr DescriptorSetLayoutBinding
14   
15   type DescriptorPoolSize = struct
16       type : DescriptorType
17       descriptor_count : u32
18   
19   type DescriptorPoolCreateInfo = struct
20       type : StructureType
21       next : Ptr
22       flags : DescriptorPoolCreateFlags
23       max_sets : u32
24       pool_size_count : u32
25       pool_sizes : ptr DescriptorPoolSize
26   
27   type DescriptorSetAllocateInfo = struct
28       type : StructureType
29       next : Ptr
30       descriptor_pool : VkDescriptorPool
31       descriptor_set_count : u32
32       set_layouts : ptr VkDescriptorSetLayout
33   
34   type DescriptorBufferInfo = struct
35       buffer : VkBuffer
36       offset : u64
37       range : u64
38   
39   type DescriptorImageInfo = struct
40       sampler : VkSampler
41       image_view : VkImageView
42       image_layout : ImageLayout
43   
44   type WriteDescriptorSet = struct
45       type : StructureType
46       next : Ptr
47       dst_set : VkDescriptorSet
48       dst_binding : u32
49       dst_array_element : u32
50       descriptor_count : u32
51       descriptor_type : DescriptorType
52       image_info : ptr DescriptorImageInfo
53       buffer_info : ptr DescriptorBufferInfo
54       texel_buffer_view : ptr VkBufferView
55   
56   type CopyDescriptorSet = struct
57       type : StructureType
58       next : Ptr
59       src_set : VkDescriptorSet
60       src_binding : u32
61       src_array_element : u32
62       dst_set : VkDescriptorSet
63       dst_binding : u32
64       dst_array_element : u32
65       descriptor_count : u32
66