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