winevulkan: Support various device extensions.
[wine.git] / dlls / winevulkan / vulkan_thunks.h
blob803d6210196d061911ac5629c12c4d86880c8f84
1 /* Automatically generated from Vulkan vk.xml; DO NOT EDIT! */
3 #ifndef __WINE_VULKAN_THUNKS_H
4 #define __WINE_VULKAN_THUNKS_H
6 /* Perform vulkan struct conversion on 32-bit x86 platforms. */
7 #if defined(__i386__)
8 #define USE_STRUCT_CONVERSION
9 #endif
11 /* For use by vk_icdGetInstanceProcAddr / vkGetInstanceProcAddr */
12 void *wine_vk_get_device_proc_addr(const char *name) DECLSPEC_HIDDEN;
13 void *wine_vk_get_instance_proc_addr(const char *name) DECLSPEC_HIDDEN;
15 BOOL wine_vk_device_extension_supported(const char *name) DECLSPEC_HIDDEN;
16 BOOL wine_vk_instance_extension_supported(const char *name) DECLSPEC_HIDDEN;
18 /* Functions for which we have custom implementations outside of the thunks. */
19 VkResult WINAPI wine_vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t *pImageIndex) DECLSPEC_HIDDEN;
20 VkResult WINAPI wine_vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo, VkCommandBuffer *pCommandBuffers) DECLSPEC_HIDDEN;
21 void WINAPI wine_vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer *pCommandBuffers) DECLSPEC_HIDDEN;
22 VkResult WINAPI wine_vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDevice *pDevice) DECLSPEC_HIDDEN;
23 VkResult WINAPI wine_vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain) DECLSPEC_HIDDEN;
24 VkResult WINAPI wine_vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) DECLSPEC_HIDDEN;
25 void WINAPI wine_vkDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator) DECLSPEC_HIDDEN;
26 void WINAPI wine_vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks *pAllocator) DECLSPEC_HIDDEN;
27 void WINAPI wine_vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks *pAllocator) DECLSPEC_HIDDEN;
28 void WINAPI wine_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks *pAllocator) DECLSPEC_HIDDEN;
29 VkResult WINAPI wine_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties) DECLSPEC_HIDDEN;
30 VkResult WINAPI wine_vkEnumeratePhysicalDevices(VkInstance instance, uint32_t *pPhysicalDeviceCount, VkPhysicalDevice *pPhysicalDevices) DECLSPEC_HIDDEN;
31 void WINAPI wine_vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer *pCommandBuffers) DECLSPEC_HIDDEN;
32 PFN_vkVoidFunction WINAPI wine_vkGetDeviceProcAddr(VkDevice device, const char *pName) DECLSPEC_HIDDEN;
33 void WINAPI wine_vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue) DECLSPEC_HIDDEN;
34 VkResult WINAPI wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR *pSurfaceCapabilities) DECLSPEC_HIDDEN;
35 VkResult WINAPI wine_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats) DECLSPEC_HIDDEN;
36 VkResult WINAPI wine_vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes) DECLSPEC_HIDDEN;
37 VkResult WINAPI wine_vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32 *pSupported) DECLSPEC_HIDDEN;
38 VkBool32 WINAPI wine_vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) DECLSPEC_HIDDEN;
39 VkResult WINAPI wine_vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount, VkImage *pSwapchainImages) DECLSPEC_HIDDEN;
40 VkResult WINAPI wine_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) DECLSPEC_HIDDEN;
41 VkResult WINAPI wine_vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence) DECLSPEC_HIDDEN;
43 typedef struct VkCommandBufferAllocateInfo_host
45 VkStructureType sType;
46 const void *pNext;
47 VkCommandPool commandPool;
48 VkCommandBufferLevel level;
49 uint32_t commandBufferCount;
50 } VkCommandBufferAllocateInfo_host;
52 typedef struct VkDescriptorSetAllocateInfo_host
54 VkStructureType sType;
55 const void *pNext;
56 VkDescriptorPool descriptorPool;
57 uint32_t descriptorSetCount;
58 const VkDescriptorSetLayout *pSetLayouts;
59 } VkDescriptorSetAllocateInfo_host;
61 typedef struct VkMemoryAllocateInfo_host
63 VkStructureType sType;
64 const void *pNext;
65 VkDeviceSize allocationSize;
66 uint32_t memoryTypeIndex;
67 } VkMemoryAllocateInfo_host;
69 typedef struct VkCommandBufferInheritanceInfo_host
71 VkStructureType sType;
72 const void *pNext;
73 VkRenderPass renderPass;
74 uint32_t subpass;
75 VkFramebuffer framebuffer;
76 VkBool32 occlusionQueryEnable;
77 VkQueryControlFlags queryFlags;
78 VkQueryPipelineStatisticFlags pipelineStatistics;
79 } VkCommandBufferInheritanceInfo_host;
81 typedef struct VkCommandBufferBeginInfo_host
83 VkStructureType sType;
84 const void *pNext;
85 VkCommandBufferUsageFlags flags;
86 const VkCommandBufferInheritanceInfo_host *pInheritanceInfo;
87 } VkCommandBufferBeginInfo_host;
89 typedef struct VkRenderPassBeginInfo_host
91 VkStructureType sType;
92 const void *pNext;
93 VkRenderPass renderPass;
94 VkFramebuffer framebuffer;
95 VkRect2D renderArea;
96 uint32_t clearValueCount;
97 const VkClearValue *pClearValues;
98 } VkRenderPassBeginInfo_host;
100 typedef struct VkBufferCopy_host
102 VkDeviceSize srcOffset;
103 VkDeviceSize dstOffset;
104 VkDeviceSize size;
105 } VkBufferCopy_host;
107 typedef struct VkBufferImageCopy_host
109 VkDeviceSize bufferOffset;
110 uint32_t bufferRowLength;
111 uint32_t bufferImageHeight;
112 VkImageSubresourceLayers imageSubresource;
113 VkOffset3D imageOffset;
114 VkExtent3D imageExtent;
115 } VkBufferImageCopy_host;
117 typedef struct VkBufferMemoryBarrier_host
119 VkStructureType sType;
120 const void *pNext;
121 VkAccessFlags srcAccessMask;
122 VkAccessFlags dstAccessMask;
123 uint32_t srcQueueFamilyIndex;
124 uint32_t dstQueueFamilyIndex;
125 VkBuffer buffer;
126 VkDeviceSize offset;
127 VkDeviceSize size;
128 } VkBufferMemoryBarrier_host;
130 typedef struct VkImageMemoryBarrier_host
132 VkStructureType sType;
133 const void *pNext;
134 VkAccessFlags srcAccessMask;
135 VkAccessFlags dstAccessMask;
136 VkImageLayout oldLayout;
137 VkImageLayout newLayout;
138 uint32_t srcQueueFamilyIndex;
139 uint32_t dstQueueFamilyIndex;
140 VkImage image;
141 VkImageSubresourceRange subresourceRange;
142 } VkImageMemoryBarrier_host;
144 typedef struct VkDescriptorImageInfo_host
146 VkSampler sampler;
147 VkImageView imageView;
148 VkImageLayout imageLayout;
149 } VkDescriptorImageInfo_host;
151 typedef struct VkDescriptorBufferInfo_host
153 VkBuffer buffer;
154 VkDeviceSize offset;
155 VkDeviceSize range;
156 } VkDescriptorBufferInfo_host;
158 typedef struct VkWriteDescriptorSet_host
160 VkStructureType sType;
161 const void *pNext;
162 VkDescriptorSet dstSet;
163 uint32_t dstBinding;
164 uint32_t dstArrayElement;
165 uint32_t descriptorCount;
166 VkDescriptorType descriptorType;
167 const VkDescriptorImageInfo_host *pImageInfo;
168 const VkDescriptorBufferInfo_host *pBufferInfo;
169 const VkBufferView *pTexelBufferView;
170 } VkWriteDescriptorSet_host;
172 typedef struct VkBufferCreateInfo_host
174 VkStructureType sType;
175 const void *pNext;
176 VkBufferCreateFlags flags;
177 VkDeviceSize size;
178 VkBufferUsageFlags usage;
179 VkSharingMode sharingMode;
180 uint32_t queueFamilyIndexCount;
181 const uint32_t *pQueueFamilyIndices;
182 } VkBufferCreateInfo_host;
184 typedef struct VkBufferViewCreateInfo_host
186 VkStructureType sType;
187 const void *pNext;
188 VkBufferViewCreateFlags flags;
189 VkBuffer buffer;
190 VkFormat format;
191 VkDeviceSize offset;
192 VkDeviceSize range;
193 } VkBufferViewCreateInfo_host;
195 typedef struct VkPipelineShaderStageCreateInfo_host
197 VkStructureType sType;
198 const void *pNext;
199 VkPipelineShaderStageCreateFlags flags;
200 VkShaderStageFlagBits stage;
201 VkShaderModule module;
202 const char *pName;
203 const VkSpecializationInfo *pSpecializationInfo;
204 } VkPipelineShaderStageCreateInfo_host;
206 typedef struct VkComputePipelineCreateInfo_host
208 VkStructureType sType;
209 const void *pNext;
210 VkPipelineCreateFlags flags;
211 VkPipelineShaderStageCreateInfo_host stage;
212 VkPipelineLayout layout;
213 VkPipeline basePipelineHandle;
214 int32_t basePipelineIndex;
215 } VkComputePipelineCreateInfo_host;
217 typedef struct VkDescriptorUpdateTemplateCreateInfoKHR_host
219 VkStructureType sType;
220 void *pNext;
221 VkDescriptorUpdateTemplateCreateFlagsKHR flags;
222 uint32_t descriptorUpdateEntryCount;
223 const VkDescriptorUpdateTemplateEntryKHR *pDescriptorUpdateEntries;
224 VkDescriptorUpdateTemplateTypeKHR templateType;
225 VkDescriptorSetLayout descriptorSetLayout;
226 VkPipelineBindPoint pipelineBindPoint;
227 VkPipelineLayout pipelineLayout;
228 uint32_t set;
229 } VkDescriptorUpdateTemplateCreateInfoKHR_host;
231 typedef struct VkFramebufferCreateInfo_host
233 VkStructureType sType;
234 const void *pNext;
235 VkFramebufferCreateFlags flags;
236 VkRenderPass renderPass;
237 uint32_t attachmentCount;
238 const VkImageView *pAttachments;
239 uint32_t width;
240 uint32_t height;
241 uint32_t layers;
242 } VkFramebufferCreateInfo_host;
244 typedef struct VkGraphicsPipelineCreateInfo_host
246 VkStructureType sType;
247 const void *pNext;
248 VkPipelineCreateFlags flags;
249 uint32_t stageCount;
250 const VkPipelineShaderStageCreateInfo_host *pStages;
251 const VkPipelineVertexInputStateCreateInfo *pVertexInputState;
252 const VkPipelineInputAssemblyStateCreateInfo *pInputAssemblyState;
253 const VkPipelineTessellationStateCreateInfo *pTessellationState;
254 const VkPipelineViewportStateCreateInfo *pViewportState;
255 const VkPipelineRasterizationStateCreateInfo *pRasterizationState;
256 const VkPipelineMultisampleStateCreateInfo *pMultisampleState;
257 const VkPipelineDepthStencilStateCreateInfo *pDepthStencilState;
258 const VkPipelineColorBlendStateCreateInfo *pColorBlendState;
259 const VkPipelineDynamicStateCreateInfo *pDynamicState;
260 VkPipelineLayout layout;
261 VkRenderPass renderPass;
262 uint32_t subpass;
263 VkPipeline basePipelineHandle;
264 int32_t basePipelineIndex;
265 } VkGraphicsPipelineCreateInfo_host;
267 typedef struct VkImageViewCreateInfo_host
269 VkStructureType sType;
270 const void *pNext;
271 VkImageViewCreateFlags flags;
272 VkImage image;
273 VkImageViewType viewType;
274 VkFormat format;
275 VkComponentMapping components;
276 VkImageSubresourceRange subresourceRange;
277 } VkImageViewCreateInfo_host;
279 typedef struct VkSwapchainCreateInfoKHR_host
281 VkStructureType sType;
282 const void *pNext;
283 VkSwapchainCreateFlagsKHR flags;
284 VkSurfaceKHR surface;
285 uint32_t minImageCount;
286 VkFormat imageFormat;
287 VkColorSpaceKHR imageColorSpace;
288 VkExtent2D imageExtent;
289 uint32_t imageArrayLayers;
290 VkImageUsageFlags imageUsage;
291 VkSharingMode imageSharingMode;
292 uint32_t queueFamilyIndexCount;
293 const uint32_t *pQueueFamilyIndices;
294 VkSurfaceTransformFlagBitsKHR preTransform;
295 VkCompositeAlphaFlagBitsKHR compositeAlpha;
296 VkPresentModeKHR presentMode;
297 VkBool32 clipped;
298 VkSwapchainKHR oldSwapchain;
299 } VkSwapchainCreateInfoKHR_host;
301 typedef struct VkMappedMemoryRange_host
303 VkStructureType sType;
304 const void *pNext;
305 VkDeviceMemory memory;
306 VkDeviceSize offset;
307 VkDeviceSize size;
308 } VkMappedMemoryRange_host;
310 typedef struct VkMemoryRequirements_host
312 VkDeviceSize size;
313 VkDeviceSize alignment;
314 uint32_t memoryTypeBits;
315 } VkMemoryRequirements_host;
317 typedef struct VkSubresourceLayout_host
319 VkDeviceSize offset;
320 VkDeviceSize size;
321 VkDeviceSize rowPitch;
322 VkDeviceSize arrayPitch;
323 VkDeviceSize depthPitch;
324 } VkSubresourceLayout_host;
326 typedef struct VkImageFormatProperties_host
328 VkExtent3D maxExtent;
329 uint32_t maxMipLevels;
330 uint32_t maxArrayLayers;
331 VkSampleCountFlags sampleCounts;
332 VkDeviceSize maxResourceSize;
333 } VkImageFormatProperties_host;
335 typedef struct VkImageFormatProperties2KHR_host
337 VkStructureType sType;
338 void *pNext;
339 VkImageFormatProperties_host imageFormatProperties;
340 } VkImageFormatProperties2KHR_host;
342 typedef struct VkMemoryHeap_host
344 VkDeviceSize size;
345 VkMemoryHeapFlags flags;
346 } VkMemoryHeap_host;
348 typedef struct VkPhysicalDeviceMemoryProperties_host
350 uint32_t memoryTypeCount;
351 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
352 uint32_t memoryHeapCount;
353 VkMemoryHeap_host memoryHeaps[VK_MAX_MEMORY_HEAPS];
354 } VkPhysicalDeviceMemoryProperties_host;
356 typedef struct VkPhysicalDeviceMemoryProperties2KHR_host
358 VkStructureType sType;
359 void *pNext;
360 VkPhysicalDeviceMemoryProperties_host memoryProperties;
361 } VkPhysicalDeviceMemoryProperties2KHR_host;
363 typedef struct VkPhysicalDeviceLimits_host
365 uint32_t maxImageDimension1D;
366 uint32_t maxImageDimension2D;
367 uint32_t maxImageDimension3D;
368 uint32_t maxImageDimensionCube;
369 uint32_t maxImageArrayLayers;
370 uint32_t maxTexelBufferElements;
371 uint32_t maxUniformBufferRange;
372 uint32_t maxStorageBufferRange;
373 uint32_t maxPushConstantsSize;
374 uint32_t maxMemoryAllocationCount;
375 uint32_t maxSamplerAllocationCount;
376 VkDeviceSize bufferImageGranularity;
377 VkDeviceSize sparseAddressSpaceSize;
378 uint32_t maxBoundDescriptorSets;
379 uint32_t maxPerStageDescriptorSamplers;
380 uint32_t maxPerStageDescriptorUniformBuffers;
381 uint32_t maxPerStageDescriptorStorageBuffers;
382 uint32_t maxPerStageDescriptorSampledImages;
383 uint32_t maxPerStageDescriptorStorageImages;
384 uint32_t maxPerStageDescriptorInputAttachments;
385 uint32_t maxPerStageResources;
386 uint32_t maxDescriptorSetSamplers;
387 uint32_t maxDescriptorSetUniformBuffers;
388 uint32_t maxDescriptorSetUniformBuffersDynamic;
389 uint32_t maxDescriptorSetStorageBuffers;
390 uint32_t maxDescriptorSetStorageBuffersDynamic;
391 uint32_t maxDescriptorSetSampledImages;
392 uint32_t maxDescriptorSetStorageImages;
393 uint32_t maxDescriptorSetInputAttachments;
394 uint32_t maxVertexInputAttributes;
395 uint32_t maxVertexInputBindings;
396 uint32_t maxVertexInputAttributeOffset;
397 uint32_t maxVertexInputBindingStride;
398 uint32_t maxVertexOutputComponents;
399 uint32_t maxTessellationGenerationLevel;
400 uint32_t maxTessellationPatchSize;
401 uint32_t maxTessellationControlPerVertexInputComponents;
402 uint32_t maxTessellationControlPerVertexOutputComponents;
403 uint32_t maxTessellationControlPerPatchOutputComponents;
404 uint32_t maxTessellationControlTotalOutputComponents;
405 uint32_t maxTessellationEvaluationInputComponents;
406 uint32_t maxTessellationEvaluationOutputComponents;
407 uint32_t maxGeometryShaderInvocations;
408 uint32_t maxGeometryInputComponents;
409 uint32_t maxGeometryOutputComponents;
410 uint32_t maxGeometryOutputVertices;
411 uint32_t maxGeometryTotalOutputComponents;
412 uint32_t maxFragmentInputComponents;
413 uint32_t maxFragmentOutputAttachments;
414 uint32_t maxFragmentDualSrcAttachments;
415 uint32_t maxFragmentCombinedOutputResources;
416 uint32_t maxComputeSharedMemorySize;
417 uint32_t maxComputeWorkGroupCount[3];
418 uint32_t maxComputeWorkGroupInvocations;
419 uint32_t maxComputeWorkGroupSize[3];
420 uint32_t subPixelPrecisionBits;
421 uint32_t subTexelPrecisionBits;
422 uint32_t mipmapPrecisionBits;
423 uint32_t maxDrawIndexedIndexValue;
424 uint32_t maxDrawIndirectCount;
425 float maxSamplerLodBias;
426 float maxSamplerAnisotropy;
427 uint32_t maxViewports;
428 uint32_t maxViewportDimensions[2];
429 float viewportBoundsRange[2];
430 uint32_t viewportSubPixelBits;
431 size_t minMemoryMapAlignment;
432 VkDeviceSize minTexelBufferOffsetAlignment;
433 VkDeviceSize minUniformBufferOffsetAlignment;
434 VkDeviceSize minStorageBufferOffsetAlignment;
435 int32_t minTexelOffset;
436 uint32_t maxTexelOffset;
437 int32_t minTexelGatherOffset;
438 uint32_t maxTexelGatherOffset;
439 float minInterpolationOffset;
440 float maxInterpolationOffset;
441 uint32_t subPixelInterpolationOffsetBits;
442 uint32_t maxFramebufferWidth;
443 uint32_t maxFramebufferHeight;
444 uint32_t maxFramebufferLayers;
445 VkSampleCountFlags framebufferColorSampleCounts;
446 VkSampleCountFlags framebufferDepthSampleCounts;
447 VkSampleCountFlags framebufferStencilSampleCounts;
448 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
449 uint32_t maxColorAttachments;
450 VkSampleCountFlags sampledImageColorSampleCounts;
451 VkSampleCountFlags sampledImageIntegerSampleCounts;
452 VkSampleCountFlags sampledImageDepthSampleCounts;
453 VkSampleCountFlags sampledImageStencilSampleCounts;
454 VkSampleCountFlags storageImageSampleCounts;
455 uint32_t maxSampleMaskWords;
456 VkBool32 timestampComputeAndGraphics;
457 float timestampPeriod;
458 uint32_t maxClipDistances;
459 uint32_t maxCullDistances;
460 uint32_t maxCombinedClipAndCullDistances;
461 uint32_t discreteQueuePriorities;
462 float pointSizeRange[2];
463 float lineWidthRange[2];
464 float pointSizeGranularity;
465 float lineWidthGranularity;
466 VkBool32 strictLines;
467 VkBool32 standardSampleLocations;
468 VkDeviceSize optimalBufferCopyOffsetAlignment;
469 VkDeviceSize optimalBufferCopyRowPitchAlignment;
470 VkDeviceSize nonCoherentAtomSize;
471 } VkPhysicalDeviceLimits_host;
473 typedef struct VkPhysicalDeviceProperties_host
475 uint32_t apiVersion;
476 uint32_t driverVersion;
477 uint32_t vendorID;
478 uint32_t deviceID;
479 VkPhysicalDeviceType deviceType;
480 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
481 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
482 VkPhysicalDeviceLimits_host limits;
483 VkPhysicalDeviceSparseProperties sparseProperties;
484 } VkPhysicalDeviceProperties_host;
486 typedef struct VkPhysicalDeviceProperties2KHR_host
488 VkStructureType sType;
489 void *pNext;
490 VkPhysicalDeviceProperties_host properties;
491 } VkPhysicalDeviceProperties2KHR_host;
493 typedef struct VkSparseMemoryBind_host
495 VkDeviceSize resourceOffset;
496 VkDeviceSize size;
497 VkDeviceMemory memory;
498 VkDeviceSize memoryOffset;
499 VkSparseMemoryBindFlags flags;
500 } VkSparseMemoryBind_host;
502 typedef struct VkSparseBufferMemoryBindInfo_host
504 VkBuffer buffer;
505 uint32_t bindCount;
506 const VkSparseMemoryBind_host *pBinds;
507 } VkSparseBufferMemoryBindInfo_host;
509 typedef struct VkSparseImageOpaqueMemoryBindInfo_host
511 VkImage image;
512 uint32_t bindCount;
513 const VkSparseMemoryBind_host *pBinds;
514 } VkSparseImageOpaqueMemoryBindInfo_host;
516 typedef struct VkSparseImageMemoryBind_host
518 VkImageSubresource subresource;
519 VkOffset3D offset;
520 VkExtent3D extent;
521 VkDeviceMemory memory;
522 VkDeviceSize memoryOffset;
523 VkSparseMemoryBindFlags flags;
524 } VkSparseImageMemoryBind_host;
526 typedef struct VkSparseImageMemoryBindInfo_host
528 VkImage image;
529 uint32_t bindCount;
530 const VkSparseImageMemoryBind_host *pBinds;
531 } VkSparseImageMemoryBindInfo_host;
533 typedef struct VkBindSparseInfo_host
535 VkStructureType sType;
536 const void *pNext;
537 uint32_t waitSemaphoreCount;
538 const VkSemaphore *pWaitSemaphores;
539 uint32_t bufferBindCount;
540 const VkSparseBufferMemoryBindInfo_host *pBufferBinds;
541 uint32_t imageOpaqueBindCount;
542 const VkSparseImageOpaqueMemoryBindInfo_host *pImageOpaqueBinds;
543 uint32_t imageBindCount;
544 const VkSparseImageMemoryBindInfo_host *pImageBinds;
545 uint32_t signalSemaphoreCount;
546 const VkSemaphore *pSignalSemaphores;
547 } VkBindSparseInfo_host;
549 typedef struct VkCopyDescriptorSet_host
551 VkStructureType sType;
552 const void *pNext;
553 VkDescriptorSet srcSet;
554 uint32_t srcBinding;
555 uint32_t srcArrayElement;
556 VkDescriptorSet dstSet;
557 uint32_t dstBinding;
558 uint32_t dstArrayElement;
559 uint32_t descriptorCount;
560 } VkCopyDescriptorSet_host;
563 /* For use by vkDevice and children */
564 struct vulkan_device_funcs
566 #if defined(USE_STRUCT_CONVERSION)
567 VkResult (*p_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo_host *, VkCommandBuffer *);
568 #else
569 VkResult (*p_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo *, VkCommandBuffer *);
570 #endif
571 #if defined(USE_STRUCT_CONVERSION)
572 VkResult (*p_vkAllocateDescriptorSets)(VkDevice, const VkDescriptorSetAllocateInfo_host *, VkDescriptorSet *);
573 #else
574 VkResult (*p_vkAllocateDescriptorSets)(VkDevice, const VkDescriptorSetAllocateInfo *, VkDescriptorSet *);
575 #endif
576 #if defined(USE_STRUCT_CONVERSION)
577 VkResult (*p_vkAllocateMemory)(VkDevice, const VkMemoryAllocateInfo_host *, const VkAllocationCallbacks *, VkDeviceMemory *);
578 #else
579 VkResult (*p_vkAllocateMemory)(VkDevice, const VkMemoryAllocateInfo *, const VkAllocationCallbacks *, VkDeviceMemory *);
580 #endif
581 #if defined(USE_STRUCT_CONVERSION)
582 VkResult (*p_vkBeginCommandBuffer)(VkCommandBuffer, const VkCommandBufferBeginInfo_host *);
583 #else
584 VkResult (*p_vkBeginCommandBuffer)(VkCommandBuffer, const VkCommandBufferBeginInfo *);
585 #endif
586 VkResult (*p_vkBindBufferMemory)(VkDevice, VkBuffer, VkDeviceMemory, VkDeviceSize);
587 VkResult (*p_vkBindImageMemory)(VkDevice, VkImage, VkDeviceMemory, VkDeviceSize);
588 void (*p_vkCmdBeginQuery)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags);
589 #if defined(USE_STRUCT_CONVERSION)
590 void (*p_vkCmdBeginRenderPass)(VkCommandBuffer, const VkRenderPassBeginInfo_host *, VkSubpassContents);
591 #else
592 void (*p_vkCmdBeginRenderPass)(VkCommandBuffer, const VkRenderPassBeginInfo *, VkSubpassContents);
593 #endif
594 void (*p_vkCmdBindDescriptorSets)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkDescriptorSet *, uint32_t, const uint32_t *);
595 void (*p_vkCmdBindIndexBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkIndexType);
596 void (*p_vkCmdBindPipeline)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline);
597 void (*p_vkCmdBindVertexBuffers)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *);
598 void (*p_vkCmdBlitImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageBlit *, VkFilter);
599 void (*p_vkCmdClearAttachments)(VkCommandBuffer, uint32_t, const VkClearAttachment *, uint32_t, const VkClearRect *);
600 void (*p_vkCmdClearColorImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearColorValue *, uint32_t, const VkImageSubresourceRange *);
601 void (*p_vkCmdClearDepthStencilImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearDepthStencilValue *, uint32_t, const VkImageSubresourceRange *);
602 #if defined(USE_STRUCT_CONVERSION)
603 void (*p_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy_host *);
604 #else
605 void (*p_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy *);
606 #endif
607 #if defined(USE_STRUCT_CONVERSION)
608 void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy_host *);
609 #else
610 void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy *);
611 #endif
612 void (*p_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageCopy *);
613 #if defined(USE_STRUCT_CONVERSION)
614 void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy_host *);
615 #else
616 void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *);
617 #endif
618 void (*p_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags);
619 void (*p_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t);
620 void (*p_vkCmdDispatchIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize);
621 void (*p_vkCmdDraw)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t);
622 void (*p_vkCmdDrawIndexed)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, int32_t, uint32_t);
623 void (*p_vkCmdDrawIndexedIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
624 void (*p_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
625 void (*p_vkCmdDrawIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
626 void (*p_vkCmdDrawIndirectCountAMD)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
627 void (*p_vkCmdEndQuery)(VkCommandBuffer, VkQueryPool, uint32_t);
628 void (*p_vkCmdEndRenderPass)(VkCommandBuffer);
629 void (*p_vkCmdExecuteCommands)(VkCommandBuffer, uint32_t, const VkCommandBuffer *);
630 void (*p_vkCmdFillBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t);
631 void (*p_vkCmdNextSubpass)(VkCommandBuffer, VkSubpassContents);
632 #if defined(USE_STRUCT_CONVERSION)
633 void (*p_vkCmdPipelineBarrier)(VkCommandBuffer, VkPipelineStageFlags, VkPipelineStageFlags, VkDependencyFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier_host *, uint32_t, const VkImageMemoryBarrier_host *);
634 #else
635 void (*p_vkCmdPipelineBarrier)(VkCommandBuffer, VkPipelineStageFlags, VkPipelineStageFlags, VkDependencyFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *);
636 #endif
637 void (*p_vkCmdPushConstants)(VkCommandBuffer, VkPipelineLayout, VkShaderStageFlags, uint32_t, uint32_t, const void *);
638 #if defined(USE_STRUCT_CONVERSION)
639 void (*p_vkCmdPushDescriptorSetKHR)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkWriteDescriptorSet_host *);
640 #else
641 void (*p_vkCmdPushDescriptorSetKHR)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkWriteDescriptorSet *);
642 #endif
643 void (*p_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer, VkDescriptorUpdateTemplateKHR, VkPipelineLayout, uint32_t, const void *);
644 void (*p_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
645 void (*p_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t);
646 void (*p_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *);
647 void (*p_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]);
648 void (*p_vkCmdSetDepthBias)(VkCommandBuffer, float, float, float);
649 void (*p_vkCmdSetDepthBounds)(VkCommandBuffer, float, float);
650 void (*p_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
651 void (*p_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
652 void (*p_vkCmdSetLineWidth)(VkCommandBuffer, float);
653 void (*p_vkCmdSetScissor)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
654 void (*p_vkCmdSetStencilCompareMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t);
655 void (*p_vkCmdSetStencilReference)(VkCommandBuffer, VkStencilFaceFlags, uint32_t);
656 void (*p_vkCmdSetStencilWriteMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t);
657 void (*p_vkCmdSetViewport)(VkCommandBuffer, uint32_t, uint32_t, const VkViewport *);
658 void (*p_vkCmdSetViewportWScalingNV)(VkCommandBuffer, uint32_t, uint32_t, const VkViewportWScalingNV *);
659 void (*p_vkCmdUpdateBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, const void *);
660 #if defined(USE_STRUCT_CONVERSION)
661 void (*p_vkCmdWaitEvents)(VkCommandBuffer, uint32_t, const VkEvent *, VkPipelineStageFlags, VkPipelineStageFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier_host *, uint32_t, const VkImageMemoryBarrier_host *);
662 #else
663 void (*p_vkCmdWaitEvents)(VkCommandBuffer, uint32_t, const VkEvent *, VkPipelineStageFlags, VkPipelineStageFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *);
664 #endif
665 void (*p_vkCmdWriteTimestamp)(VkCommandBuffer, VkPipelineStageFlagBits, VkQueryPool, uint32_t);
666 #if defined(USE_STRUCT_CONVERSION)
667 VkResult (*p_vkCreateBuffer)(VkDevice, const VkBufferCreateInfo_host *, const VkAllocationCallbacks *, VkBuffer *);
668 #else
669 VkResult (*p_vkCreateBuffer)(VkDevice, const VkBufferCreateInfo *, const VkAllocationCallbacks *, VkBuffer *);
670 #endif
671 #if defined(USE_STRUCT_CONVERSION)
672 VkResult (*p_vkCreateBufferView)(VkDevice, const VkBufferViewCreateInfo_host *, const VkAllocationCallbacks *, VkBufferView *);
673 #else
674 VkResult (*p_vkCreateBufferView)(VkDevice, const VkBufferViewCreateInfo *, const VkAllocationCallbacks *, VkBufferView *);
675 #endif
676 VkResult (*p_vkCreateCommandPool)(VkDevice, const VkCommandPoolCreateInfo *, const VkAllocationCallbacks *, VkCommandPool *);
677 #if defined(USE_STRUCT_CONVERSION)
678 VkResult (*p_vkCreateComputePipelines)(VkDevice, VkPipelineCache, uint32_t, const VkComputePipelineCreateInfo_host *, const VkAllocationCallbacks *, VkPipeline *);
679 #else
680 VkResult (*p_vkCreateComputePipelines)(VkDevice, VkPipelineCache, uint32_t, const VkComputePipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *);
681 #endif
682 VkResult (*p_vkCreateDescriptorPool)(VkDevice, const VkDescriptorPoolCreateInfo *, const VkAllocationCallbacks *, VkDescriptorPool *);
683 VkResult (*p_vkCreateDescriptorSetLayout)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, const VkAllocationCallbacks *, VkDescriptorSetLayout *);
684 #if defined(USE_STRUCT_CONVERSION)
685 VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfoKHR_host *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplateKHR *);
686 #else
687 VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfoKHR *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplateKHR *);
688 #endif
689 VkResult (*p_vkCreateEvent)(VkDevice, const VkEventCreateInfo *, const VkAllocationCallbacks *, VkEvent *);
690 VkResult (*p_vkCreateFence)(VkDevice, const VkFenceCreateInfo *, const VkAllocationCallbacks *, VkFence *);
691 #if defined(USE_STRUCT_CONVERSION)
692 VkResult (*p_vkCreateFramebuffer)(VkDevice, const VkFramebufferCreateInfo_host *, const VkAllocationCallbacks *, VkFramebuffer *);
693 #else
694 VkResult (*p_vkCreateFramebuffer)(VkDevice, const VkFramebufferCreateInfo *, const VkAllocationCallbacks *, VkFramebuffer *);
695 #endif
696 #if defined(USE_STRUCT_CONVERSION)
697 VkResult (*p_vkCreateGraphicsPipelines)(VkDevice, VkPipelineCache, uint32_t, const VkGraphicsPipelineCreateInfo_host *, const VkAllocationCallbacks *, VkPipeline *);
698 #else
699 VkResult (*p_vkCreateGraphicsPipelines)(VkDevice, VkPipelineCache, uint32_t, const VkGraphicsPipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *);
700 #endif
701 VkResult (*p_vkCreateImage)(VkDevice, const VkImageCreateInfo *, const VkAllocationCallbacks *, VkImage *);
702 #if defined(USE_STRUCT_CONVERSION)
703 VkResult (*p_vkCreateImageView)(VkDevice, const VkImageViewCreateInfo_host *, const VkAllocationCallbacks *, VkImageView *);
704 #else
705 VkResult (*p_vkCreateImageView)(VkDevice, const VkImageViewCreateInfo *, const VkAllocationCallbacks *, VkImageView *);
706 #endif
707 VkResult (*p_vkCreatePipelineCache)(VkDevice, const VkPipelineCacheCreateInfo *, const VkAllocationCallbacks *, VkPipelineCache *);
708 VkResult (*p_vkCreatePipelineLayout)(VkDevice, const VkPipelineLayoutCreateInfo *, const VkAllocationCallbacks *, VkPipelineLayout *);
709 VkResult (*p_vkCreateQueryPool)(VkDevice, const VkQueryPoolCreateInfo *, const VkAllocationCallbacks *, VkQueryPool *);
710 VkResult (*p_vkCreateRenderPass)(VkDevice, const VkRenderPassCreateInfo *, const VkAllocationCallbacks *, VkRenderPass *);
711 VkResult (*p_vkCreateSampler)(VkDevice, const VkSamplerCreateInfo *, const VkAllocationCallbacks *, VkSampler *);
712 VkResult (*p_vkCreateSemaphore)(VkDevice, const VkSemaphoreCreateInfo *, const VkAllocationCallbacks *, VkSemaphore *);
713 VkResult (*p_vkCreateShaderModule)(VkDevice, const VkShaderModuleCreateInfo *, const VkAllocationCallbacks *, VkShaderModule *);
714 void (*p_vkDestroyBuffer)(VkDevice, VkBuffer, const VkAllocationCallbacks *);
715 void (*p_vkDestroyBufferView)(VkDevice, VkBufferView, const VkAllocationCallbacks *);
716 void (*p_vkDestroyCommandPool)(VkDevice, VkCommandPool, const VkAllocationCallbacks *);
717 void (*p_vkDestroyDescriptorPool)(VkDevice, VkDescriptorPool, const VkAllocationCallbacks *);
718 void (*p_vkDestroyDescriptorSetLayout)(VkDevice, VkDescriptorSetLayout, const VkAllocationCallbacks *);
719 void (*p_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice, VkDescriptorUpdateTemplateKHR, const VkAllocationCallbacks *);
720 void (*p_vkDestroyDevice)(VkDevice, const VkAllocationCallbacks *);
721 void (*p_vkDestroyEvent)(VkDevice, VkEvent, const VkAllocationCallbacks *);
722 void (*p_vkDestroyFence)(VkDevice, VkFence, const VkAllocationCallbacks *);
723 void (*p_vkDestroyFramebuffer)(VkDevice, VkFramebuffer, const VkAllocationCallbacks *);
724 void (*p_vkDestroyImage)(VkDevice, VkImage, const VkAllocationCallbacks *);
725 void (*p_vkDestroyImageView)(VkDevice, VkImageView, const VkAllocationCallbacks *);
726 void (*p_vkDestroyPipeline)(VkDevice, VkPipeline, const VkAllocationCallbacks *);
727 void (*p_vkDestroyPipelineCache)(VkDevice, VkPipelineCache, const VkAllocationCallbacks *);
728 void (*p_vkDestroyPipelineLayout)(VkDevice, VkPipelineLayout, const VkAllocationCallbacks *);
729 void (*p_vkDestroyQueryPool)(VkDevice, VkQueryPool, const VkAllocationCallbacks *);
730 void (*p_vkDestroyRenderPass)(VkDevice, VkRenderPass, const VkAllocationCallbacks *);
731 void (*p_vkDestroySampler)(VkDevice, VkSampler, const VkAllocationCallbacks *);
732 void (*p_vkDestroySemaphore)(VkDevice, VkSemaphore, const VkAllocationCallbacks *);
733 void (*p_vkDestroyShaderModule)(VkDevice, VkShaderModule, const VkAllocationCallbacks *);
734 VkResult (*p_vkDeviceWaitIdle)(VkDevice);
735 VkResult (*p_vkEndCommandBuffer)(VkCommandBuffer);
736 #if defined(USE_STRUCT_CONVERSION)
737 VkResult (*p_vkFlushMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange_host *);
738 #else
739 VkResult (*p_vkFlushMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *);
740 #endif
741 void (*p_vkFreeCommandBuffers)(VkDevice, VkCommandPool, uint32_t, const VkCommandBuffer *);
742 VkResult (*p_vkFreeDescriptorSets)(VkDevice, VkDescriptorPool, uint32_t, const VkDescriptorSet *);
743 void (*p_vkFreeMemory)(VkDevice, VkDeviceMemory, const VkAllocationCallbacks *);
744 #if defined(USE_STRUCT_CONVERSION)
745 void (*p_vkGetBufferMemoryRequirements)(VkDevice, VkBuffer, VkMemoryRequirements_host *);
746 #else
747 void (*p_vkGetBufferMemoryRequirements)(VkDevice, VkBuffer, VkMemoryRequirements *);
748 #endif
749 void (*p_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *);
750 void (*p_vkGetDeviceQueue)(VkDevice, uint32_t, uint32_t, VkQueue *);
751 VkResult (*p_vkGetEventStatus)(VkDevice, VkEvent);
752 VkResult (*p_vkGetFenceStatus)(VkDevice, VkFence);
753 #if defined(USE_STRUCT_CONVERSION)
754 void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements_host *);
755 #else
756 void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements *);
757 #endif
758 void (*p_vkGetImageSparseMemoryRequirements)(VkDevice, VkImage, uint32_t *, VkSparseImageMemoryRequirements *);
759 #if defined(USE_STRUCT_CONVERSION)
760 void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout_host *);
761 #else
762 void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout *);
763 #endif
764 VkResult (*p_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *);
765 VkResult (*p_vkGetQueryPoolResults)(VkDevice, VkQueryPool, uint32_t, uint32_t, size_t, void *, VkDeviceSize, VkQueryResultFlags);
766 void (*p_vkGetRenderAreaGranularity)(VkDevice, VkRenderPass, VkExtent2D *);
767 #if defined(USE_STRUCT_CONVERSION)
768 VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange_host *);
769 #else
770 VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *);
771 #endif
772 VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **);
773 VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *);
774 #if defined(USE_STRUCT_CONVERSION)
775 VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo_host *, VkFence);
776 #else
777 VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo *, VkFence);
778 #endif
779 VkResult (*p_vkQueueSubmit)(VkQueue, uint32_t, const VkSubmitInfo *, VkFence);
780 VkResult (*p_vkQueueWaitIdle)(VkQueue);
781 VkResult (*p_vkResetCommandBuffer)(VkCommandBuffer, VkCommandBufferResetFlags);
782 VkResult (*p_vkResetCommandPool)(VkDevice, VkCommandPool, VkCommandPoolResetFlags);
783 VkResult (*p_vkResetDescriptorPool)(VkDevice, VkDescriptorPool, VkDescriptorPoolResetFlags);
784 VkResult (*p_vkResetEvent)(VkDevice, VkEvent);
785 VkResult (*p_vkResetFences)(VkDevice, uint32_t, const VkFence *);
786 VkResult (*p_vkSetEvent)(VkDevice, VkEvent);
787 void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlagsKHR);
788 void (*p_vkUnmapMemory)(VkDevice, VkDeviceMemory);
789 void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplateKHR, const void *);
790 #if defined(USE_STRUCT_CONVERSION)
791 void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet_host *, uint32_t, const VkCopyDescriptorSet_host *);
792 #else
793 void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet *, uint32_t, const VkCopyDescriptorSet *);
794 #endif
795 VkResult (*p_vkWaitForFences)(VkDevice, uint32_t, const VkFence *, VkBool32, uint64_t);
798 /* For use by vkInstance and children */
799 struct vulkan_instance_funcs
801 VkResult (*p_vkCreateDevice)(VkPhysicalDevice, const VkDeviceCreateInfo *, const VkAllocationCallbacks *, VkDevice *);
802 VkResult (*p_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice, const char *, uint32_t *, VkExtensionProperties *);
803 VkResult (*p_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice, uint32_t *, VkLayerProperties *);
804 VkResult (*p_vkEnumeratePhysicalDevices)(VkInstance, uint32_t *, VkPhysicalDevice *);
805 void (*p_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice, VkPhysicalDeviceFeatures *);
806 void (*p_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice, VkPhysicalDeviceFeatures2KHR *);
807 void (*p_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice, VkFormat, VkFormatProperties *);
808 void (*p_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice, VkFormat, VkFormatProperties2KHR *);
809 #if defined(USE_STRUCT_CONVERSION)
810 VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties_host *);
811 #else
812 VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties *);
813 #endif
814 #if defined(USE_STRUCT_CONVERSION)
815 VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *, VkImageFormatProperties2KHR_host *);
816 #else
817 VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *, VkImageFormatProperties2KHR *);
818 #endif
819 #if defined(USE_STRUCT_CONVERSION)
820 void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties_host *);
821 #else
822 void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties *);
823 #endif
824 #if defined(USE_STRUCT_CONVERSION)
825 void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2KHR_host *);
826 #else
827 void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2KHR *);
828 #endif
829 #if defined(USE_STRUCT_CONVERSION)
830 void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties_host *);
831 #else
832 void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties *);
833 #endif
834 #if defined(USE_STRUCT_CONVERSION)
835 void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2KHR_host *);
836 #else
837 void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2KHR *);
838 #endif
839 void (*p_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties *);
840 void (*p_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2KHR *);
841 void (*p_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkSampleCountFlagBits, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *);
842 void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *, uint32_t *, VkSparseImageFormatProperties2KHR *);
845 #define ALL_VK_DEVICE_FUNCS() \
846 USE_VK_FUNC(vkAllocateCommandBuffers) \
847 USE_VK_FUNC(vkAllocateDescriptorSets) \
848 USE_VK_FUNC(vkAllocateMemory) \
849 USE_VK_FUNC(vkBeginCommandBuffer) \
850 USE_VK_FUNC(vkBindBufferMemory) \
851 USE_VK_FUNC(vkBindImageMemory) \
852 USE_VK_FUNC(vkCmdBeginQuery) \
853 USE_VK_FUNC(vkCmdBeginRenderPass) \
854 USE_VK_FUNC(vkCmdBindDescriptorSets) \
855 USE_VK_FUNC(vkCmdBindIndexBuffer) \
856 USE_VK_FUNC(vkCmdBindPipeline) \
857 USE_VK_FUNC(vkCmdBindVertexBuffers) \
858 USE_VK_FUNC(vkCmdBlitImage) \
859 USE_VK_FUNC(vkCmdClearAttachments) \
860 USE_VK_FUNC(vkCmdClearColorImage) \
861 USE_VK_FUNC(vkCmdClearDepthStencilImage) \
862 USE_VK_FUNC(vkCmdCopyBuffer) \
863 USE_VK_FUNC(vkCmdCopyBufferToImage) \
864 USE_VK_FUNC(vkCmdCopyImage) \
865 USE_VK_FUNC(vkCmdCopyImageToBuffer) \
866 USE_VK_FUNC(vkCmdCopyQueryPoolResults) \
867 USE_VK_FUNC(vkCmdDispatch) \
868 USE_VK_FUNC(vkCmdDispatchIndirect) \
869 USE_VK_FUNC(vkCmdDraw) \
870 USE_VK_FUNC(vkCmdDrawIndexed) \
871 USE_VK_FUNC(vkCmdDrawIndexedIndirect) \
872 USE_VK_FUNC(vkCmdDrawIndexedIndirectCountAMD) \
873 USE_VK_FUNC(vkCmdDrawIndirect) \
874 USE_VK_FUNC(vkCmdDrawIndirectCountAMD) \
875 USE_VK_FUNC(vkCmdEndQuery) \
876 USE_VK_FUNC(vkCmdEndRenderPass) \
877 USE_VK_FUNC(vkCmdExecuteCommands) \
878 USE_VK_FUNC(vkCmdFillBuffer) \
879 USE_VK_FUNC(vkCmdNextSubpass) \
880 USE_VK_FUNC(vkCmdPipelineBarrier) \
881 USE_VK_FUNC(vkCmdPushConstants) \
882 USE_VK_FUNC(vkCmdPushDescriptorSetKHR) \
883 USE_VK_FUNC(vkCmdPushDescriptorSetWithTemplateKHR) \
884 USE_VK_FUNC(vkCmdResetEvent) \
885 USE_VK_FUNC(vkCmdResetQueryPool) \
886 USE_VK_FUNC(vkCmdResolveImage) \
887 USE_VK_FUNC(vkCmdSetBlendConstants) \
888 USE_VK_FUNC(vkCmdSetDepthBias) \
889 USE_VK_FUNC(vkCmdSetDepthBounds) \
890 USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \
891 USE_VK_FUNC(vkCmdSetEvent) \
892 USE_VK_FUNC(vkCmdSetLineWidth) \
893 USE_VK_FUNC(vkCmdSetScissor) \
894 USE_VK_FUNC(vkCmdSetStencilCompareMask) \
895 USE_VK_FUNC(vkCmdSetStencilReference) \
896 USE_VK_FUNC(vkCmdSetStencilWriteMask) \
897 USE_VK_FUNC(vkCmdSetViewport) \
898 USE_VK_FUNC(vkCmdSetViewportWScalingNV) \
899 USE_VK_FUNC(vkCmdUpdateBuffer) \
900 USE_VK_FUNC(vkCmdWaitEvents) \
901 USE_VK_FUNC(vkCmdWriteTimestamp) \
902 USE_VK_FUNC(vkCreateBuffer) \
903 USE_VK_FUNC(vkCreateBufferView) \
904 USE_VK_FUNC(vkCreateCommandPool) \
905 USE_VK_FUNC(vkCreateComputePipelines) \
906 USE_VK_FUNC(vkCreateDescriptorPool) \
907 USE_VK_FUNC(vkCreateDescriptorSetLayout) \
908 USE_VK_FUNC(vkCreateDescriptorUpdateTemplateKHR) \
909 USE_VK_FUNC(vkCreateEvent) \
910 USE_VK_FUNC(vkCreateFence) \
911 USE_VK_FUNC(vkCreateFramebuffer) \
912 USE_VK_FUNC(vkCreateGraphicsPipelines) \
913 USE_VK_FUNC(vkCreateImage) \
914 USE_VK_FUNC(vkCreateImageView) \
915 USE_VK_FUNC(vkCreatePipelineCache) \
916 USE_VK_FUNC(vkCreatePipelineLayout) \
917 USE_VK_FUNC(vkCreateQueryPool) \
918 USE_VK_FUNC(vkCreateRenderPass) \
919 USE_VK_FUNC(vkCreateSampler) \
920 USE_VK_FUNC(vkCreateSemaphore) \
921 USE_VK_FUNC(vkCreateShaderModule) \
922 USE_VK_FUNC(vkDestroyBuffer) \
923 USE_VK_FUNC(vkDestroyBufferView) \
924 USE_VK_FUNC(vkDestroyCommandPool) \
925 USE_VK_FUNC(vkDestroyDescriptorPool) \
926 USE_VK_FUNC(vkDestroyDescriptorSetLayout) \
927 USE_VK_FUNC(vkDestroyDescriptorUpdateTemplateKHR) \
928 USE_VK_FUNC(vkDestroyDevice) \
929 USE_VK_FUNC(vkDestroyEvent) \
930 USE_VK_FUNC(vkDestroyFence) \
931 USE_VK_FUNC(vkDestroyFramebuffer) \
932 USE_VK_FUNC(vkDestroyImage) \
933 USE_VK_FUNC(vkDestroyImageView) \
934 USE_VK_FUNC(vkDestroyPipeline) \
935 USE_VK_FUNC(vkDestroyPipelineCache) \
936 USE_VK_FUNC(vkDestroyPipelineLayout) \
937 USE_VK_FUNC(vkDestroyQueryPool) \
938 USE_VK_FUNC(vkDestroyRenderPass) \
939 USE_VK_FUNC(vkDestroySampler) \
940 USE_VK_FUNC(vkDestroySemaphore) \
941 USE_VK_FUNC(vkDestroyShaderModule) \
942 USE_VK_FUNC(vkDeviceWaitIdle) \
943 USE_VK_FUNC(vkEndCommandBuffer) \
944 USE_VK_FUNC(vkFlushMappedMemoryRanges) \
945 USE_VK_FUNC(vkFreeCommandBuffers) \
946 USE_VK_FUNC(vkFreeDescriptorSets) \
947 USE_VK_FUNC(vkFreeMemory) \
948 USE_VK_FUNC(vkGetBufferMemoryRequirements) \
949 USE_VK_FUNC(vkGetDeviceMemoryCommitment) \
950 USE_VK_FUNC(vkGetDeviceQueue) \
951 USE_VK_FUNC(vkGetEventStatus) \
952 USE_VK_FUNC(vkGetFenceStatus) \
953 USE_VK_FUNC(vkGetImageMemoryRequirements) \
954 USE_VK_FUNC(vkGetImageSparseMemoryRequirements) \
955 USE_VK_FUNC(vkGetImageSubresourceLayout) \
956 USE_VK_FUNC(vkGetPipelineCacheData) \
957 USE_VK_FUNC(vkGetQueryPoolResults) \
958 USE_VK_FUNC(vkGetRenderAreaGranularity) \
959 USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \
960 USE_VK_FUNC(vkMapMemory) \
961 USE_VK_FUNC(vkMergePipelineCaches) \
962 USE_VK_FUNC(vkQueueBindSparse) \
963 USE_VK_FUNC(vkQueueSubmit) \
964 USE_VK_FUNC(vkQueueWaitIdle) \
965 USE_VK_FUNC(vkResetCommandBuffer) \
966 USE_VK_FUNC(vkResetCommandPool) \
967 USE_VK_FUNC(vkResetDescriptorPool) \
968 USE_VK_FUNC(vkResetEvent) \
969 USE_VK_FUNC(vkResetFences) \
970 USE_VK_FUNC(vkSetEvent) \
971 USE_VK_FUNC(vkTrimCommandPoolKHR) \
972 USE_VK_FUNC(vkUnmapMemory) \
973 USE_VK_FUNC(vkUpdateDescriptorSetWithTemplateKHR) \
974 USE_VK_FUNC(vkUpdateDescriptorSets) \
975 USE_VK_FUNC(vkWaitForFences)
977 #define ALL_VK_INSTANCE_FUNCS() \
978 USE_VK_FUNC(vkCreateDevice)\
979 USE_VK_FUNC(vkEnumerateDeviceExtensionProperties)\
980 USE_VK_FUNC(vkEnumerateDeviceLayerProperties)\
981 USE_VK_FUNC(vkEnumeratePhysicalDevices)\
982 USE_VK_FUNC(vkGetPhysicalDeviceFeatures)\
983 USE_VK_FUNC(vkGetPhysicalDeviceFeatures2KHR)\
984 USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties)\
985 USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties2KHR)\
986 USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties)\
987 USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2KHR)\
988 USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties)\
989 USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR)\
990 USE_VK_FUNC(vkGetPhysicalDeviceProperties)\
991 USE_VK_FUNC(vkGetPhysicalDeviceProperties2KHR)\
992 USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties)\
993 USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties2KHR)\
994 USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties)\
995 USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties2KHR)
997 #endif /* __WINE_VULKAN_THUNKS_H */