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