1use crate::prelude::*;
2use crate::platform::fuchsia::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkBufferCollectionBufferCreateInfoFUCHSIA {
8 pub sType: VkStructureType,
9 pub pNext: *const c_void,
10 pub collection: VkBufferCollectionFUCHSIA,
11 pub index: u32,
12}
13
14#[derive(Clone, Copy)]
15#[repr(C)]
16pub struct VkBufferCollectionConstraintsInfoFUCHSIA {
17 pub sType: VkStructureType,
18 pub pNext: *const c_void,
19 pub minBufferCount: u32,
20 pub maxBufferCount: u32,
21 pub minBufferCountForCamping: u32,
22 pub minBufferCountForDedicatedSlack: u32,
23 pub minBufferCountForSharedSlack: u32,
24}
25
26#[derive(Clone, Copy)]
27#[repr(C)]
28pub struct VkBufferCollectionCreateInfoFUCHSIA {
29 pub sType: VkStructureType,
30 pub pNext: *const c_void,
31 pub collectionToken: zx_handle_t,
32}
33
34#[repr(C)]
35pub struct VkBufferCollectionFUCHSIA_T {
36 _data: (),
37 _marker: PhantomData<(*mut u8, PhantomPinned)>,
38}
39
40#[derive(Clone, Copy)]
41#[repr(C)]
42pub struct VkBufferCollectionImageCreateInfoFUCHSIA {
43 pub sType: VkStructureType,
44 pub pNext: *const c_void,
45 pub collection: VkBufferCollectionFUCHSIA,
46 pub index: u32,
47}
48
49#[derive(Clone, Copy)]
50#[repr(C)]
51pub struct VkBufferCollectionPropertiesFUCHSIA {
52 pub sType: VkStructureType,
53 pub pNext: *mut c_void,
54 pub memoryTypeBits: u32,
55 pub bufferCount: u32,
56 pub createInfoIndex: u32,
57 pub sysmemPixelFormat: u64,
58 pub formatFeatures: VkFormatFeatureFlags,
59 pub sysmemColorSpaceIndex: VkSysmemColorSpaceFUCHSIA,
60 pub samplerYcbcrConversionComponents: VkComponentMapping,
61 pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
62 pub suggestedYcbcrRange: VkSamplerYcbcrRange,
63 pub suggestedXChromaOffset: VkChromaLocation,
64 pub suggestedYChromaOffset: VkChromaLocation,
65}
66
67#[derive(Clone, Copy)]
68#[repr(C)]
69pub struct VkBufferConstraintsInfoFUCHSIA {
70 pub sType: VkStructureType,
71 pub pNext: *const c_void,
72 pub createInfo: VkBufferCreateInfo,
73 pub requiredFormatFeatures: VkFormatFeatureFlags,
74 pub bufferCollectionConstraints: VkBufferCollectionConstraintsInfoFUCHSIA,
75}
76
77#[derive(Clone, Copy)]
78#[repr(C)]
79pub struct VkImageConstraintsInfoFUCHSIA {
80 pub sType: VkStructureType,
81 pub pNext: *const c_void,
82 pub formatConstraintsCount: u32,
83 pub pFormatConstraints: *const VkImageFormatConstraintsInfoFUCHSIA,
84 pub bufferCollectionConstraints: VkBufferCollectionConstraintsInfoFUCHSIA,
85 pub flags: VkImageConstraintsInfoFlagsFUCHSIA,
86}
87
88#[derive(Clone, Copy)]
89#[repr(C)]
90pub struct VkImageFormatConstraintsInfoFUCHSIA {
91 pub sType: VkStructureType,
92 pub pNext: *const c_void,
93 pub imageCreateInfo: VkImageCreateInfo,
94 pub requiredFormatFeatures: VkFormatFeatureFlags,
95 pub flags: VkImageFormatConstraintsFlagsFUCHSIA,
96 pub sysmemPixelFormat: u64,
97 pub colorSpaceCount: u32,
98 pub pColorSpaces: *const VkSysmemColorSpaceFUCHSIA,
99}
100
101#[derive(Clone, Copy)]
102#[repr(C)]
103pub struct VkImagePipeSurfaceCreateInfoFUCHSIA {
104 pub sType: VkStructureType,
105 pub pNext: *const c_void,
106 pub flags: VkImagePipeSurfaceCreateFlagsFUCHSIA,
107 pub imagePipeHandle: zx_handle_t,
108}
109
110#[derive(Clone, Copy)]
111#[repr(C)]
112pub struct VkImportMemoryBufferCollectionFUCHSIA {
113 pub sType: VkStructureType,
114 pub pNext: *const c_void,
115 pub collection: VkBufferCollectionFUCHSIA,
116 pub index: u32,
117}
118
119#[derive(Clone, Copy)]
120#[repr(C)]
121pub struct VkImportMemoryZirconHandleInfoFUCHSIA {
122 pub sType: VkStructureType,
123 pub pNext: *const c_void,
124 pub handleType: VkExternalMemoryHandleTypeFlagBits,
125 pub handle: zx_handle_t,
126}
127
128#[derive(Clone, Copy)]
129#[repr(C)]
130pub struct VkImportSemaphoreZirconHandleInfoFUCHSIA {
131 pub sType: VkStructureType,
132 pub pNext: *const c_void,
133 pub semaphore: VkSemaphore,
134 pub flags: VkSemaphoreImportFlags,
135 pub handleType: VkExternalSemaphoreHandleTypeFlagBits,
136 pub zirconHandle: zx_handle_t,
137}
138
139#[derive(Clone, Copy)]
140#[repr(C)]
141pub struct VkMemoryGetZirconHandleInfoFUCHSIA {
142 pub sType: VkStructureType,
143 pub pNext: *const c_void,
144 pub memory: VkDeviceMemory,
145 pub handleType: VkExternalMemoryHandleTypeFlagBits,
146}
147
148#[derive(Clone, Copy)]
149#[repr(C)]
150pub struct VkMemoryZirconHandlePropertiesFUCHSIA {
151 pub sType: VkStructureType,
152 pub pNext: *mut c_void,
153 pub memoryTypeBits: u32,
154}
155
156#[derive(Clone, Copy)]
157#[repr(C)]
158pub struct VkSemaphoreGetZirconHandleInfoFUCHSIA {
159 pub sType: VkStructureType,
160 pub pNext: *const c_void,
161 pub semaphore: VkSemaphore,
162 pub handleType: VkExternalSemaphoreHandleTypeFlagBits,
163}
164
165#[derive(Clone, Copy)]
166#[repr(C)]
167pub struct VkSysmemColorSpaceFUCHSIA {
168 pub sType: VkStructureType,
169 pub pNext: *const c_void,
170 pub colorSpace: u32,
171}
172
173pub const VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT: VkDebugReportObjectTypeEXT = 1000366000;
174pub const VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: VkExternalMemoryHandleTypeFlagBits = 1 << 11;
175pub const VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: VkExternalSemaphoreHandleTypeFlagBits = 1 << 7;
176pub const VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_buffer_collection";
177pub const VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION: u32 = 2;
178pub const VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_external_memory";
179pub const VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1;
180pub const VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_external_semaphore";
181pub const VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION: u32 = 1;
182pub const VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_imagepipe_surface";
183pub const VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION: u32 = 1;
184pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 1;
185pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 0;
186pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 3;
187pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 2;
188pub const VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 4;
189pub const VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA: VkObjectType = 1000366000;
190pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: VkStructureType = 1000366005;
191pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366009;
192pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: VkStructureType = 1000366000;
193pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: VkStructureType = 1000366002;
194pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA: VkStructureType = 1000366003;
195pub const VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366004;
196pub const VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: VkStructureType = 1000214000;
197pub const VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366006;
198pub const VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366007;
199pub const VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: VkStructureType = 1000366001;
200pub const VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000364000;
201pub const VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000365000;
202pub const VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000364002;
203pub const VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: VkStructureType = 1000364001;
204pub const VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000365001;
205pub const VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA: VkStructureType = 1000366008;
206
207unsafe extern "system" {
208 #[cfg(any(doc, feature = "prototypes"))]
210 pub fn vkCreateBufferCollectionFUCHSIA(device: VkDevice, pCreateInfo: *const VkBufferCollectionCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pCollection: *mut VkBufferCollectionFUCHSIA) -> VkResult;
211
212 #[cfg(any(doc, feature = "prototypes"))]
214 pub fn vkCreateImagePipeSurfaceFUCHSIA(instance: VkInstance, pCreateInfo: *const VkImagePipeSurfaceCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
215
216 #[cfg(any(doc, feature = "prototypes"))]
218 pub fn vkDestroyBufferCollectionFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pAllocator: *const VkAllocationCallbacks);
219
220 #[cfg(any(doc, feature = "prototypes"))]
222 pub fn vkGetBufferCollectionPropertiesFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pProperties: *mut VkBufferCollectionPropertiesFUCHSIA) -> VkResult;
223
224 #[cfg(any(doc, feature = "prototypes"))]
226 pub fn vkGetMemoryZirconHandleFUCHSIA(device: VkDevice, pGetZirconHandleInfo: *const VkMemoryGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
227
228 #[cfg(any(doc, feature = "prototypes"))]
230 pub fn vkGetMemoryZirconHandlePropertiesFUCHSIA(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, zirconHandle: zx_handle_t, pMemoryZirconHandleProperties: *mut VkMemoryZirconHandlePropertiesFUCHSIA) -> VkResult;
231
232 #[cfg(any(doc, feature = "prototypes"))]
234 pub fn vkGetSemaphoreZirconHandleFUCHSIA(device: VkDevice, pGetZirconHandleInfo: *const VkSemaphoreGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
235
236 #[cfg(any(doc, feature = "prototypes"))]
238 pub fn vkImportSemaphoreZirconHandleFUCHSIA(device: VkDevice, pImportSemaphoreZirconHandleInfo: *const VkImportSemaphoreZirconHandleInfoFUCHSIA) -> VkResult;
239
240 #[cfg(any(doc, feature = "prototypes"))]
242 pub fn vkSetBufferCollectionBufferConstraintsFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pBufferConstraintsInfo: *const VkBufferConstraintsInfoFUCHSIA) -> VkResult;
243
244 #[cfg(any(doc, feature = "prototypes"))]
246 pub fn vkSetBufferCollectionImageConstraintsFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pImageConstraintsInfo: *const VkImageConstraintsInfoFUCHSIA) -> VkResult;
247}
248
249pub type NonNullPFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn(device: VkDevice, pCreateInfo: *const VkBufferCollectionCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pCollection: *mut VkBufferCollectionFUCHSIA) -> VkResult;
250pub type NonNullPFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkImagePipeSurfaceCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
251pub type NonNullPFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pAllocator: *const VkAllocationCallbacks);
252pub type NonNullPFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pProperties: *mut VkBufferCollectionPropertiesFUCHSIA) -> VkResult;
253pub type NonNullPFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pGetZirconHandleInfo: *const VkMemoryGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
254pub type NonNullPFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, zirconHandle: zx_handle_t, pMemoryZirconHandleProperties: *mut VkMemoryZirconHandlePropertiesFUCHSIA) -> VkResult;
255pub type NonNullPFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pGetZirconHandleInfo: *const VkSemaphoreGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
256pub type NonNullPFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pImportSemaphoreZirconHandleInfo: *const VkImportSemaphoreZirconHandleInfoFUCHSIA) -> VkResult;
257pub type NonNullPFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pBufferConstraintsInfo: *const VkBufferConstraintsInfoFUCHSIA) -> VkResult;
258pub type NonNullPFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pImageConstraintsInfo: *const VkImageConstraintsInfoFUCHSIA) -> VkResult;
259pub type NonNullVkBufferCollectionFUCHSIA = NonNull<VkBufferCollectionFUCHSIA_T>;
260pub type PFN_vkCreateBufferCollectionFUCHSIA = Option<NonNullPFN_vkCreateBufferCollectionFUCHSIA>;
261pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = Option<NonNullPFN_vkCreateImagePipeSurfaceFUCHSIA>;
262pub type PFN_vkDestroyBufferCollectionFUCHSIA = Option<NonNullPFN_vkDestroyBufferCollectionFUCHSIA>;
263pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = Option<NonNullPFN_vkGetBufferCollectionPropertiesFUCHSIA>;
264pub type PFN_vkGetMemoryZirconHandleFUCHSIA = Option<NonNullPFN_vkGetMemoryZirconHandleFUCHSIA>;
265pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = Option<NonNullPFN_vkGetMemoryZirconHandlePropertiesFUCHSIA>;
266pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = Option<NonNullPFN_vkGetSemaphoreZirconHandleFUCHSIA>;
267pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = Option<NonNullPFN_vkImportSemaphoreZirconHandleFUCHSIA>;
268pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = Option<NonNullPFN_vkSetBufferCollectionBufferConstraintsFUCHSIA>;
269pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = Option<NonNullPFN_vkSetBufferCollectionImageConstraintsFUCHSIA>;
270pub type VkBufferCollectionFUCHSIA = *mut VkBufferCollectionFUCHSIA_T;
271pub type VkImageConstraintsInfoFlagBitsFUCHSIA = VkFlags;
272pub type VkImageConstraintsInfoFlagsFUCHSIA = VkFlags;
273pub type VkImageFormatConstraintsFlagsFUCHSIA = VkFlags;
274pub type VkImagePipeSurfaceCreateFlagsFUCHSIA = VkFlags;