1 /* Automatically generated from Vulkan vk.xml; DO NOT EDIT! */
6 #include "wine/debug.h"
8 #include "wine/vulkan.h"
9 #include "wine/vulkan_driver.h"
10 #include "vulkan_private.h"
12 WINE_DEFAULT_DEBUG_CHANNEL(vulkan
);
14 #if defined(USE_STRUCT_CONVERSION)
15 static inline void convert_VkCommandBufferAllocateInfo_win_to_host(const VkCommandBufferAllocateInfo
*in
, VkCommandBufferAllocateInfo_host
*out
)
19 out
->sType
= in
->sType
;
20 out
->pNext
= in
->pNext
;
21 out
->commandPool
= in
->commandPool
;
22 out
->level
= in
->level
;
23 out
->commandBufferCount
= in
->commandBufferCount
;
26 static inline void convert_VkDescriptorSetAllocateInfo_win_to_host(const VkDescriptorSetAllocateInfo
*in
, VkDescriptorSetAllocateInfo_host
*out
)
30 out
->sType
= in
->sType
;
31 out
->pNext
= in
->pNext
;
32 out
->descriptorPool
= in
->descriptorPool
;
33 out
->descriptorSetCount
= in
->descriptorSetCount
;
34 out
->pSetLayouts
= in
->pSetLayouts
;
37 static inline void convert_VkMemoryAllocateInfo_win_to_host(const VkMemoryAllocateInfo
*in
, VkMemoryAllocateInfo_host
*out
)
41 out
->sType
= in
->sType
;
42 out
->pNext
= in
->pNext
;
43 out
->allocationSize
= in
->allocationSize
;
44 out
->memoryTypeIndex
= in
->memoryTypeIndex
;
47 static inline VkCommandBufferInheritanceInfo_host
*convert_VkCommandBufferInheritanceInfo_array_win_to_host(const VkCommandBufferInheritanceInfo
*in
, uint32_t count
)
49 VkCommandBufferInheritanceInfo_host
*out
;
54 out
= heap_alloc(count
* sizeof(*out
));
55 for (i
= 0; i
< count
; i
++)
57 out
[i
].sType
= in
[i
].sType
;
58 out
[i
].pNext
= in
[i
].pNext
;
59 out
[i
].renderPass
= in
[i
].renderPass
;
60 out
[i
].subpass
= in
[i
].subpass
;
61 out
[i
].framebuffer
= in
[i
].framebuffer
;
62 out
[i
].occlusionQueryEnable
= in
[i
].occlusionQueryEnable
;
63 out
[i
].queryFlags
= in
[i
].queryFlags
;
64 out
[i
].pipelineStatistics
= in
[i
].pipelineStatistics
;
70 static inline void free_VkCommandBufferInheritanceInfo_array(VkCommandBufferInheritanceInfo_host
*in
, uint32_t count
)
77 static inline void convert_VkCommandBufferBeginInfo_win_to_host(const VkCommandBufferBeginInfo
*in
, VkCommandBufferBeginInfo_host
*out
)
81 out
->sType
= in
->sType
;
82 out
->pNext
= in
->pNext
;
83 out
->flags
= in
->flags
;
84 out
->pInheritanceInfo
= convert_VkCommandBufferInheritanceInfo_array_win_to_host(in
->pInheritanceInfo
, 1);
87 static inline void free_VkCommandBufferBeginInfo(VkCommandBufferBeginInfo_host
*in
)
89 free_VkCommandBufferInheritanceInfo_array((VkCommandBufferInheritanceInfo_host
*)in
->pInheritanceInfo
, 1);
92 static inline void convert_VkRenderPassBeginInfo_win_to_host(const VkRenderPassBeginInfo
*in
, VkRenderPassBeginInfo_host
*out
)
96 out
->sType
= in
->sType
;
97 out
->pNext
= in
->pNext
;
98 out
->renderPass
= in
->renderPass
;
99 out
->framebuffer
= in
->framebuffer
;
100 out
->renderArea
= in
->renderArea
;
101 out
->clearValueCount
= in
->clearValueCount
;
102 out
->pClearValues
= in
->pClearValues
;
105 static inline VkBufferCopy_host
*convert_VkBufferCopy_array_win_to_host(const VkBufferCopy
*in
, uint32_t count
)
107 VkBufferCopy_host
*out
;
110 if (!in
) return NULL
;
112 out
= heap_alloc(count
* sizeof(*out
));
113 for (i
= 0; i
< count
; i
++)
115 out
[i
].srcOffset
= in
[i
].srcOffset
;
116 out
[i
].dstOffset
= in
[i
].dstOffset
;
117 out
[i
].size
= in
[i
].size
;
123 static inline void free_VkBufferCopy_array(VkBufferCopy_host
*in
, uint32_t count
)
130 static inline VkBufferImageCopy_host
*convert_VkBufferImageCopy_array_win_to_host(const VkBufferImageCopy
*in
, uint32_t count
)
132 VkBufferImageCopy_host
*out
;
135 if (!in
) return NULL
;
137 out
= heap_alloc(count
* sizeof(*out
));
138 for (i
= 0; i
< count
; i
++)
140 out
[i
].bufferOffset
= in
[i
].bufferOffset
;
141 out
[i
].bufferRowLength
= in
[i
].bufferRowLength
;
142 out
[i
].bufferImageHeight
= in
[i
].bufferImageHeight
;
143 out
[i
].imageSubresource
= in
[i
].imageSubresource
;
144 out
[i
].imageOffset
= in
[i
].imageOffset
;
145 out
[i
].imageExtent
= in
[i
].imageExtent
;
151 static inline void free_VkBufferImageCopy_array(VkBufferImageCopy_host
*in
, uint32_t count
)
158 static inline VkBufferMemoryBarrier_host
*convert_VkBufferMemoryBarrier_array_win_to_host(const VkBufferMemoryBarrier
*in
, uint32_t count
)
160 VkBufferMemoryBarrier_host
*out
;
163 if (!in
) return NULL
;
165 out
= heap_alloc(count
* sizeof(*out
));
166 for (i
= 0; i
< count
; i
++)
168 out
[i
].sType
= in
[i
].sType
;
169 out
[i
].pNext
= in
[i
].pNext
;
170 out
[i
].srcAccessMask
= in
[i
].srcAccessMask
;
171 out
[i
].dstAccessMask
= in
[i
].dstAccessMask
;
172 out
[i
].srcQueueFamilyIndex
= in
[i
].srcQueueFamilyIndex
;
173 out
[i
].dstQueueFamilyIndex
= in
[i
].dstQueueFamilyIndex
;
174 out
[i
].buffer
= in
[i
].buffer
;
175 out
[i
].offset
= in
[i
].offset
;
176 out
[i
].size
= in
[i
].size
;
182 static inline void free_VkBufferMemoryBarrier_array(VkBufferMemoryBarrier_host
*in
, uint32_t count
)
189 static inline VkImageMemoryBarrier_host
*convert_VkImageMemoryBarrier_array_win_to_host(const VkImageMemoryBarrier
*in
, uint32_t count
)
191 VkImageMemoryBarrier_host
*out
;
194 if (!in
) return NULL
;
196 out
= heap_alloc(count
* sizeof(*out
));
197 for (i
= 0; i
< count
; i
++)
199 out
[i
].sType
= in
[i
].sType
;
200 out
[i
].pNext
= in
[i
].pNext
;
201 out
[i
].srcAccessMask
= in
[i
].srcAccessMask
;
202 out
[i
].dstAccessMask
= in
[i
].dstAccessMask
;
203 out
[i
].oldLayout
= in
[i
].oldLayout
;
204 out
[i
].newLayout
= in
[i
].newLayout
;
205 out
[i
].srcQueueFamilyIndex
= in
[i
].srcQueueFamilyIndex
;
206 out
[i
].dstQueueFamilyIndex
= in
[i
].dstQueueFamilyIndex
;
207 out
[i
].image
= in
[i
].image
;
208 out
[i
].subresourceRange
= in
[i
].subresourceRange
;
214 static inline void free_VkImageMemoryBarrier_array(VkImageMemoryBarrier_host
*in
, uint32_t count
)
221 static inline VkDescriptorImageInfo_host
*convert_VkDescriptorImageInfo_array_win_to_host(const VkDescriptorImageInfo
*in
, uint32_t count
)
223 VkDescriptorImageInfo_host
*out
;
226 if (!in
) return NULL
;
228 out
= heap_alloc(count
* sizeof(*out
));
229 for (i
= 0; i
< count
; i
++)
231 out
[i
].sampler
= in
[i
].sampler
;
232 out
[i
].imageView
= in
[i
].imageView
;
233 out
[i
].imageLayout
= in
[i
].imageLayout
;
239 static inline void free_VkDescriptorImageInfo_array(VkDescriptorImageInfo_host
*in
, uint32_t count
)
246 static inline VkDescriptorBufferInfo_host
*convert_VkDescriptorBufferInfo_array_win_to_host(const VkDescriptorBufferInfo
*in
, uint32_t count
)
248 VkDescriptorBufferInfo_host
*out
;
251 if (!in
) return NULL
;
253 out
= heap_alloc(count
* sizeof(*out
));
254 for (i
= 0; i
< count
; i
++)
256 out
[i
].buffer
= in
[i
].buffer
;
257 out
[i
].offset
= in
[i
].offset
;
258 out
[i
].range
= in
[i
].range
;
264 static inline void free_VkDescriptorBufferInfo_array(VkDescriptorBufferInfo_host
*in
, uint32_t count
)
271 static inline VkWriteDescriptorSet_host
*convert_VkWriteDescriptorSet_array_win_to_host(const VkWriteDescriptorSet
*in
, uint32_t count
)
273 VkWriteDescriptorSet_host
*out
;
276 if (!in
) return NULL
;
278 out
= heap_alloc(count
* sizeof(*out
));
279 for (i
= 0; i
< count
; i
++)
281 out
[i
].sType
= in
[i
].sType
;
282 out
[i
].pNext
= in
[i
].pNext
;
283 out
[i
].dstSet
= in
[i
].dstSet
;
284 out
[i
].dstBinding
= in
[i
].dstBinding
;
285 out
[i
].dstArrayElement
= in
[i
].dstArrayElement
;
286 out
[i
].descriptorCount
= in
[i
].descriptorCount
;
287 out
[i
].descriptorType
= in
[i
].descriptorType
;
288 out
[i
].pImageInfo
= convert_VkDescriptorImageInfo_array_win_to_host(in
[i
].pImageInfo
, in
[i
].descriptorCount
);
289 out
[i
].pBufferInfo
= convert_VkDescriptorBufferInfo_array_win_to_host(in
[i
].pBufferInfo
, in
[i
].descriptorCount
);
290 out
[i
].pTexelBufferView
= in
[i
].pTexelBufferView
;
296 static inline void free_VkWriteDescriptorSet_array(VkWriteDescriptorSet_host
*in
, uint32_t count
)
302 for (i
= 0; i
< count
; i
++)
304 free_VkDescriptorImageInfo_array((VkDescriptorImageInfo_host
*)in
[i
].pImageInfo
, in
[i
].descriptorCount
);
305 free_VkDescriptorBufferInfo_array((VkDescriptorBufferInfo_host
*)in
[i
].pBufferInfo
, in
[i
].descriptorCount
);
310 static inline void convert_VkBufferCreateInfo_win_to_host(const VkBufferCreateInfo
*in
, VkBufferCreateInfo_host
*out
)
314 out
->sType
= in
->sType
;
315 out
->pNext
= in
->pNext
;
316 out
->flags
= in
->flags
;
317 out
->size
= in
->size
;
318 out
->usage
= in
->usage
;
319 out
->sharingMode
= in
->sharingMode
;
320 out
->queueFamilyIndexCount
= in
->queueFamilyIndexCount
;
321 out
->pQueueFamilyIndices
= in
->pQueueFamilyIndices
;
324 static inline void convert_VkBufferViewCreateInfo_win_to_host(const VkBufferViewCreateInfo
*in
, VkBufferViewCreateInfo_host
*out
)
328 out
->sType
= in
->sType
;
329 out
->pNext
= in
->pNext
;
330 out
->flags
= in
->flags
;
331 out
->buffer
= in
->buffer
;
332 out
->format
= in
->format
;
333 out
->offset
= in
->offset
;
334 out
->range
= in
->range
;
337 static inline void convert_VkPipelineShaderStageCreateInfo_win_to_host(const VkPipelineShaderStageCreateInfo
*in
, VkPipelineShaderStageCreateInfo_host
*out
)
341 out
->sType
= in
->sType
;
342 out
->pNext
= in
->pNext
;
343 out
->flags
= in
->flags
;
344 out
->stage
= in
->stage
;
345 out
->module
= in
->module
;
346 out
->pName
= in
->pName
;
347 out
->pSpecializationInfo
= in
->pSpecializationInfo
;
350 static inline VkComputePipelineCreateInfo_host
*convert_VkComputePipelineCreateInfo_array_win_to_host(const VkComputePipelineCreateInfo
*in
, uint32_t count
)
352 VkComputePipelineCreateInfo_host
*out
;
355 if (!in
) return NULL
;
357 out
= heap_alloc(count
* sizeof(*out
));
358 for (i
= 0; i
< count
; i
++)
360 out
[i
].sType
= in
[i
].sType
;
361 out
[i
].pNext
= in
[i
].pNext
;
362 out
[i
].flags
= in
[i
].flags
;
363 convert_VkPipelineShaderStageCreateInfo_win_to_host(&in
[i
].stage
, &out
[i
].stage
);
364 out
[i
].layout
= in
[i
].layout
;
365 out
[i
].basePipelineHandle
= in
[i
].basePipelineHandle
;
366 out
[i
].basePipelineIndex
= in
[i
].basePipelineIndex
;
372 static inline void free_VkComputePipelineCreateInfo_array(VkComputePipelineCreateInfo_host
*in
, uint32_t count
)
379 static inline void convert_VkDescriptorUpdateTemplateCreateInfoKHR_win_to_host(const VkDescriptorUpdateTemplateCreateInfoKHR
*in
, VkDescriptorUpdateTemplateCreateInfoKHR_host
*out
)
383 out
->sType
= in
->sType
;
384 out
->pNext
= in
->pNext
;
385 out
->flags
= in
->flags
;
386 out
->descriptorUpdateEntryCount
= in
->descriptorUpdateEntryCount
;
387 out
->pDescriptorUpdateEntries
= in
->pDescriptorUpdateEntries
;
388 out
->templateType
= in
->templateType
;
389 out
->descriptorSetLayout
= in
->descriptorSetLayout
;
390 out
->pipelineBindPoint
= in
->pipelineBindPoint
;
391 out
->pipelineLayout
= in
->pipelineLayout
;
395 static inline void convert_VkFramebufferCreateInfo_win_to_host(const VkFramebufferCreateInfo
*in
, VkFramebufferCreateInfo_host
*out
)
399 out
->sType
= in
->sType
;
400 out
->pNext
= in
->pNext
;
401 out
->flags
= in
->flags
;
402 out
->renderPass
= in
->renderPass
;
403 out
->attachmentCount
= in
->attachmentCount
;
404 out
->pAttachments
= in
->pAttachments
;
405 out
->width
= in
->width
;
406 out
->height
= in
->height
;
407 out
->layers
= in
->layers
;
410 static inline VkPipelineShaderStageCreateInfo_host
*convert_VkPipelineShaderStageCreateInfo_array_win_to_host(const VkPipelineShaderStageCreateInfo
*in
, uint32_t count
)
412 VkPipelineShaderStageCreateInfo_host
*out
;
415 if (!in
) return NULL
;
417 out
= heap_alloc(count
* sizeof(*out
));
418 for (i
= 0; i
< count
; i
++)
420 out
[i
].sType
= in
[i
].sType
;
421 out
[i
].pNext
= in
[i
].pNext
;
422 out
[i
].flags
= in
[i
].flags
;
423 out
[i
].stage
= in
[i
].stage
;
424 out
[i
].module
= in
[i
].module
;
425 out
[i
].pName
= in
[i
].pName
;
426 out
[i
].pSpecializationInfo
= in
[i
].pSpecializationInfo
;
432 static inline void free_VkPipelineShaderStageCreateInfo_array(VkPipelineShaderStageCreateInfo_host
*in
, uint32_t count
)
439 static inline VkGraphicsPipelineCreateInfo_host
*convert_VkGraphicsPipelineCreateInfo_array_win_to_host(const VkGraphicsPipelineCreateInfo
*in
, uint32_t count
)
441 VkGraphicsPipelineCreateInfo_host
*out
;
444 if (!in
) return NULL
;
446 out
= heap_alloc(count
* sizeof(*out
));
447 for (i
= 0; i
< count
; i
++)
449 out
[i
].sType
= in
[i
].sType
;
450 out
[i
].pNext
= in
[i
].pNext
;
451 out
[i
].flags
= in
[i
].flags
;
452 out
[i
].stageCount
= in
[i
].stageCount
;
453 out
[i
].pStages
= convert_VkPipelineShaderStageCreateInfo_array_win_to_host(in
[i
].pStages
, in
[i
].stageCount
);
454 out
[i
].pVertexInputState
= in
[i
].pVertexInputState
;
455 out
[i
].pInputAssemblyState
= in
[i
].pInputAssemblyState
;
456 out
[i
].pTessellationState
= in
[i
].pTessellationState
;
457 out
[i
].pViewportState
= in
[i
].pViewportState
;
458 out
[i
].pRasterizationState
= in
[i
].pRasterizationState
;
459 out
[i
].pMultisampleState
= in
[i
].pMultisampleState
;
460 out
[i
].pDepthStencilState
= in
[i
].pDepthStencilState
;
461 out
[i
].pColorBlendState
= in
[i
].pColorBlendState
;
462 out
[i
].pDynamicState
= in
[i
].pDynamicState
;
463 out
[i
].layout
= in
[i
].layout
;
464 out
[i
].renderPass
= in
[i
].renderPass
;
465 out
[i
].subpass
= in
[i
].subpass
;
466 out
[i
].basePipelineHandle
= in
[i
].basePipelineHandle
;
467 out
[i
].basePipelineIndex
= in
[i
].basePipelineIndex
;
473 static inline void free_VkGraphicsPipelineCreateInfo_array(VkGraphicsPipelineCreateInfo_host
*in
, uint32_t count
)
479 for (i
= 0; i
< count
; i
++)
481 free_VkPipelineShaderStageCreateInfo_array((VkPipelineShaderStageCreateInfo_host
*)in
[i
].pStages
, in
[i
].stageCount
);
486 static inline void convert_VkImageViewCreateInfo_win_to_host(const VkImageViewCreateInfo
*in
, VkImageViewCreateInfo_host
*out
)
490 out
->sType
= in
->sType
;
491 out
->pNext
= in
->pNext
;
492 out
->flags
= in
->flags
;
493 out
->image
= in
->image
;
494 out
->viewType
= in
->viewType
;
495 out
->format
= in
->format
;
496 out
->components
= in
->components
;
497 out
->subresourceRange
= in
->subresourceRange
;
500 static inline VkMappedMemoryRange_host
*convert_VkMappedMemoryRange_array_win_to_host(const VkMappedMemoryRange
*in
, uint32_t count
)
502 VkMappedMemoryRange_host
*out
;
505 if (!in
) return NULL
;
507 out
= heap_alloc(count
* sizeof(*out
));
508 for (i
= 0; i
< count
; i
++)
510 out
[i
].sType
= in
[i
].sType
;
511 out
[i
].pNext
= in
[i
].pNext
;
512 out
[i
].memory
= in
[i
].memory
;
513 out
[i
].offset
= in
[i
].offset
;
514 out
[i
].size
= in
[i
].size
;
520 static inline void free_VkMappedMemoryRange_array(VkMappedMemoryRange_host
*in
, uint32_t count
)
527 static inline void convert_VkMemoryRequirements_host_to_win(const VkMemoryRequirements_host
*in
, VkMemoryRequirements
*out
)
531 out
->size
= in
->size
;
532 out
->alignment
= in
->alignment
;
533 out
->memoryTypeBits
= in
->memoryTypeBits
;
536 static inline void convert_VkSubresourceLayout_host_to_win(const VkSubresourceLayout_host
*in
, VkSubresourceLayout
*out
)
540 out
->offset
= in
->offset
;
541 out
->size
= in
->size
;
542 out
->rowPitch
= in
->rowPitch
;
543 out
->arrayPitch
= in
->arrayPitch
;
544 out
->depthPitch
= in
->depthPitch
;
547 static inline void convert_VkImageFormatProperties_host_to_win(const VkImageFormatProperties_host
*in
, VkImageFormatProperties
*out
)
551 out
->maxExtent
= in
->maxExtent
;
552 out
->maxMipLevels
= in
->maxMipLevels
;
553 out
->maxArrayLayers
= in
->maxArrayLayers
;
554 out
->sampleCounts
= in
->sampleCounts
;
555 out
->maxResourceSize
= in
->maxResourceSize
;
558 static inline void convert_VkImageFormatProperties2KHR_win_to_host(const VkImageFormatProperties2KHR
*in
, VkImageFormatProperties2KHR_host
*out
)
562 out
->pNext
= in
->pNext
;
563 out
->sType
= in
->sType
;
566 static inline void convert_VkImageFormatProperties2KHR_host_to_win(const VkImageFormatProperties2KHR_host
*in
, VkImageFormatProperties2KHR
*out
)
570 out
->sType
= in
->sType
;
571 out
->pNext
= in
->pNext
;
572 convert_VkImageFormatProperties_host_to_win(&in
->imageFormatProperties
, &out
->imageFormatProperties
);
575 static inline void convert_VkMemoryHeap_static_array_host_to_win(const VkMemoryHeap_host
*in
, VkMemoryHeap
*out
, uint32_t count
)
581 for (i
= 0; i
< count
; i
++)
583 out
[i
].size
= in
[i
].size
;
584 out
[i
].flags
= in
[i
].flags
;
588 static inline void convert_VkPhysicalDeviceMemoryProperties_host_to_win(const VkPhysicalDeviceMemoryProperties_host
*in
, VkPhysicalDeviceMemoryProperties
*out
)
592 out
->memoryTypeCount
= in
->memoryTypeCount
;
593 memcpy(out
->memoryTypes
, in
->memoryTypes
, VK_MAX_MEMORY_TYPES
* sizeof(VkMemoryType
));
594 out
->memoryHeapCount
= in
->memoryHeapCount
;
595 convert_VkMemoryHeap_static_array_host_to_win(in
->memoryHeaps
, out
->memoryHeaps
, VK_MAX_MEMORY_HEAPS
);
598 static inline void convert_VkPhysicalDeviceMemoryProperties2KHR_win_to_host(const VkPhysicalDeviceMemoryProperties2KHR
*in
, VkPhysicalDeviceMemoryProperties2KHR_host
*out
)
602 out
->pNext
= in
->pNext
;
603 out
->sType
= in
->sType
;
606 static inline void convert_VkPhysicalDeviceMemoryProperties2KHR_host_to_win(const VkPhysicalDeviceMemoryProperties2KHR_host
*in
, VkPhysicalDeviceMemoryProperties2KHR
*out
)
610 out
->sType
= in
->sType
;
611 out
->pNext
= in
->pNext
;
612 convert_VkPhysicalDeviceMemoryProperties_host_to_win(&in
->memoryProperties
, &out
->memoryProperties
);
615 static inline void convert_VkPhysicalDeviceLimits_host_to_win(const VkPhysicalDeviceLimits_host
*in
, VkPhysicalDeviceLimits
*out
)
619 out
->maxImageDimension1D
= in
->maxImageDimension1D
;
620 out
->maxImageDimension2D
= in
->maxImageDimension2D
;
621 out
->maxImageDimension3D
= in
->maxImageDimension3D
;
622 out
->maxImageDimensionCube
= in
->maxImageDimensionCube
;
623 out
->maxImageArrayLayers
= in
->maxImageArrayLayers
;
624 out
->maxTexelBufferElements
= in
->maxTexelBufferElements
;
625 out
->maxUniformBufferRange
= in
->maxUniformBufferRange
;
626 out
->maxStorageBufferRange
= in
->maxStorageBufferRange
;
627 out
->maxPushConstantsSize
= in
->maxPushConstantsSize
;
628 out
->maxMemoryAllocationCount
= in
->maxMemoryAllocationCount
;
629 out
->maxSamplerAllocationCount
= in
->maxSamplerAllocationCount
;
630 out
->bufferImageGranularity
= in
->bufferImageGranularity
;
631 out
->sparseAddressSpaceSize
= in
->sparseAddressSpaceSize
;
632 out
->maxBoundDescriptorSets
= in
->maxBoundDescriptorSets
;
633 out
->maxPerStageDescriptorSamplers
= in
->maxPerStageDescriptorSamplers
;
634 out
->maxPerStageDescriptorUniformBuffers
= in
->maxPerStageDescriptorUniformBuffers
;
635 out
->maxPerStageDescriptorStorageBuffers
= in
->maxPerStageDescriptorStorageBuffers
;
636 out
->maxPerStageDescriptorSampledImages
= in
->maxPerStageDescriptorSampledImages
;
637 out
->maxPerStageDescriptorStorageImages
= in
->maxPerStageDescriptorStorageImages
;
638 out
->maxPerStageDescriptorInputAttachments
= in
->maxPerStageDescriptorInputAttachments
;
639 out
->maxPerStageResources
= in
->maxPerStageResources
;
640 out
->maxDescriptorSetSamplers
= in
->maxDescriptorSetSamplers
;
641 out
->maxDescriptorSetUniformBuffers
= in
->maxDescriptorSetUniformBuffers
;
642 out
->maxDescriptorSetUniformBuffersDynamic
= in
->maxDescriptorSetUniformBuffersDynamic
;
643 out
->maxDescriptorSetStorageBuffers
= in
->maxDescriptorSetStorageBuffers
;
644 out
->maxDescriptorSetStorageBuffersDynamic
= in
->maxDescriptorSetStorageBuffersDynamic
;
645 out
->maxDescriptorSetSampledImages
= in
->maxDescriptorSetSampledImages
;
646 out
->maxDescriptorSetStorageImages
= in
->maxDescriptorSetStorageImages
;
647 out
->maxDescriptorSetInputAttachments
= in
->maxDescriptorSetInputAttachments
;
648 out
->maxVertexInputAttributes
= in
->maxVertexInputAttributes
;
649 out
->maxVertexInputBindings
= in
->maxVertexInputBindings
;
650 out
->maxVertexInputAttributeOffset
= in
->maxVertexInputAttributeOffset
;
651 out
->maxVertexInputBindingStride
= in
->maxVertexInputBindingStride
;
652 out
->maxVertexOutputComponents
= in
->maxVertexOutputComponents
;
653 out
->maxTessellationGenerationLevel
= in
->maxTessellationGenerationLevel
;
654 out
->maxTessellationPatchSize
= in
->maxTessellationPatchSize
;
655 out
->maxTessellationControlPerVertexInputComponents
= in
->maxTessellationControlPerVertexInputComponents
;
656 out
->maxTessellationControlPerVertexOutputComponents
= in
->maxTessellationControlPerVertexOutputComponents
;
657 out
->maxTessellationControlPerPatchOutputComponents
= in
->maxTessellationControlPerPatchOutputComponents
;
658 out
->maxTessellationControlTotalOutputComponents
= in
->maxTessellationControlTotalOutputComponents
;
659 out
->maxTessellationEvaluationInputComponents
= in
->maxTessellationEvaluationInputComponents
;
660 out
->maxTessellationEvaluationOutputComponents
= in
->maxTessellationEvaluationOutputComponents
;
661 out
->maxGeometryShaderInvocations
= in
->maxGeometryShaderInvocations
;
662 out
->maxGeometryInputComponents
= in
->maxGeometryInputComponents
;
663 out
->maxGeometryOutputComponents
= in
->maxGeometryOutputComponents
;
664 out
->maxGeometryOutputVertices
= in
->maxGeometryOutputVertices
;
665 out
->maxGeometryTotalOutputComponents
= in
->maxGeometryTotalOutputComponents
;
666 out
->maxFragmentInputComponents
= in
->maxFragmentInputComponents
;
667 out
->maxFragmentOutputAttachments
= in
->maxFragmentOutputAttachments
;
668 out
->maxFragmentDualSrcAttachments
= in
->maxFragmentDualSrcAttachments
;
669 out
->maxFragmentCombinedOutputResources
= in
->maxFragmentCombinedOutputResources
;
670 out
->maxComputeSharedMemorySize
= in
->maxComputeSharedMemorySize
;
671 memcpy(out
->maxComputeWorkGroupCount
, in
->maxComputeWorkGroupCount
, 3 * sizeof(uint32_t));
672 out
->maxComputeWorkGroupInvocations
= in
->maxComputeWorkGroupInvocations
;
673 memcpy(out
->maxComputeWorkGroupSize
, in
->maxComputeWorkGroupSize
, 3 * sizeof(uint32_t));
674 out
->subPixelPrecisionBits
= in
->subPixelPrecisionBits
;
675 out
->subTexelPrecisionBits
= in
->subTexelPrecisionBits
;
676 out
->mipmapPrecisionBits
= in
->mipmapPrecisionBits
;
677 out
->maxDrawIndexedIndexValue
= in
->maxDrawIndexedIndexValue
;
678 out
->maxDrawIndirectCount
= in
->maxDrawIndirectCount
;
679 out
->maxSamplerLodBias
= in
->maxSamplerLodBias
;
680 out
->maxSamplerAnisotropy
= in
->maxSamplerAnisotropy
;
681 out
->maxViewports
= in
->maxViewports
;
682 memcpy(out
->maxViewportDimensions
, in
->maxViewportDimensions
, 2 * sizeof(uint32_t));
683 memcpy(out
->viewportBoundsRange
, in
->viewportBoundsRange
, 2 * sizeof(float));
684 out
->viewportSubPixelBits
= in
->viewportSubPixelBits
;
685 out
->minMemoryMapAlignment
= in
->minMemoryMapAlignment
;
686 out
->minTexelBufferOffsetAlignment
= in
->minTexelBufferOffsetAlignment
;
687 out
->minUniformBufferOffsetAlignment
= in
->minUniformBufferOffsetAlignment
;
688 out
->minStorageBufferOffsetAlignment
= in
->minStorageBufferOffsetAlignment
;
689 out
->minTexelOffset
= in
->minTexelOffset
;
690 out
->maxTexelOffset
= in
->maxTexelOffset
;
691 out
->minTexelGatherOffset
= in
->minTexelGatherOffset
;
692 out
->maxTexelGatherOffset
= in
->maxTexelGatherOffset
;
693 out
->minInterpolationOffset
= in
->minInterpolationOffset
;
694 out
->maxInterpolationOffset
= in
->maxInterpolationOffset
;
695 out
->subPixelInterpolationOffsetBits
= in
->subPixelInterpolationOffsetBits
;
696 out
->maxFramebufferWidth
= in
->maxFramebufferWidth
;
697 out
->maxFramebufferHeight
= in
->maxFramebufferHeight
;
698 out
->maxFramebufferLayers
= in
->maxFramebufferLayers
;
699 out
->framebufferColorSampleCounts
= in
->framebufferColorSampleCounts
;
700 out
->framebufferDepthSampleCounts
= in
->framebufferDepthSampleCounts
;
701 out
->framebufferStencilSampleCounts
= in
->framebufferStencilSampleCounts
;
702 out
->framebufferNoAttachmentsSampleCounts
= in
->framebufferNoAttachmentsSampleCounts
;
703 out
->maxColorAttachments
= in
->maxColorAttachments
;
704 out
->sampledImageColorSampleCounts
= in
->sampledImageColorSampleCounts
;
705 out
->sampledImageIntegerSampleCounts
= in
->sampledImageIntegerSampleCounts
;
706 out
->sampledImageDepthSampleCounts
= in
->sampledImageDepthSampleCounts
;
707 out
->sampledImageStencilSampleCounts
= in
->sampledImageStencilSampleCounts
;
708 out
->storageImageSampleCounts
= in
->storageImageSampleCounts
;
709 out
->maxSampleMaskWords
= in
->maxSampleMaskWords
;
710 out
->timestampComputeAndGraphics
= in
->timestampComputeAndGraphics
;
711 out
->timestampPeriod
= in
->timestampPeriod
;
712 out
->maxClipDistances
= in
->maxClipDistances
;
713 out
->maxCullDistances
= in
->maxCullDistances
;
714 out
->maxCombinedClipAndCullDistances
= in
->maxCombinedClipAndCullDistances
;
715 out
->discreteQueuePriorities
= in
->discreteQueuePriorities
;
716 memcpy(out
->pointSizeRange
, in
->pointSizeRange
, 2 * sizeof(float));
717 memcpy(out
->lineWidthRange
, in
->lineWidthRange
, 2 * sizeof(float));
718 out
->pointSizeGranularity
= in
->pointSizeGranularity
;
719 out
->lineWidthGranularity
= in
->lineWidthGranularity
;
720 out
->strictLines
= in
->strictLines
;
721 out
->standardSampleLocations
= in
->standardSampleLocations
;
722 out
->optimalBufferCopyOffsetAlignment
= in
->optimalBufferCopyOffsetAlignment
;
723 out
->optimalBufferCopyRowPitchAlignment
= in
->optimalBufferCopyRowPitchAlignment
;
724 out
->nonCoherentAtomSize
= in
->nonCoherentAtomSize
;
727 static inline void convert_VkPhysicalDeviceProperties_host_to_win(const VkPhysicalDeviceProperties_host
*in
, VkPhysicalDeviceProperties
*out
)
731 out
->apiVersion
= in
->apiVersion
;
732 out
->driverVersion
= in
->driverVersion
;
733 out
->vendorID
= in
->vendorID
;
734 out
->deviceID
= in
->deviceID
;
735 out
->deviceType
= in
->deviceType
;
736 memcpy(out
->deviceName
, in
->deviceName
, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
* sizeof(char));
737 memcpy(out
->pipelineCacheUUID
, in
->pipelineCacheUUID
, VK_UUID_SIZE
* sizeof(uint8_t));
738 convert_VkPhysicalDeviceLimits_host_to_win(&in
->limits
, &out
->limits
);
739 out
->sparseProperties
= in
->sparseProperties
;
742 static inline void convert_VkPhysicalDeviceProperties2KHR_win_to_host(const VkPhysicalDeviceProperties2KHR
*in
, VkPhysicalDeviceProperties2KHR_host
*out
)
746 out
->pNext
= in
->pNext
;
747 out
->sType
= in
->sType
;
750 static inline void convert_VkPhysicalDeviceProperties2KHR_host_to_win(const VkPhysicalDeviceProperties2KHR_host
*in
, VkPhysicalDeviceProperties2KHR
*out
)
754 out
->sType
= in
->sType
;
755 out
->pNext
= in
->pNext
;
756 convert_VkPhysicalDeviceProperties_host_to_win(&in
->properties
, &out
->properties
);
759 static inline VkSparseMemoryBind_host
*convert_VkSparseMemoryBind_array_win_to_host(const VkSparseMemoryBind
*in
, uint32_t count
)
761 VkSparseMemoryBind_host
*out
;
764 if (!in
) return NULL
;
766 out
= heap_alloc(count
* sizeof(*out
));
767 for (i
= 0; i
< count
; i
++)
769 out
[i
].resourceOffset
= in
[i
].resourceOffset
;
770 out
[i
].size
= in
[i
].size
;
771 out
[i
].memory
= in
[i
].memory
;
772 out
[i
].memoryOffset
= in
[i
].memoryOffset
;
773 out
[i
].flags
= in
[i
].flags
;
779 static inline void free_VkSparseMemoryBind_array(VkSparseMemoryBind_host
*in
, uint32_t count
)
786 static inline VkSparseBufferMemoryBindInfo_host
*convert_VkSparseBufferMemoryBindInfo_array_win_to_host(const VkSparseBufferMemoryBindInfo
*in
, uint32_t count
)
788 VkSparseBufferMemoryBindInfo_host
*out
;
791 if (!in
) return NULL
;
793 out
= heap_alloc(count
* sizeof(*out
));
794 for (i
= 0; i
< count
; i
++)
796 out
[i
].buffer
= in
[i
].buffer
;
797 out
[i
].bindCount
= in
[i
].bindCount
;
798 out
[i
].pBinds
= convert_VkSparseMemoryBind_array_win_to_host(in
[i
].pBinds
, in
[i
].bindCount
);
804 static inline void free_VkSparseBufferMemoryBindInfo_array(VkSparseBufferMemoryBindInfo_host
*in
, uint32_t count
)
810 for (i
= 0; i
< count
; i
++)
812 free_VkSparseMemoryBind_array((VkSparseMemoryBind_host
*)in
[i
].pBinds
, in
[i
].bindCount
);
817 static inline VkSparseImageOpaqueMemoryBindInfo_host
*convert_VkSparseImageOpaqueMemoryBindInfo_array_win_to_host(const VkSparseImageOpaqueMemoryBindInfo
*in
, uint32_t count
)
819 VkSparseImageOpaqueMemoryBindInfo_host
*out
;
822 if (!in
) return NULL
;
824 out
= heap_alloc(count
* sizeof(*out
));
825 for (i
= 0; i
< count
; i
++)
827 out
[i
].image
= in
[i
].image
;
828 out
[i
].bindCount
= in
[i
].bindCount
;
829 out
[i
].pBinds
= convert_VkSparseMemoryBind_array_win_to_host(in
[i
].pBinds
, in
[i
].bindCount
);
835 static inline void free_VkSparseImageOpaqueMemoryBindInfo_array(VkSparseImageOpaqueMemoryBindInfo_host
*in
, uint32_t count
)
841 for (i
= 0; i
< count
; i
++)
843 free_VkSparseMemoryBind_array((VkSparseMemoryBind_host
*)in
[i
].pBinds
, in
[i
].bindCount
);
848 static inline VkSparseImageMemoryBind_host
*convert_VkSparseImageMemoryBind_array_win_to_host(const VkSparseImageMemoryBind
*in
, uint32_t count
)
850 VkSparseImageMemoryBind_host
*out
;
853 if (!in
) return NULL
;
855 out
= heap_alloc(count
* sizeof(*out
));
856 for (i
= 0; i
< count
; i
++)
858 out
[i
].subresource
= in
[i
].subresource
;
859 out
[i
].offset
= in
[i
].offset
;
860 out
[i
].extent
= in
[i
].extent
;
861 out
[i
].memory
= in
[i
].memory
;
862 out
[i
].memoryOffset
= in
[i
].memoryOffset
;
863 out
[i
].flags
= in
[i
].flags
;
869 static inline void free_VkSparseImageMemoryBind_array(VkSparseImageMemoryBind_host
*in
, uint32_t count
)
876 static inline VkSparseImageMemoryBindInfo_host
*convert_VkSparseImageMemoryBindInfo_array_win_to_host(const VkSparseImageMemoryBindInfo
*in
, uint32_t count
)
878 VkSparseImageMemoryBindInfo_host
*out
;
881 if (!in
) return NULL
;
883 out
= heap_alloc(count
* sizeof(*out
));
884 for (i
= 0; i
< count
; i
++)
886 out
[i
].image
= in
[i
].image
;
887 out
[i
].bindCount
= in
[i
].bindCount
;
888 out
[i
].pBinds
= convert_VkSparseImageMemoryBind_array_win_to_host(in
[i
].pBinds
, in
[i
].bindCount
);
894 static inline void free_VkSparseImageMemoryBindInfo_array(VkSparseImageMemoryBindInfo_host
*in
, uint32_t count
)
900 for (i
= 0; i
< count
; i
++)
902 free_VkSparseImageMemoryBind_array((VkSparseImageMemoryBind_host
*)in
[i
].pBinds
, in
[i
].bindCount
);
907 static inline VkBindSparseInfo_host
*convert_VkBindSparseInfo_array_win_to_host(const VkBindSparseInfo
*in
, uint32_t count
)
909 VkBindSparseInfo_host
*out
;
912 if (!in
) return NULL
;
914 out
= heap_alloc(count
* sizeof(*out
));
915 for (i
= 0; i
< count
; i
++)
917 out
[i
].sType
= in
[i
].sType
;
918 out
[i
].pNext
= in
[i
].pNext
;
919 out
[i
].waitSemaphoreCount
= in
[i
].waitSemaphoreCount
;
920 out
[i
].pWaitSemaphores
= in
[i
].pWaitSemaphores
;
921 out
[i
].bufferBindCount
= in
[i
].bufferBindCount
;
922 out
[i
].pBufferBinds
= convert_VkSparseBufferMemoryBindInfo_array_win_to_host(in
[i
].pBufferBinds
, in
[i
].bufferBindCount
);
923 out
[i
].imageOpaqueBindCount
= in
[i
].imageOpaqueBindCount
;
924 out
[i
].pImageOpaqueBinds
= convert_VkSparseImageOpaqueMemoryBindInfo_array_win_to_host(in
[i
].pImageOpaqueBinds
, in
[i
].imageOpaqueBindCount
);
925 out
[i
].imageBindCount
= in
[i
].imageBindCount
;
926 out
[i
].pImageBinds
= convert_VkSparseImageMemoryBindInfo_array_win_to_host(in
[i
].pImageBinds
, in
[i
].imageBindCount
);
927 out
[i
].signalSemaphoreCount
= in
[i
].signalSemaphoreCount
;
928 out
[i
].pSignalSemaphores
= in
[i
].pSignalSemaphores
;
934 static inline void free_VkBindSparseInfo_array(VkBindSparseInfo_host
*in
, uint32_t count
)
940 for (i
= 0; i
< count
; i
++)
942 free_VkSparseBufferMemoryBindInfo_array((VkSparseBufferMemoryBindInfo_host
*)in
[i
].pBufferBinds
, in
[i
].bufferBindCount
);
943 free_VkSparseImageOpaqueMemoryBindInfo_array((VkSparseImageOpaqueMemoryBindInfo_host
*)in
[i
].pImageOpaqueBinds
, in
[i
].imageOpaqueBindCount
);
944 free_VkSparseImageMemoryBindInfo_array((VkSparseImageMemoryBindInfo_host
*)in
[i
].pImageBinds
, in
[i
].imageBindCount
);
949 static inline VkCopyDescriptorSet_host
*convert_VkCopyDescriptorSet_array_win_to_host(const VkCopyDescriptorSet
*in
, uint32_t count
)
951 VkCopyDescriptorSet_host
*out
;
954 if (!in
) return NULL
;
956 out
= heap_alloc(count
* sizeof(*out
));
957 for (i
= 0; i
< count
; i
++)
959 out
[i
].sType
= in
[i
].sType
;
960 out
[i
].pNext
= in
[i
].pNext
;
961 out
[i
].srcSet
= in
[i
].srcSet
;
962 out
[i
].srcBinding
= in
[i
].srcBinding
;
963 out
[i
].srcArrayElement
= in
[i
].srcArrayElement
;
964 out
[i
].dstSet
= in
[i
].dstSet
;
965 out
[i
].dstBinding
= in
[i
].dstBinding
;
966 out
[i
].dstArrayElement
= in
[i
].dstArrayElement
;
967 out
[i
].descriptorCount
= in
[i
].descriptorCount
;
973 static inline void free_VkCopyDescriptorSet_array(VkCopyDescriptorSet_host
*in
, uint32_t count
)
980 #endif /* USE_STRUCT_CONVERSION */
982 static VkResult WINAPI
wine_vkAllocateDescriptorSets(VkDevice device
, const VkDescriptorSetAllocateInfo
*pAllocateInfo
, VkDescriptorSet
*pDescriptorSets
)
984 #if defined(USE_STRUCT_CONVERSION)
986 VkDescriptorSetAllocateInfo_host pAllocateInfo_host
;
987 TRACE("%p, %p, %p\n", device
, pAllocateInfo
, pDescriptorSets
);
989 convert_VkDescriptorSetAllocateInfo_win_to_host(pAllocateInfo
, &pAllocateInfo_host
);
990 result
= device
->funcs
.p_vkAllocateDescriptorSets(device
->device
, &pAllocateInfo_host
, pDescriptorSets
);
994 TRACE("%p, %p, %p\n", device
, pAllocateInfo
, pDescriptorSets
);
995 return device
->funcs
.p_vkAllocateDescriptorSets(device
->device
, pAllocateInfo
, pDescriptorSets
);
999 static VkResult WINAPI
wine_vkAllocateMemory(VkDevice device
, const VkMemoryAllocateInfo
*pAllocateInfo
, const VkAllocationCallbacks
*pAllocator
, VkDeviceMemory
*pMemory
)
1001 #if defined(USE_STRUCT_CONVERSION)
1003 VkMemoryAllocateInfo_host pAllocateInfo_host
;
1004 TRACE("%p, %p, %p, %p\n", device
, pAllocateInfo
, pAllocator
, pMemory
);
1006 convert_VkMemoryAllocateInfo_win_to_host(pAllocateInfo
, &pAllocateInfo_host
);
1007 result
= device
->funcs
.p_vkAllocateMemory(device
->device
, &pAllocateInfo_host
, NULL
, pMemory
);
1011 TRACE("%p, %p, %p, %p\n", device
, pAllocateInfo
, pAllocator
, pMemory
);
1012 return device
->funcs
.p_vkAllocateMemory(device
->device
, pAllocateInfo
, NULL
, pMemory
);
1016 static VkResult WINAPI
wine_vkBeginCommandBuffer(VkCommandBuffer commandBuffer
, const VkCommandBufferBeginInfo
*pBeginInfo
)
1018 #if defined(USE_STRUCT_CONVERSION)
1020 VkCommandBufferBeginInfo_host pBeginInfo_host
;
1021 TRACE("%p, %p\n", commandBuffer
, pBeginInfo
);
1023 convert_VkCommandBufferBeginInfo_win_to_host(pBeginInfo
, &pBeginInfo_host
);
1024 result
= commandBuffer
->device
->funcs
.p_vkBeginCommandBuffer(commandBuffer
->command_buffer
, &pBeginInfo_host
);
1026 free_VkCommandBufferBeginInfo(&pBeginInfo_host
);
1029 TRACE("%p, %p\n", commandBuffer
, pBeginInfo
);
1030 return commandBuffer
->device
->funcs
.p_vkBeginCommandBuffer(commandBuffer
->command_buffer
, pBeginInfo
);
1034 static VkResult WINAPI
wine_vkBindBufferMemory(VkDevice device
, VkBuffer buffer
, VkDeviceMemory memory
, VkDeviceSize memoryOffset
)
1036 TRACE("%p, 0x%s, 0x%s, 0x%s\n", device
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(memory
), wine_dbgstr_longlong(memoryOffset
));
1037 return device
->funcs
.p_vkBindBufferMemory(device
->device
, buffer
, memory
, memoryOffset
);
1040 static VkResult WINAPI
wine_vkBindImageMemory(VkDevice device
, VkImage image
, VkDeviceMemory memory
, VkDeviceSize memoryOffset
)
1042 TRACE("%p, 0x%s, 0x%s, 0x%s\n", device
, wine_dbgstr_longlong(image
), wine_dbgstr_longlong(memory
), wine_dbgstr_longlong(memoryOffset
));
1043 return device
->funcs
.p_vkBindImageMemory(device
->device
, image
, memory
, memoryOffset
);
1046 static void WINAPI
wine_vkCmdBeginQuery(VkCommandBuffer commandBuffer
, VkQueryPool queryPool
, uint32_t query
, VkQueryControlFlags flags
)
1048 TRACE("%p, 0x%s, %u, %#x\n", commandBuffer
, wine_dbgstr_longlong(queryPool
), query
, flags
);
1049 commandBuffer
->device
->funcs
.p_vkCmdBeginQuery(commandBuffer
->command_buffer
, queryPool
, query
, flags
);
1052 static void WINAPI
wine_vkCmdBeginRenderPass(VkCommandBuffer commandBuffer
, const VkRenderPassBeginInfo
*pRenderPassBegin
, VkSubpassContents contents
)
1054 #if defined(USE_STRUCT_CONVERSION)
1055 VkRenderPassBeginInfo_host pRenderPassBegin_host
;
1056 TRACE("%p, %p, %d\n", commandBuffer
, pRenderPassBegin
, contents
);
1058 convert_VkRenderPassBeginInfo_win_to_host(pRenderPassBegin
, &pRenderPassBegin_host
);
1059 commandBuffer
->device
->funcs
.p_vkCmdBeginRenderPass(commandBuffer
->command_buffer
, &pRenderPassBegin_host
, contents
);
1062 TRACE("%p, %p, %d\n", commandBuffer
, pRenderPassBegin
, contents
);
1063 commandBuffer
->device
->funcs
.p_vkCmdBeginRenderPass(commandBuffer
->command_buffer
, pRenderPassBegin
, contents
);
1067 static void WINAPI
wine_vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer
, VkPipelineBindPoint pipelineBindPoint
, VkPipelineLayout layout
, uint32_t firstSet
, uint32_t descriptorSetCount
, const VkDescriptorSet
*pDescriptorSets
, uint32_t dynamicOffsetCount
, const uint32_t *pDynamicOffsets
)
1069 TRACE("%p, %d, 0x%s, %u, %u, %p, %u, %p\n", commandBuffer
, pipelineBindPoint
, wine_dbgstr_longlong(layout
), firstSet
, descriptorSetCount
, pDescriptorSets
, dynamicOffsetCount
, pDynamicOffsets
);
1070 commandBuffer
->device
->funcs
.p_vkCmdBindDescriptorSets(commandBuffer
->command_buffer
, pipelineBindPoint
, layout
, firstSet
, descriptorSetCount
, pDescriptorSets
, dynamicOffsetCount
, pDynamicOffsets
);
1073 static void WINAPI
wine_vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
, VkIndexType indexType
)
1075 TRACE("%p, 0x%s, 0x%s, %d\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
), indexType
);
1076 commandBuffer
->device
->funcs
.p_vkCmdBindIndexBuffer(commandBuffer
->command_buffer
, buffer
, offset
, indexType
);
1079 static void WINAPI
wine_vkCmdBindPipeline(VkCommandBuffer commandBuffer
, VkPipelineBindPoint pipelineBindPoint
, VkPipeline pipeline
)
1081 TRACE("%p, %d, 0x%s\n", commandBuffer
, pipelineBindPoint
, wine_dbgstr_longlong(pipeline
));
1082 commandBuffer
->device
->funcs
.p_vkCmdBindPipeline(commandBuffer
->command_buffer
, pipelineBindPoint
, pipeline
);
1085 static void WINAPI
wine_vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer
, uint32_t firstBinding
, uint32_t bindingCount
, const VkBuffer
*pBuffers
, const VkDeviceSize
*pOffsets
)
1087 TRACE("%p, %u, %u, %p, %p\n", commandBuffer
, firstBinding
, bindingCount
, pBuffers
, pOffsets
);
1088 commandBuffer
->device
->funcs
.p_vkCmdBindVertexBuffers(commandBuffer
->command_buffer
, firstBinding
, bindingCount
, pBuffers
, pOffsets
);
1091 static void WINAPI
wine_vkCmdBlitImage(VkCommandBuffer commandBuffer
, VkImage srcImage
, VkImageLayout srcImageLayout
, VkImage dstImage
, VkImageLayout dstImageLayout
, uint32_t regionCount
, const VkImageBlit
*pRegions
, VkFilter filter
)
1093 TRACE("%p, 0x%s, %d, 0x%s, %d, %u, %p, %d\n", commandBuffer
, wine_dbgstr_longlong(srcImage
), srcImageLayout
, wine_dbgstr_longlong(dstImage
), dstImageLayout
, regionCount
, pRegions
, filter
);
1094 commandBuffer
->device
->funcs
.p_vkCmdBlitImage(commandBuffer
->command_buffer
, srcImage
, srcImageLayout
, dstImage
, dstImageLayout
, regionCount
, pRegions
, filter
);
1097 static void WINAPI
wine_vkCmdClearAttachments(VkCommandBuffer commandBuffer
, uint32_t attachmentCount
, const VkClearAttachment
*pAttachments
, uint32_t rectCount
, const VkClearRect
*pRects
)
1099 TRACE("%p, %u, %p, %u, %p\n", commandBuffer
, attachmentCount
, pAttachments
, rectCount
, pRects
);
1100 commandBuffer
->device
->funcs
.p_vkCmdClearAttachments(commandBuffer
->command_buffer
, attachmentCount
, pAttachments
, rectCount
, pRects
);
1103 static void WINAPI
wine_vkCmdClearColorImage(VkCommandBuffer commandBuffer
, VkImage image
, VkImageLayout imageLayout
, const VkClearColorValue
*pColor
, uint32_t rangeCount
, const VkImageSubresourceRange
*pRanges
)
1105 TRACE("%p, 0x%s, %d, %p, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(image
), imageLayout
, pColor
, rangeCount
, pRanges
);
1106 commandBuffer
->device
->funcs
.p_vkCmdClearColorImage(commandBuffer
->command_buffer
, image
, imageLayout
, pColor
, rangeCount
, pRanges
);
1109 static void WINAPI
wine_vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer
, VkImage image
, VkImageLayout imageLayout
, const VkClearDepthStencilValue
*pDepthStencil
, uint32_t rangeCount
, const VkImageSubresourceRange
*pRanges
)
1111 TRACE("%p, 0x%s, %d, %p, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(image
), imageLayout
, pDepthStencil
, rangeCount
, pRanges
);
1112 commandBuffer
->device
->funcs
.p_vkCmdClearDepthStencilImage(commandBuffer
->command_buffer
, image
, imageLayout
, pDepthStencil
, rangeCount
, pRanges
);
1115 static void WINAPI
wine_vkCmdCopyBuffer(VkCommandBuffer commandBuffer
, VkBuffer srcBuffer
, VkBuffer dstBuffer
, uint32_t regionCount
, const VkBufferCopy
*pRegions
)
1117 #if defined(USE_STRUCT_CONVERSION)
1118 VkBufferCopy_host
*pRegions_host
;
1119 TRACE("%p, 0x%s, 0x%s, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcBuffer
), wine_dbgstr_longlong(dstBuffer
), regionCount
, pRegions
);
1121 pRegions_host
= convert_VkBufferCopy_array_win_to_host(pRegions
, regionCount
);
1122 commandBuffer
->device
->funcs
.p_vkCmdCopyBuffer(commandBuffer
->command_buffer
, srcBuffer
, dstBuffer
, regionCount
, pRegions_host
);
1124 free_VkBufferCopy_array(pRegions_host
, regionCount
);
1126 TRACE("%p, 0x%s, 0x%s, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcBuffer
), wine_dbgstr_longlong(dstBuffer
), regionCount
, pRegions
);
1127 commandBuffer
->device
->funcs
.p_vkCmdCopyBuffer(commandBuffer
->command_buffer
, srcBuffer
, dstBuffer
, regionCount
, pRegions
);
1131 static void WINAPI
wine_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer
, VkBuffer srcBuffer
, VkImage dstImage
, VkImageLayout dstImageLayout
, uint32_t regionCount
, const VkBufferImageCopy
*pRegions
)
1133 #if defined(USE_STRUCT_CONVERSION)
1134 VkBufferImageCopy_host
*pRegions_host
;
1135 TRACE("%p, 0x%s, 0x%s, %d, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcBuffer
), wine_dbgstr_longlong(dstImage
), dstImageLayout
, regionCount
, pRegions
);
1137 pRegions_host
= convert_VkBufferImageCopy_array_win_to_host(pRegions
, regionCount
);
1138 commandBuffer
->device
->funcs
.p_vkCmdCopyBufferToImage(commandBuffer
->command_buffer
, srcBuffer
, dstImage
, dstImageLayout
, regionCount
, pRegions_host
);
1140 free_VkBufferImageCopy_array(pRegions_host
, regionCount
);
1142 TRACE("%p, 0x%s, 0x%s, %d, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcBuffer
), wine_dbgstr_longlong(dstImage
), dstImageLayout
, regionCount
, pRegions
);
1143 commandBuffer
->device
->funcs
.p_vkCmdCopyBufferToImage(commandBuffer
->command_buffer
, srcBuffer
, dstImage
, dstImageLayout
, regionCount
, pRegions
);
1147 static void WINAPI
wine_vkCmdCopyImage(VkCommandBuffer commandBuffer
, VkImage srcImage
, VkImageLayout srcImageLayout
, VkImage dstImage
, VkImageLayout dstImageLayout
, uint32_t regionCount
, const VkImageCopy
*pRegions
)
1149 TRACE("%p, 0x%s, %d, 0x%s, %d, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcImage
), srcImageLayout
, wine_dbgstr_longlong(dstImage
), dstImageLayout
, regionCount
, pRegions
);
1150 commandBuffer
->device
->funcs
.p_vkCmdCopyImage(commandBuffer
->command_buffer
, srcImage
, srcImageLayout
, dstImage
, dstImageLayout
, regionCount
, pRegions
);
1153 static void WINAPI
wine_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer
, VkImage srcImage
, VkImageLayout srcImageLayout
, VkBuffer dstBuffer
, uint32_t regionCount
, const VkBufferImageCopy
*pRegions
)
1155 #if defined(USE_STRUCT_CONVERSION)
1156 VkBufferImageCopy_host
*pRegions_host
;
1157 TRACE("%p, 0x%s, %d, 0x%s, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcImage
), srcImageLayout
, wine_dbgstr_longlong(dstBuffer
), regionCount
, pRegions
);
1159 pRegions_host
= convert_VkBufferImageCopy_array_win_to_host(pRegions
, regionCount
);
1160 commandBuffer
->device
->funcs
.p_vkCmdCopyImageToBuffer(commandBuffer
->command_buffer
, srcImage
, srcImageLayout
, dstBuffer
, regionCount
, pRegions_host
);
1162 free_VkBufferImageCopy_array(pRegions_host
, regionCount
);
1164 TRACE("%p, 0x%s, %d, 0x%s, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcImage
), srcImageLayout
, wine_dbgstr_longlong(dstBuffer
), regionCount
, pRegions
);
1165 commandBuffer
->device
->funcs
.p_vkCmdCopyImageToBuffer(commandBuffer
->command_buffer
, srcImage
, srcImageLayout
, dstBuffer
, regionCount
, pRegions
);
1169 static void WINAPI
wine_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer
, VkQueryPool queryPool
, uint32_t firstQuery
, uint32_t queryCount
, VkBuffer dstBuffer
, VkDeviceSize dstOffset
, VkDeviceSize stride
, VkQueryResultFlags flags
)
1171 TRACE("%p, 0x%s, %u, %u, 0x%s, 0x%s, 0x%s, %#x\n", commandBuffer
, wine_dbgstr_longlong(queryPool
), firstQuery
, queryCount
, wine_dbgstr_longlong(dstBuffer
), wine_dbgstr_longlong(dstOffset
), wine_dbgstr_longlong(stride
), flags
);
1172 commandBuffer
->device
->funcs
.p_vkCmdCopyQueryPoolResults(commandBuffer
->command_buffer
, queryPool
, firstQuery
, queryCount
, dstBuffer
, dstOffset
, stride
, flags
);
1175 static void WINAPI
wine_vkCmdDispatch(VkCommandBuffer commandBuffer
, uint32_t groupCountX
, uint32_t groupCountY
, uint32_t groupCountZ
)
1177 TRACE("%p, %u, %u, %u\n", commandBuffer
, groupCountX
, groupCountY
, groupCountZ
);
1178 commandBuffer
->device
->funcs
.p_vkCmdDispatch(commandBuffer
->command_buffer
, groupCountX
, groupCountY
, groupCountZ
);
1181 static void WINAPI
wine_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
)
1183 TRACE("%p, 0x%s, 0x%s\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
));
1184 commandBuffer
->device
->funcs
.p_vkCmdDispatchIndirect(commandBuffer
->command_buffer
, buffer
, offset
);
1187 static void WINAPI
wine_vkCmdDraw(VkCommandBuffer commandBuffer
, uint32_t vertexCount
, uint32_t instanceCount
, uint32_t firstVertex
, uint32_t firstInstance
)
1189 TRACE("%p, %u, %u, %u, %u\n", commandBuffer
, vertexCount
, instanceCount
, firstVertex
, firstInstance
);
1190 commandBuffer
->device
->funcs
.p_vkCmdDraw(commandBuffer
->command_buffer
, vertexCount
, instanceCount
, firstVertex
, firstInstance
);
1193 static void WINAPI
wine_vkCmdDrawIndexed(VkCommandBuffer commandBuffer
, uint32_t indexCount
, uint32_t instanceCount
, uint32_t firstIndex
, int32_t vertexOffset
, uint32_t firstInstance
)
1195 TRACE("%p, %u, %u, %u, %d, %u\n", commandBuffer
, indexCount
, instanceCount
, firstIndex
, vertexOffset
, firstInstance
);
1196 commandBuffer
->device
->funcs
.p_vkCmdDrawIndexed(commandBuffer
->command_buffer
, indexCount
, instanceCount
, firstIndex
, vertexOffset
, firstInstance
);
1199 static void WINAPI
wine_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
, uint32_t drawCount
, uint32_t stride
)
1201 TRACE("%p, 0x%s, 0x%s, %u, %u\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
), drawCount
, stride
);
1202 commandBuffer
->device
->funcs
.p_vkCmdDrawIndexedIndirect(commandBuffer
->command_buffer
, buffer
, offset
, drawCount
, stride
);
1205 static void WINAPI
wine_vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
, VkBuffer countBuffer
, VkDeviceSize countBufferOffset
, uint32_t maxDrawCount
, uint32_t stride
)
1207 TRACE("%p, 0x%s, 0x%s, 0x%s, 0x%s, %u, %u\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
), wine_dbgstr_longlong(countBuffer
), wine_dbgstr_longlong(countBufferOffset
), maxDrawCount
, stride
);
1208 commandBuffer
->device
->funcs
.p_vkCmdDrawIndexedIndirectCountAMD(commandBuffer
->command_buffer
, buffer
, offset
, countBuffer
, countBufferOffset
, maxDrawCount
, stride
);
1211 static void WINAPI
wine_vkCmdDrawIndirect(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
, uint32_t drawCount
, uint32_t stride
)
1213 TRACE("%p, 0x%s, 0x%s, %u, %u\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
), drawCount
, stride
);
1214 commandBuffer
->device
->funcs
.p_vkCmdDrawIndirect(commandBuffer
->command_buffer
, buffer
, offset
, drawCount
, stride
);
1217 static void WINAPI
wine_vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer
, VkBuffer buffer
, VkDeviceSize offset
, VkBuffer countBuffer
, VkDeviceSize countBufferOffset
, uint32_t maxDrawCount
, uint32_t stride
)
1219 TRACE("%p, 0x%s, 0x%s, 0x%s, 0x%s, %u, %u\n", commandBuffer
, wine_dbgstr_longlong(buffer
), wine_dbgstr_longlong(offset
), wine_dbgstr_longlong(countBuffer
), wine_dbgstr_longlong(countBufferOffset
), maxDrawCount
, stride
);
1220 commandBuffer
->device
->funcs
.p_vkCmdDrawIndirectCountAMD(commandBuffer
->command_buffer
, buffer
, offset
, countBuffer
, countBufferOffset
, maxDrawCount
, stride
);
1223 static void WINAPI
wine_vkCmdEndQuery(VkCommandBuffer commandBuffer
, VkQueryPool queryPool
, uint32_t query
)
1225 TRACE("%p, 0x%s, %u\n", commandBuffer
, wine_dbgstr_longlong(queryPool
), query
);
1226 commandBuffer
->device
->funcs
.p_vkCmdEndQuery(commandBuffer
->command_buffer
, queryPool
, query
);
1229 static void WINAPI
wine_vkCmdEndRenderPass(VkCommandBuffer commandBuffer
)
1231 TRACE("%p\n", commandBuffer
);
1232 commandBuffer
->device
->funcs
.p_vkCmdEndRenderPass(commandBuffer
->command_buffer
);
1235 static void WINAPI
wine_vkCmdFillBuffer(VkCommandBuffer commandBuffer
, VkBuffer dstBuffer
, VkDeviceSize dstOffset
, VkDeviceSize size
, uint32_t data
)
1237 TRACE("%p, 0x%s, 0x%s, 0x%s, %u\n", commandBuffer
, wine_dbgstr_longlong(dstBuffer
), wine_dbgstr_longlong(dstOffset
), wine_dbgstr_longlong(size
), data
);
1238 commandBuffer
->device
->funcs
.p_vkCmdFillBuffer(commandBuffer
->command_buffer
, dstBuffer
, dstOffset
, size
, data
);
1241 static void WINAPI
wine_vkCmdNextSubpass(VkCommandBuffer commandBuffer
, VkSubpassContents contents
)
1243 TRACE("%p, %d\n", commandBuffer
, contents
);
1244 commandBuffer
->device
->funcs
.p_vkCmdNextSubpass(commandBuffer
->command_buffer
, contents
);
1247 static void WINAPI
wine_vkCmdPipelineBarrier(VkCommandBuffer commandBuffer
, VkPipelineStageFlags srcStageMask
, VkPipelineStageFlags dstStageMask
, VkDependencyFlags dependencyFlags
, uint32_t memoryBarrierCount
, const VkMemoryBarrier
*pMemoryBarriers
, uint32_t bufferMemoryBarrierCount
, const VkBufferMemoryBarrier
*pBufferMemoryBarriers
, uint32_t imageMemoryBarrierCount
, const VkImageMemoryBarrier
*pImageMemoryBarriers
)
1249 #if defined(USE_STRUCT_CONVERSION)
1250 VkBufferMemoryBarrier_host
*pBufferMemoryBarriers_host
;
1251 VkImageMemoryBarrier_host
*pImageMemoryBarriers_host
;
1252 TRACE("%p, %#x, %#x, %#x, %u, %p, %u, %p, %u, %p\n", commandBuffer
, srcStageMask
, dstStageMask
, dependencyFlags
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1254 pBufferMemoryBarriers_host
= convert_VkBufferMemoryBarrier_array_win_to_host(pBufferMemoryBarriers
, bufferMemoryBarrierCount
);
1255 pImageMemoryBarriers_host
= convert_VkImageMemoryBarrier_array_win_to_host(pImageMemoryBarriers
, imageMemoryBarrierCount
);
1256 commandBuffer
->device
->funcs
.p_vkCmdPipelineBarrier(commandBuffer
->command_buffer
, srcStageMask
, dstStageMask
, dependencyFlags
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers_host
, imageMemoryBarrierCount
, pImageMemoryBarriers_host
);
1258 free_VkBufferMemoryBarrier_array(pBufferMemoryBarriers_host
, bufferMemoryBarrierCount
);
1259 free_VkImageMemoryBarrier_array(pImageMemoryBarriers_host
, imageMemoryBarrierCount
);
1261 TRACE("%p, %#x, %#x, %#x, %u, %p, %u, %p, %u, %p\n", commandBuffer
, srcStageMask
, dstStageMask
, dependencyFlags
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1262 commandBuffer
->device
->funcs
.p_vkCmdPipelineBarrier(commandBuffer
->command_buffer
, srcStageMask
, dstStageMask
, dependencyFlags
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1266 static void WINAPI
wine_vkCmdPushConstants(VkCommandBuffer commandBuffer
, VkPipelineLayout layout
, VkShaderStageFlags stageFlags
, uint32_t offset
, uint32_t size
, const void *pValues
)
1268 TRACE("%p, 0x%s, %#x, %u, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(layout
), stageFlags
, offset
, size
, pValues
);
1269 commandBuffer
->device
->funcs
.p_vkCmdPushConstants(commandBuffer
->command_buffer
, layout
, stageFlags
, offset
, size
, pValues
);
1272 static void WINAPI
wine_vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer
, VkPipelineBindPoint pipelineBindPoint
, VkPipelineLayout layout
, uint32_t set
, uint32_t descriptorWriteCount
, const VkWriteDescriptorSet
*pDescriptorWrites
)
1274 #if defined(USE_STRUCT_CONVERSION)
1275 VkWriteDescriptorSet_host
*pDescriptorWrites_host
;
1276 TRACE("%p, %d, 0x%s, %u, %u, %p\n", commandBuffer
, pipelineBindPoint
, wine_dbgstr_longlong(layout
), set
, descriptorWriteCount
, pDescriptorWrites
);
1278 pDescriptorWrites_host
= convert_VkWriteDescriptorSet_array_win_to_host(pDescriptorWrites
, descriptorWriteCount
);
1279 commandBuffer
->device
->funcs
.p_vkCmdPushDescriptorSetKHR(commandBuffer
->command_buffer
, pipelineBindPoint
, layout
, set
, descriptorWriteCount
, pDescriptorWrites_host
);
1281 free_VkWriteDescriptorSet_array(pDescriptorWrites_host
, descriptorWriteCount
);
1283 TRACE("%p, %d, 0x%s, %u, %u, %p\n", commandBuffer
, pipelineBindPoint
, wine_dbgstr_longlong(layout
), set
, descriptorWriteCount
, pDescriptorWrites
);
1284 commandBuffer
->device
->funcs
.p_vkCmdPushDescriptorSetKHR(commandBuffer
->command_buffer
, pipelineBindPoint
, layout
, set
, descriptorWriteCount
, pDescriptorWrites
);
1288 static void WINAPI
wine_vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer
, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate
, VkPipelineLayout layout
, uint32_t set
, const void *pData
)
1290 TRACE("%p, 0x%s, 0x%s, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(descriptorUpdateTemplate
), wine_dbgstr_longlong(layout
), set
, pData
);
1291 commandBuffer
->device
->funcs
.p_vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer
->command_buffer
, descriptorUpdateTemplate
, layout
, set
, pData
);
1294 static void WINAPI
wine_vkCmdResetEvent(VkCommandBuffer commandBuffer
, VkEvent event
, VkPipelineStageFlags stageMask
)
1296 TRACE("%p, 0x%s, %#x\n", commandBuffer
, wine_dbgstr_longlong(event
), stageMask
);
1297 commandBuffer
->device
->funcs
.p_vkCmdResetEvent(commandBuffer
->command_buffer
, event
, stageMask
);
1300 static void WINAPI
wine_vkCmdResetQueryPool(VkCommandBuffer commandBuffer
, VkQueryPool queryPool
, uint32_t firstQuery
, uint32_t queryCount
)
1302 TRACE("%p, 0x%s, %u, %u\n", commandBuffer
, wine_dbgstr_longlong(queryPool
), firstQuery
, queryCount
);
1303 commandBuffer
->device
->funcs
.p_vkCmdResetQueryPool(commandBuffer
->command_buffer
, queryPool
, firstQuery
, queryCount
);
1306 static void WINAPI
wine_vkCmdResolveImage(VkCommandBuffer commandBuffer
, VkImage srcImage
, VkImageLayout srcImageLayout
, VkImage dstImage
, VkImageLayout dstImageLayout
, uint32_t regionCount
, const VkImageResolve
*pRegions
)
1308 TRACE("%p, 0x%s, %d, 0x%s, %d, %u, %p\n", commandBuffer
, wine_dbgstr_longlong(srcImage
), srcImageLayout
, wine_dbgstr_longlong(dstImage
), dstImageLayout
, regionCount
, pRegions
);
1309 commandBuffer
->device
->funcs
.p_vkCmdResolveImage(commandBuffer
->command_buffer
, srcImage
, srcImageLayout
, dstImage
, dstImageLayout
, regionCount
, pRegions
);
1312 static void WINAPI
wine_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer
, const float blendConstants
[4])
1314 TRACE("%p, %p\n", commandBuffer
, blendConstants
);
1315 commandBuffer
->device
->funcs
.p_vkCmdSetBlendConstants(commandBuffer
->command_buffer
, blendConstants
);
1318 static void WINAPI
wine_vkCmdSetDepthBias(VkCommandBuffer commandBuffer
, float depthBiasConstantFactor
, float depthBiasClamp
, float depthBiasSlopeFactor
)
1320 TRACE("%p, %f, %f, %f\n", commandBuffer
, depthBiasConstantFactor
, depthBiasClamp
, depthBiasSlopeFactor
);
1321 commandBuffer
->device
->funcs
.p_vkCmdSetDepthBias(commandBuffer
->command_buffer
, depthBiasConstantFactor
, depthBiasClamp
, depthBiasSlopeFactor
);
1324 static void WINAPI
wine_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer
, float minDepthBounds
, float maxDepthBounds
)
1326 TRACE("%p, %f, %f\n", commandBuffer
, minDepthBounds
, maxDepthBounds
);
1327 commandBuffer
->device
->funcs
.p_vkCmdSetDepthBounds(commandBuffer
->command_buffer
, minDepthBounds
, maxDepthBounds
);
1330 static void WINAPI
wine_vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer
, uint32_t firstDiscardRectangle
, uint32_t discardRectangleCount
, const VkRect2D
*pDiscardRectangles
)
1332 TRACE("%p, %u, %u, %p\n", commandBuffer
, firstDiscardRectangle
, discardRectangleCount
, pDiscardRectangles
);
1333 commandBuffer
->device
->funcs
.p_vkCmdSetDiscardRectangleEXT(commandBuffer
->command_buffer
, firstDiscardRectangle
, discardRectangleCount
, pDiscardRectangles
);
1336 static void WINAPI
wine_vkCmdSetEvent(VkCommandBuffer commandBuffer
, VkEvent event
, VkPipelineStageFlags stageMask
)
1338 TRACE("%p, 0x%s, %#x\n", commandBuffer
, wine_dbgstr_longlong(event
), stageMask
);
1339 commandBuffer
->device
->funcs
.p_vkCmdSetEvent(commandBuffer
->command_buffer
, event
, stageMask
);
1342 static void WINAPI
wine_vkCmdSetLineWidth(VkCommandBuffer commandBuffer
, float lineWidth
)
1344 TRACE("%p, %f\n", commandBuffer
, lineWidth
);
1345 commandBuffer
->device
->funcs
.p_vkCmdSetLineWidth(commandBuffer
->command_buffer
, lineWidth
);
1348 static void WINAPI
wine_vkCmdSetScissor(VkCommandBuffer commandBuffer
, uint32_t firstScissor
, uint32_t scissorCount
, const VkRect2D
*pScissors
)
1350 TRACE("%p, %u, %u, %p\n", commandBuffer
, firstScissor
, scissorCount
, pScissors
);
1351 commandBuffer
->device
->funcs
.p_vkCmdSetScissor(commandBuffer
->command_buffer
, firstScissor
, scissorCount
, pScissors
);
1354 static void WINAPI
wine_vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer
, VkStencilFaceFlags faceMask
, uint32_t compareMask
)
1356 TRACE("%p, %#x, %u\n", commandBuffer
, faceMask
, compareMask
);
1357 commandBuffer
->device
->funcs
.p_vkCmdSetStencilCompareMask(commandBuffer
->command_buffer
, faceMask
, compareMask
);
1360 static void WINAPI
wine_vkCmdSetStencilReference(VkCommandBuffer commandBuffer
, VkStencilFaceFlags faceMask
, uint32_t reference
)
1362 TRACE("%p, %#x, %u\n", commandBuffer
, faceMask
, reference
);
1363 commandBuffer
->device
->funcs
.p_vkCmdSetStencilReference(commandBuffer
->command_buffer
, faceMask
, reference
);
1366 static void WINAPI
wine_vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer
, VkStencilFaceFlags faceMask
, uint32_t writeMask
)
1368 TRACE("%p, %#x, %u\n", commandBuffer
, faceMask
, writeMask
);
1369 commandBuffer
->device
->funcs
.p_vkCmdSetStencilWriteMask(commandBuffer
->command_buffer
, faceMask
, writeMask
);
1372 static void WINAPI
wine_vkCmdSetViewport(VkCommandBuffer commandBuffer
, uint32_t firstViewport
, uint32_t viewportCount
, const VkViewport
*pViewports
)
1374 TRACE("%p, %u, %u, %p\n", commandBuffer
, firstViewport
, viewportCount
, pViewports
);
1375 commandBuffer
->device
->funcs
.p_vkCmdSetViewport(commandBuffer
->command_buffer
, firstViewport
, viewportCount
, pViewports
);
1378 static void WINAPI
wine_vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer
, uint32_t firstViewport
, uint32_t viewportCount
, const VkViewportWScalingNV
*pViewportWScalings
)
1380 TRACE("%p, %u, %u, %p\n", commandBuffer
, firstViewport
, viewportCount
, pViewportWScalings
);
1381 commandBuffer
->device
->funcs
.p_vkCmdSetViewportWScalingNV(commandBuffer
->command_buffer
, firstViewport
, viewportCount
, pViewportWScalings
);
1384 static void WINAPI
wine_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer
, VkBuffer dstBuffer
, VkDeviceSize dstOffset
, VkDeviceSize dataSize
, const void *pData
)
1386 TRACE("%p, 0x%s, 0x%s, 0x%s, %p\n", commandBuffer
, wine_dbgstr_longlong(dstBuffer
), wine_dbgstr_longlong(dstOffset
), wine_dbgstr_longlong(dataSize
), pData
);
1387 commandBuffer
->device
->funcs
.p_vkCmdUpdateBuffer(commandBuffer
->command_buffer
, dstBuffer
, dstOffset
, dataSize
, pData
);
1390 static void WINAPI
wine_vkCmdWaitEvents(VkCommandBuffer commandBuffer
, uint32_t eventCount
, const VkEvent
*pEvents
, VkPipelineStageFlags srcStageMask
, VkPipelineStageFlags dstStageMask
, uint32_t memoryBarrierCount
, const VkMemoryBarrier
*pMemoryBarriers
, uint32_t bufferMemoryBarrierCount
, const VkBufferMemoryBarrier
*pBufferMemoryBarriers
, uint32_t imageMemoryBarrierCount
, const VkImageMemoryBarrier
*pImageMemoryBarriers
)
1392 #if defined(USE_STRUCT_CONVERSION)
1393 VkBufferMemoryBarrier_host
*pBufferMemoryBarriers_host
;
1394 VkImageMemoryBarrier_host
*pImageMemoryBarriers_host
;
1395 TRACE("%p, %u, %p, %#x, %#x, %u, %p, %u, %p, %u, %p\n", commandBuffer
, eventCount
, pEvents
, srcStageMask
, dstStageMask
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1397 pBufferMemoryBarriers_host
= convert_VkBufferMemoryBarrier_array_win_to_host(pBufferMemoryBarriers
, bufferMemoryBarrierCount
);
1398 pImageMemoryBarriers_host
= convert_VkImageMemoryBarrier_array_win_to_host(pImageMemoryBarriers
, imageMemoryBarrierCount
);
1399 commandBuffer
->device
->funcs
.p_vkCmdWaitEvents(commandBuffer
->command_buffer
, eventCount
, pEvents
, srcStageMask
, dstStageMask
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers_host
, imageMemoryBarrierCount
, pImageMemoryBarriers_host
);
1401 free_VkBufferMemoryBarrier_array(pBufferMemoryBarriers_host
, bufferMemoryBarrierCount
);
1402 free_VkImageMemoryBarrier_array(pImageMemoryBarriers_host
, imageMemoryBarrierCount
);
1404 TRACE("%p, %u, %p, %#x, %#x, %u, %p, %u, %p, %u, %p\n", commandBuffer
, eventCount
, pEvents
, srcStageMask
, dstStageMask
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1405 commandBuffer
->device
->funcs
.p_vkCmdWaitEvents(commandBuffer
->command_buffer
, eventCount
, pEvents
, srcStageMask
, dstStageMask
, memoryBarrierCount
, pMemoryBarriers
, bufferMemoryBarrierCount
, pBufferMemoryBarriers
, imageMemoryBarrierCount
, pImageMemoryBarriers
);
1409 static void WINAPI
wine_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer
, VkPipelineStageFlagBits pipelineStage
, VkQueryPool queryPool
, uint32_t query
)
1411 TRACE("%p, %d, 0x%s, %u\n", commandBuffer
, pipelineStage
, wine_dbgstr_longlong(queryPool
), query
);
1412 commandBuffer
->device
->funcs
.p_vkCmdWriteTimestamp(commandBuffer
->command_buffer
, pipelineStage
, queryPool
, query
);
1415 static VkResult WINAPI
wine_vkCreateBuffer(VkDevice device
, const VkBufferCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkBuffer
*pBuffer
)
1417 #if defined(USE_STRUCT_CONVERSION)
1419 VkBufferCreateInfo_host pCreateInfo_host
;
1420 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pBuffer
);
1422 convert_VkBufferCreateInfo_win_to_host(pCreateInfo
, &pCreateInfo_host
);
1423 result
= device
->funcs
.p_vkCreateBuffer(device
->device
, &pCreateInfo_host
, NULL
, pBuffer
);
1427 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pBuffer
);
1428 return device
->funcs
.p_vkCreateBuffer(device
->device
, pCreateInfo
, NULL
, pBuffer
);
1432 static VkResult WINAPI
wine_vkCreateBufferView(VkDevice device
, const VkBufferViewCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkBufferView
*pView
)
1434 #if defined(USE_STRUCT_CONVERSION)
1436 VkBufferViewCreateInfo_host pCreateInfo_host
;
1437 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pView
);
1439 convert_VkBufferViewCreateInfo_win_to_host(pCreateInfo
, &pCreateInfo_host
);
1440 result
= device
->funcs
.p_vkCreateBufferView(device
->device
, &pCreateInfo_host
, NULL
, pView
);
1444 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pView
);
1445 return device
->funcs
.p_vkCreateBufferView(device
->device
, pCreateInfo
, NULL
, pView
);
1449 static VkResult WINAPI
wine_vkCreateCommandPool(VkDevice device
, const VkCommandPoolCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkCommandPool
*pCommandPool
)
1451 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pCommandPool
);
1452 return device
->funcs
.p_vkCreateCommandPool(device
->device
, pCreateInfo
, NULL
, pCommandPool
);
1455 static VkResult WINAPI
wine_vkCreateComputePipelines(VkDevice device
, VkPipelineCache pipelineCache
, uint32_t createInfoCount
, const VkComputePipelineCreateInfo
*pCreateInfos
, const VkAllocationCallbacks
*pAllocator
, VkPipeline
*pPipelines
)
1457 #if defined(USE_STRUCT_CONVERSION)
1459 VkComputePipelineCreateInfo_host
*pCreateInfos_host
;
1460 TRACE("%p, 0x%s, %u, %p, %p, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), createInfoCount
, pCreateInfos
, pAllocator
, pPipelines
);
1462 pCreateInfos_host
= convert_VkComputePipelineCreateInfo_array_win_to_host(pCreateInfos
, createInfoCount
);
1463 result
= device
->funcs
.p_vkCreateComputePipelines(device
->device
, pipelineCache
, createInfoCount
, pCreateInfos_host
, NULL
, pPipelines
);
1465 free_VkComputePipelineCreateInfo_array(pCreateInfos_host
, createInfoCount
);
1468 TRACE("%p, 0x%s, %u, %p, %p, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), createInfoCount
, pCreateInfos
, pAllocator
, pPipelines
);
1469 return device
->funcs
.p_vkCreateComputePipelines(device
->device
, pipelineCache
, createInfoCount
, pCreateInfos
, NULL
, pPipelines
);
1473 static VkResult WINAPI
wine_vkCreateDescriptorPool(VkDevice device
, const VkDescriptorPoolCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkDescriptorPool
*pDescriptorPool
)
1475 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pDescriptorPool
);
1476 return device
->funcs
.p_vkCreateDescriptorPool(device
->device
, pCreateInfo
, NULL
, pDescriptorPool
);
1479 static VkResult WINAPI
wine_vkCreateDescriptorSetLayout(VkDevice device
, const VkDescriptorSetLayoutCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkDescriptorSetLayout
*pSetLayout
)
1481 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pSetLayout
);
1482 return device
->funcs
.p_vkCreateDescriptorSetLayout(device
->device
, pCreateInfo
, NULL
, pSetLayout
);
1485 static VkResult WINAPI
wine_vkCreateDescriptorUpdateTemplateKHR(VkDevice device
, const VkDescriptorUpdateTemplateCreateInfoKHR
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkDescriptorUpdateTemplateKHR
*pDescriptorUpdateTemplate
)
1487 #if defined(USE_STRUCT_CONVERSION)
1489 VkDescriptorUpdateTemplateCreateInfoKHR_host pCreateInfo_host
;
1490 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pDescriptorUpdateTemplate
);
1492 convert_VkDescriptorUpdateTemplateCreateInfoKHR_win_to_host(pCreateInfo
, &pCreateInfo_host
);
1493 result
= device
->funcs
.p_vkCreateDescriptorUpdateTemplateKHR(device
->device
, &pCreateInfo_host
, NULL
, pDescriptorUpdateTemplate
);
1497 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pDescriptorUpdateTemplate
);
1498 return device
->funcs
.p_vkCreateDescriptorUpdateTemplateKHR(device
->device
, pCreateInfo
, NULL
, pDescriptorUpdateTemplate
);
1502 static VkResult WINAPI
wine_vkCreateEvent(VkDevice device
, const VkEventCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkEvent
*pEvent
)
1504 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pEvent
);
1505 return device
->funcs
.p_vkCreateEvent(device
->device
, pCreateInfo
, NULL
, pEvent
);
1508 static VkResult WINAPI
wine_vkCreateFence(VkDevice device
, const VkFenceCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkFence
*pFence
)
1510 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pFence
);
1511 return device
->funcs
.p_vkCreateFence(device
->device
, pCreateInfo
, NULL
, pFence
);
1514 static VkResult WINAPI
wine_vkCreateFramebuffer(VkDevice device
, const VkFramebufferCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkFramebuffer
*pFramebuffer
)
1516 #if defined(USE_STRUCT_CONVERSION)
1518 VkFramebufferCreateInfo_host pCreateInfo_host
;
1519 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pFramebuffer
);
1521 convert_VkFramebufferCreateInfo_win_to_host(pCreateInfo
, &pCreateInfo_host
);
1522 result
= device
->funcs
.p_vkCreateFramebuffer(device
->device
, &pCreateInfo_host
, NULL
, pFramebuffer
);
1526 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pFramebuffer
);
1527 return device
->funcs
.p_vkCreateFramebuffer(device
->device
, pCreateInfo
, NULL
, pFramebuffer
);
1531 static VkResult WINAPI
wine_vkCreateGraphicsPipelines(VkDevice device
, VkPipelineCache pipelineCache
, uint32_t createInfoCount
, const VkGraphicsPipelineCreateInfo
*pCreateInfos
, const VkAllocationCallbacks
*pAllocator
, VkPipeline
*pPipelines
)
1533 #if defined(USE_STRUCT_CONVERSION)
1535 VkGraphicsPipelineCreateInfo_host
*pCreateInfos_host
;
1536 TRACE("%p, 0x%s, %u, %p, %p, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), createInfoCount
, pCreateInfos
, pAllocator
, pPipelines
);
1538 pCreateInfos_host
= convert_VkGraphicsPipelineCreateInfo_array_win_to_host(pCreateInfos
, createInfoCount
);
1539 result
= device
->funcs
.p_vkCreateGraphicsPipelines(device
->device
, pipelineCache
, createInfoCount
, pCreateInfos_host
, NULL
, pPipelines
);
1541 free_VkGraphicsPipelineCreateInfo_array(pCreateInfos_host
, createInfoCount
);
1544 TRACE("%p, 0x%s, %u, %p, %p, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), createInfoCount
, pCreateInfos
, pAllocator
, pPipelines
);
1545 return device
->funcs
.p_vkCreateGraphicsPipelines(device
->device
, pipelineCache
, createInfoCount
, pCreateInfos
, NULL
, pPipelines
);
1549 static VkResult WINAPI
wine_vkCreateImage(VkDevice device
, const VkImageCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkImage
*pImage
)
1551 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pImage
);
1552 return device
->funcs
.p_vkCreateImage(device
->device
, pCreateInfo
, NULL
, pImage
);
1555 static VkResult WINAPI
wine_vkCreateImageView(VkDevice device
, const VkImageViewCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkImageView
*pView
)
1557 #if defined(USE_STRUCT_CONVERSION)
1559 VkImageViewCreateInfo_host pCreateInfo_host
;
1560 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pView
);
1562 convert_VkImageViewCreateInfo_win_to_host(pCreateInfo
, &pCreateInfo_host
);
1563 result
= device
->funcs
.p_vkCreateImageView(device
->device
, &pCreateInfo_host
, NULL
, pView
);
1567 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pView
);
1568 return device
->funcs
.p_vkCreateImageView(device
->device
, pCreateInfo
, NULL
, pView
);
1572 static VkResult WINAPI
wine_vkCreatePipelineCache(VkDevice device
, const VkPipelineCacheCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkPipelineCache
*pPipelineCache
)
1574 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pPipelineCache
);
1575 return device
->funcs
.p_vkCreatePipelineCache(device
->device
, pCreateInfo
, NULL
, pPipelineCache
);
1578 static VkResult WINAPI
wine_vkCreatePipelineLayout(VkDevice device
, const VkPipelineLayoutCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkPipelineLayout
*pPipelineLayout
)
1580 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pPipelineLayout
);
1581 return device
->funcs
.p_vkCreatePipelineLayout(device
->device
, pCreateInfo
, NULL
, pPipelineLayout
);
1584 static VkResult WINAPI
wine_vkCreateQueryPool(VkDevice device
, const VkQueryPoolCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkQueryPool
*pQueryPool
)
1586 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pQueryPool
);
1587 return device
->funcs
.p_vkCreateQueryPool(device
->device
, pCreateInfo
, NULL
, pQueryPool
);
1590 static VkResult WINAPI
wine_vkCreateRenderPass(VkDevice device
, const VkRenderPassCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkRenderPass
*pRenderPass
)
1592 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pRenderPass
);
1593 return device
->funcs
.p_vkCreateRenderPass(device
->device
, pCreateInfo
, NULL
, pRenderPass
);
1596 static VkResult WINAPI
wine_vkCreateSampler(VkDevice device
, const VkSamplerCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkSampler
*pSampler
)
1598 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pSampler
);
1599 return device
->funcs
.p_vkCreateSampler(device
->device
, pCreateInfo
, NULL
, pSampler
);
1602 static VkResult WINAPI
wine_vkCreateSemaphore(VkDevice device
, const VkSemaphoreCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkSemaphore
*pSemaphore
)
1604 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pSemaphore
);
1605 return device
->funcs
.p_vkCreateSemaphore(device
->device
, pCreateInfo
, NULL
, pSemaphore
);
1608 static VkResult WINAPI
wine_vkCreateShaderModule(VkDevice device
, const VkShaderModuleCreateInfo
*pCreateInfo
, const VkAllocationCallbacks
*pAllocator
, VkShaderModule
*pShaderModule
)
1610 TRACE("%p, %p, %p, %p\n", device
, pCreateInfo
, pAllocator
, pShaderModule
);
1611 return device
->funcs
.p_vkCreateShaderModule(device
->device
, pCreateInfo
, NULL
, pShaderModule
);
1614 static void WINAPI
wine_vkDestroyBuffer(VkDevice device
, VkBuffer buffer
, const VkAllocationCallbacks
*pAllocator
)
1616 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(buffer
), pAllocator
);
1617 device
->funcs
.p_vkDestroyBuffer(device
->device
, buffer
, NULL
);
1620 static void WINAPI
wine_vkDestroyBufferView(VkDevice device
, VkBufferView bufferView
, const VkAllocationCallbacks
*pAllocator
)
1622 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(bufferView
), pAllocator
);
1623 device
->funcs
.p_vkDestroyBufferView(device
->device
, bufferView
, NULL
);
1626 static void WINAPI
wine_vkDestroyCommandPool(VkDevice device
, VkCommandPool commandPool
, const VkAllocationCallbacks
*pAllocator
)
1628 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(commandPool
), pAllocator
);
1629 device
->funcs
.p_vkDestroyCommandPool(device
->device
, commandPool
, NULL
);
1632 static void WINAPI
wine_vkDestroyDescriptorPool(VkDevice device
, VkDescriptorPool descriptorPool
, const VkAllocationCallbacks
*pAllocator
)
1634 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(descriptorPool
), pAllocator
);
1635 device
->funcs
.p_vkDestroyDescriptorPool(device
->device
, descriptorPool
, NULL
);
1638 static void WINAPI
wine_vkDestroyDescriptorSetLayout(VkDevice device
, VkDescriptorSetLayout descriptorSetLayout
, const VkAllocationCallbacks
*pAllocator
)
1640 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(descriptorSetLayout
), pAllocator
);
1641 device
->funcs
.p_vkDestroyDescriptorSetLayout(device
->device
, descriptorSetLayout
, NULL
);
1644 static void WINAPI
wine_vkDestroyDescriptorUpdateTemplateKHR(VkDevice device
, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate
, const VkAllocationCallbacks
*pAllocator
)
1646 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(descriptorUpdateTemplate
), pAllocator
);
1647 device
->funcs
.p_vkDestroyDescriptorUpdateTemplateKHR(device
->device
, descriptorUpdateTemplate
, NULL
);
1650 static void WINAPI
wine_vkDestroyEvent(VkDevice device
, VkEvent event
, const VkAllocationCallbacks
*pAllocator
)
1652 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(event
), pAllocator
);
1653 device
->funcs
.p_vkDestroyEvent(device
->device
, event
, NULL
);
1656 static void WINAPI
wine_vkDestroyFence(VkDevice device
, VkFence fence
, const VkAllocationCallbacks
*pAllocator
)
1658 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(fence
), pAllocator
);
1659 device
->funcs
.p_vkDestroyFence(device
->device
, fence
, NULL
);
1662 static void WINAPI
wine_vkDestroyFramebuffer(VkDevice device
, VkFramebuffer framebuffer
, const VkAllocationCallbacks
*pAllocator
)
1664 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(framebuffer
), pAllocator
);
1665 device
->funcs
.p_vkDestroyFramebuffer(device
->device
, framebuffer
, NULL
);
1668 static void WINAPI
wine_vkDestroyImage(VkDevice device
, VkImage image
, const VkAllocationCallbacks
*pAllocator
)
1670 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(image
), pAllocator
);
1671 device
->funcs
.p_vkDestroyImage(device
->device
, image
, NULL
);
1674 static void WINAPI
wine_vkDestroyImageView(VkDevice device
, VkImageView imageView
, const VkAllocationCallbacks
*pAllocator
)
1676 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(imageView
), pAllocator
);
1677 device
->funcs
.p_vkDestroyImageView(device
->device
, imageView
, NULL
);
1680 static void WINAPI
wine_vkDestroyPipeline(VkDevice device
, VkPipeline pipeline
, const VkAllocationCallbacks
*pAllocator
)
1682 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(pipeline
), pAllocator
);
1683 device
->funcs
.p_vkDestroyPipeline(device
->device
, pipeline
, NULL
);
1686 static void WINAPI
wine_vkDestroyPipelineCache(VkDevice device
, VkPipelineCache pipelineCache
, const VkAllocationCallbacks
*pAllocator
)
1688 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), pAllocator
);
1689 device
->funcs
.p_vkDestroyPipelineCache(device
->device
, pipelineCache
, NULL
);
1692 static void WINAPI
wine_vkDestroyPipelineLayout(VkDevice device
, VkPipelineLayout pipelineLayout
, const VkAllocationCallbacks
*pAllocator
)
1694 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(pipelineLayout
), pAllocator
);
1695 device
->funcs
.p_vkDestroyPipelineLayout(device
->device
, pipelineLayout
, NULL
);
1698 static void WINAPI
wine_vkDestroyQueryPool(VkDevice device
, VkQueryPool queryPool
, const VkAllocationCallbacks
*pAllocator
)
1700 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(queryPool
), pAllocator
);
1701 device
->funcs
.p_vkDestroyQueryPool(device
->device
, queryPool
, NULL
);
1704 static void WINAPI
wine_vkDestroyRenderPass(VkDevice device
, VkRenderPass renderPass
, const VkAllocationCallbacks
*pAllocator
)
1706 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(renderPass
), pAllocator
);
1707 device
->funcs
.p_vkDestroyRenderPass(device
->device
, renderPass
, NULL
);
1710 static void WINAPI
wine_vkDestroySampler(VkDevice device
, VkSampler sampler
, const VkAllocationCallbacks
*pAllocator
)
1712 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(sampler
), pAllocator
);
1713 device
->funcs
.p_vkDestroySampler(device
->device
, sampler
, NULL
);
1716 static void WINAPI
wine_vkDestroySemaphore(VkDevice device
, VkSemaphore semaphore
, const VkAllocationCallbacks
*pAllocator
)
1718 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(semaphore
), pAllocator
);
1719 device
->funcs
.p_vkDestroySemaphore(device
->device
, semaphore
, NULL
);
1722 static void WINAPI
wine_vkDestroyShaderModule(VkDevice device
, VkShaderModule shaderModule
, const VkAllocationCallbacks
*pAllocator
)
1724 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(shaderModule
), pAllocator
);
1725 device
->funcs
.p_vkDestroyShaderModule(device
->device
, shaderModule
, NULL
);
1728 static VkResult WINAPI
wine_vkDeviceWaitIdle(VkDevice device
)
1730 TRACE("%p\n", device
);
1731 return device
->funcs
.p_vkDeviceWaitIdle(device
->device
);
1734 static VkResult WINAPI
wine_vkEndCommandBuffer(VkCommandBuffer commandBuffer
)
1736 TRACE("%p\n", commandBuffer
);
1737 return commandBuffer
->device
->funcs
.p_vkEndCommandBuffer(commandBuffer
->command_buffer
);
1740 static VkResult WINAPI
wine_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice
, uint32_t *pPropertyCount
, VkLayerProperties
*pProperties
)
1742 TRACE("%p, %p, %p\n", physicalDevice
, pPropertyCount
, pProperties
);
1743 return physicalDevice
->instance
->funcs
.p_vkEnumerateDeviceLayerProperties(physicalDevice
->phys_dev
, pPropertyCount
, pProperties
);
1746 static VkResult WINAPI
wine_vkFlushMappedMemoryRanges(VkDevice device
, uint32_t memoryRangeCount
, const VkMappedMemoryRange
*pMemoryRanges
)
1748 #if defined(USE_STRUCT_CONVERSION)
1750 VkMappedMemoryRange_host
*pMemoryRanges_host
;
1751 TRACE("%p, %u, %p\n", device
, memoryRangeCount
, pMemoryRanges
);
1753 pMemoryRanges_host
= convert_VkMappedMemoryRange_array_win_to_host(pMemoryRanges
, memoryRangeCount
);
1754 result
= device
->funcs
.p_vkFlushMappedMemoryRanges(device
->device
, memoryRangeCount
, pMemoryRanges_host
);
1756 free_VkMappedMemoryRange_array(pMemoryRanges_host
, memoryRangeCount
);
1759 TRACE("%p, %u, %p\n", device
, memoryRangeCount
, pMemoryRanges
);
1760 return device
->funcs
.p_vkFlushMappedMemoryRanges(device
->device
, memoryRangeCount
, pMemoryRanges
);
1764 static VkResult WINAPI
wine_vkFreeDescriptorSets(VkDevice device
, VkDescriptorPool descriptorPool
, uint32_t descriptorSetCount
, const VkDescriptorSet
*pDescriptorSets
)
1766 TRACE("%p, 0x%s, %u, %p\n", device
, wine_dbgstr_longlong(descriptorPool
), descriptorSetCount
, pDescriptorSets
);
1767 return device
->funcs
.p_vkFreeDescriptorSets(device
->device
, descriptorPool
, descriptorSetCount
, pDescriptorSets
);
1770 static void WINAPI
wine_vkFreeMemory(VkDevice device
, VkDeviceMemory memory
, const VkAllocationCallbacks
*pAllocator
)
1772 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(memory
), pAllocator
);
1773 device
->funcs
.p_vkFreeMemory(device
->device
, memory
, NULL
);
1776 static void WINAPI
wine_vkGetBufferMemoryRequirements(VkDevice device
, VkBuffer buffer
, VkMemoryRequirements
*pMemoryRequirements
)
1778 #if defined(USE_STRUCT_CONVERSION)
1779 VkMemoryRequirements_host pMemoryRequirements_host
;
1780 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(buffer
), pMemoryRequirements
);
1782 device
->funcs
.p_vkGetBufferMemoryRequirements(device
->device
, buffer
, &pMemoryRequirements_host
);
1784 convert_VkMemoryRequirements_host_to_win(&pMemoryRequirements_host
, pMemoryRequirements
);
1786 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(buffer
), pMemoryRequirements
);
1787 device
->funcs
.p_vkGetBufferMemoryRequirements(device
->device
, buffer
, pMemoryRequirements
);
1791 static void WINAPI
wine_vkGetDeviceMemoryCommitment(VkDevice device
, VkDeviceMemory memory
, VkDeviceSize
*pCommittedMemoryInBytes
)
1793 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(memory
), pCommittedMemoryInBytes
);
1794 device
->funcs
.p_vkGetDeviceMemoryCommitment(device
->device
, memory
, pCommittedMemoryInBytes
);
1797 static VkResult WINAPI
wine_vkGetEventStatus(VkDevice device
, VkEvent event
)
1799 TRACE("%p, 0x%s\n", device
, wine_dbgstr_longlong(event
));
1800 return device
->funcs
.p_vkGetEventStatus(device
->device
, event
);
1803 static VkResult WINAPI
wine_vkGetFenceStatus(VkDevice device
, VkFence fence
)
1805 TRACE("%p, 0x%s\n", device
, wine_dbgstr_longlong(fence
));
1806 return device
->funcs
.p_vkGetFenceStatus(device
->device
, fence
);
1809 static void WINAPI
wine_vkGetImageMemoryRequirements(VkDevice device
, VkImage image
, VkMemoryRequirements
*pMemoryRequirements
)
1811 #if defined(USE_STRUCT_CONVERSION)
1812 VkMemoryRequirements_host pMemoryRequirements_host
;
1813 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(image
), pMemoryRequirements
);
1815 device
->funcs
.p_vkGetImageMemoryRequirements(device
->device
, image
, &pMemoryRequirements_host
);
1817 convert_VkMemoryRequirements_host_to_win(&pMemoryRequirements_host
, pMemoryRequirements
);
1819 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(image
), pMemoryRequirements
);
1820 device
->funcs
.p_vkGetImageMemoryRequirements(device
->device
, image
, pMemoryRequirements
);
1824 static void WINAPI
wine_vkGetImageSparseMemoryRequirements(VkDevice device
, VkImage image
, uint32_t *pSparseMemoryRequirementCount
, VkSparseImageMemoryRequirements
*pSparseMemoryRequirements
)
1826 TRACE("%p, 0x%s, %p, %p\n", device
, wine_dbgstr_longlong(image
), pSparseMemoryRequirementCount
, pSparseMemoryRequirements
);
1827 device
->funcs
.p_vkGetImageSparseMemoryRequirements(device
->device
, image
, pSparseMemoryRequirementCount
, pSparseMemoryRequirements
);
1830 static void WINAPI
wine_vkGetImageSubresourceLayout(VkDevice device
, VkImage image
, const VkImageSubresource
*pSubresource
, VkSubresourceLayout
*pLayout
)
1832 #if defined(USE_STRUCT_CONVERSION)
1833 VkSubresourceLayout_host pLayout_host
;
1834 TRACE("%p, 0x%s, %p, %p\n", device
, wine_dbgstr_longlong(image
), pSubresource
, pLayout
);
1836 device
->funcs
.p_vkGetImageSubresourceLayout(device
->device
, image
, pSubresource
, &pLayout_host
);
1838 convert_VkSubresourceLayout_host_to_win(&pLayout_host
, pLayout
);
1840 TRACE("%p, 0x%s, %p, %p\n", device
, wine_dbgstr_longlong(image
), pSubresource
, pLayout
);
1841 device
->funcs
.p_vkGetImageSubresourceLayout(device
->device
, image
, pSubresource
, pLayout
);
1845 static void WINAPI
wine_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceFeatures
*pFeatures
)
1847 TRACE("%p, %p\n", physicalDevice
, pFeatures
);
1848 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceFeatures(physicalDevice
->phys_dev
, pFeatures
);
1851 static void WINAPI
wine_vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceFeatures2KHR
*pFeatures
)
1853 TRACE("%p, %p\n", physicalDevice
, pFeatures
);
1854 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceFeatures2KHR(physicalDevice
->phys_dev
, pFeatures
);
1857 static void WINAPI
wine_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice
, VkFormat format
, VkFormatProperties
*pFormatProperties
)
1859 TRACE("%p, %d, %p\n", physicalDevice
, format
, pFormatProperties
);
1860 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceFormatProperties(physicalDevice
->phys_dev
, format
, pFormatProperties
);
1863 static void WINAPI
wine_vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice
, VkFormat format
, VkFormatProperties2KHR
*pFormatProperties
)
1865 TRACE("%p, %d, %p\n", physicalDevice
, format
, pFormatProperties
);
1866 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice
->phys_dev
, format
, pFormatProperties
);
1869 static VkResult WINAPI
wine_vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice
, VkFormat format
, VkImageType type
, VkImageTiling tiling
, VkImageUsageFlags usage
, VkImageCreateFlags flags
, VkImageFormatProperties
*pImageFormatProperties
)
1871 #if defined(USE_STRUCT_CONVERSION)
1873 VkImageFormatProperties_host pImageFormatProperties_host
;
1874 TRACE("%p, %d, %d, %d, %#x, %#x, %p\n", physicalDevice
, format
, type
, tiling
, usage
, flags
, pImageFormatProperties
);
1876 result
= physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceImageFormatProperties(physicalDevice
->phys_dev
, format
, type
, tiling
, usage
, flags
, &pImageFormatProperties_host
);
1878 convert_VkImageFormatProperties_host_to_win(&pImageFormatProperties_host
, pImageFormatProperties
);
1881 TRACE("%p, %d, %d, %d, %#x, %#x, %p\n", physicalDevice
, format
, type
, tiling
, usage
, flags
, pImageFormatProperties
);
1882 return physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceImageFormatProperties(physicalDevice
->phys_dev
, format
, type
, tiling
, usage
, flags
, pImageFormatProperties
);
1886 static VkResult WINAPI
wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice
, const VkPhysicalDeviceImageFormatInfo2KHR
*pImageFormatInfo
, VkImageFormatProperties2KHR
*pImageFormatProperties
)
1888 #if defined(USE_STRUCT_CONVERSION)
1890 VkImageFormatProperties2KHR_host pImageFormatProperties_host
;
1891 TRACE("%p, %p, %p\n", physicalDevice
, pImageFormatInfo
, pImageFormatProperties
);
1893 convert_VkImageFormatProperties2KHR_win_to_host(pImageFormatProperties
, &pImageFormatProperties_host
);
1894 result
= physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice
->phys_dev
, pImageFormatInfo
, &pImageFormatProperties_host
);
1896 convert_VkImageFormatProperties2KHR_host_to_win(&pImageFormatProperties_host
, pImageFormatProperties
);
1899 TRACE("%p, %p, %p\n", physicalDevice
, pImageFormatInfo
, pImageFormatProperties
);
1900 return physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice
->phys_dev
, pImageFormatInfo
, pImageFormatProperties
);
1904 static void WINAPI
wine_vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceMemoryProperties
*pMemoryProperties
)
1906 #if defined(USE_STRUCT_CONVERSION)
1907 VkPhysicalDeviceMemoryProperties_host pMemoryProperties_host
;
1908 TRACE("%p, %p\n", physicalDevice
, pMemoryProperties
);
1910 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceMemoryProperties(physicalDevice
->phys_dev
, &pMemoryProperties_host
);
1912 convert_VkPhysicalDeviceMemoryProperties_host_to_win(&pMemoryProperties_host
, pMemoryProperties
);
1914 TRACE("%p, %p\n", physicalDevice
, pMemoryProperties
);
1915 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceMemoryProperties(physicalDevice
->phys_dev
, pMemoryProperties
);
1919 static void WINAPI
wine_vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceMemoryProperties2KHR
*pMemoryProperties
)
1921 #if defined(USE_STRUCT_CONVERSION)
1922 VkPhysicalDeviceMemoryProperties2KHR_host pMemoryProperties_host
;
1923 TRACE("%p, %p\n", physicalDevice
, pMemoryProperties
);
1925 convert_VkPhysicalDeviceMemoryProperties2KHR_win_to_host(pMemoryProperties
, &pMemoryProperties_host
);
1926 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice
->phys_dev
, &pMemoryProperties_host
);
1928 convert_VkPhysicalDeviceMemoryProperties2KHR_host_to_win(&pMemoryProperties_host
, pMemoryProperties
);
1930 TRACE("%p, %p\n", physicalDevice
, pMemoryProperties
);
1931 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice
->phys_dev
, pMemoryProperties
);
1935 static void WINAPI
wine_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceProperties
*pProperties
)
1937 #if defined(USE_STRUCT_CONVERSION)
1938 VkPhysicalDeviceProperties_host pProperties_host
;
1939 TRACE("%p, %p\n", physicalDevice
, pProperties
);
1941 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceProperties(physicalDevice
->phys_dev
, &pProperties_host
);
1943 convert_VkPhysicalDeviceProperties_host_to_win(&pProperties_host
, pProperties
);
1945 TRACE("%p, %p\n", physicalDevice
, pProperties
);
1946 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceProperties(physicalDevice
->phys_dev
, pProperties
);
1950 static void WINAPI
wine_vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice
, VkPhysicalDeviceProperties2KHR
*pProperties
)
1952 #if defined(USE_STRUCT_CONVERSION)
1953 VkPhysicalDeviceProperties2KHR_host pProperties_host
;
1954 TRACE("%p, %p\n", physicalDevice
, pProperties
);
1956 convert_VkPhysicalDeviceProperties2KHR_win_to_host(pProperties
, &pProperties_host
);
1957 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceProperties2KHR(physicalDevice
->phys_dev
, &pProperties_host
);
1959 convert_VkPhysicalDeviceProperties2KHR_host_to_win(&pProperties_host
, pProperties
);
1961 TRACE("%p, %p\n", physicalDevice
, pProperties
);
1962 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceProperties2KHR(physicalDevice
->phys_dev
, pProperties
);
1966 static void WINAPI
wine_vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice
, uint32_t *pQueueFamilyPropertyCount
, VkQueueFamilyProperties
*pQueueFamilyProperties
)
1968 TRACE("%p, %p, %p\n", physicalDevice
, pQueueFamilyPropertyCount
, pQueueFamilyProperties
);
1969 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice
->phys_dev
, pQueueFamilyPropertyCount
, pQueueFamilyProperties
);
1972 static void WINAPI
wine_vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice
, uint32_t *pQueueFamilyPropertyCount
, VkQueueFamilyProperties2KHR
*pQueueFamilyProperties
)
1974 TRACE("%p, %p, %p\n", physicalDevice
, pQueueFamilyPropertyCount
, pQueueFamilyProperties
);
1975 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice
->phys_dev
, pQueueFamilyPropertyCount
, pQueueFamilyProperties
);
1978 static void WINAPI
wine_vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice
, VkFormat format
, VkImageType type
, VkSampleCountFlagBits samples
, VkImageUsageFlags usage
, VkImageTiling tiling
, uint32_t *pPropertyCount
, VkSparseImageFormatProperties
*pProperties
)
1980 TRACE("%p, %d, %d, %d, %#x, %d, %p, %p\n", physicalDevice
, format
, type
, samples
, usage
, tiling
, pPropertyCount
, pProperties
);
1981 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice
->phys_dev
, format
, type
, samples
, usage
, tiling
, pPropertyCount
, pProperties
);
1984 static void WINAPI
wine_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice
, const VkPhysicalDeviceSparseImageFormatInfo2KHR
*pFormatInfo
, uint32_t *pPropertyCount
, VkSparseImageFormatProperties2KHR
*pProperties
)
1986 TRACE("%p, %p, %p, %p\n", physicalDevice
, pFormatInfo
, pPropertyCount
, pProperties
);
1987 physicalDevice
->instance
->funcs
.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice
->phys_dev
, pFormatInfo
, pPropertyCount
, pProperties
);
1990 static VkResult WINAPI
wine_vkGetPipelineCacheData(VkDevice device
, VkPipelineCache pipelineCache
, size_t *pDataSize
, void *pData
)
1992 TRACE("%p, 0x%s, %p, %p\n", device
, wine_dbgstr_longlong(pipelineCache
), pDataSize
, pData
);
1993 return device
->funcs
.p_vkGetPipelineCacheData(device
->device
, pipelineCache
, pDataSize
, pData
);
1996 static VkResult WINAPI
wine_vkGetQueryPoolResults(VkDevice device
, VkQueryPool queryPool
, uint32_t firstQuery
, uint32_t queryCount
, size_t dataSize
, void *pData
, VkDeviceSize stride
, VkQueryResultFlags flags
)
1998 TRACE("%p, 0x%s, %u, %u, 0x%s, %p, 0x%s, %#x\n", device
, wine_dbgstr_longlong(queryPool
), firstQuery
, queryCount
, wine_dbgstr_longlong(dataSize
), pData
, wine_dbgstr_longlong(stride
), flags
);
1999 return device
->funcs
.p_vkGetQueryPoolResults(device
->device
, queryPool
, firstQuery
, queryCount
, dataSize
, pData
, stride
, flags
);
2002 static void WINAPI
wine_vkGetRenderAreaGranularity(VkDevice device
, VkRenderPass renderPass
, VkExtent2D
*pGranularity
)
2004 TRACE("%p, 0x%s, %p\n", device
, wine_dbgstr_longlong(renderPass
), pGranularity
);
2005 device
->funcs
.p_vkGetRenderAreaGranularity(device
->device
, renderPass
, pGranularity
);
2008 static VkResult WINAPI
wine_vkInvalidateMappedMemoryRanges(VkDevice device
, uint32_t memoryRangeCount
, const VkMappedMemoryRange
*pMemoryRanges
)
2010 #if defined(USE_STRUCT_CONVERSION)
2012 VkMappedMemoryRange_host
*pMemoryRanges_host
;
2013 TRACE("%p, %u, %p\n", device
, memoryRangeCount
, pMemoryRanges
);
2015 pMemoryRanges_host
= convert_VkMappedMemoryRange_array_win_to_host(pMemoryRanges
, memoryRangeCount
);
2016 result
= device
->funcs
.p_vkInvalidateMappedMemoryRanges(device
->device
, memoryRangeCount
, pMemoryRanges_host
);
2018 free_VkMappedMemoryRange_array(pMemoryRanges_host
, memoryRangeCount
);
2021 TRACE("%p, %u, %p\n", device
, memoryRangeCount
, pMemoryRanges
);
2022 return device
->funcs
.p_vkInvalidateMappedMemoryRanges(device
->device
, memoryRangeCount
, pMemoryRanges
);
2026 static VkResult WINAPI
wine_vkMapMemory(VkDevice device
, VkDeviceMemory memory
, VkDeviceSize offset
, VkDeviceSize size
, VkMemoryMapFlags flags
, void **ppData
)
2028 TRACE("%p, 0x%s, 0x%s, 0x%s, %#x, %p\n", device
, wine_dbgstr_longlong(memory
), wine_dbgstr_longlong(offset
), wine_dbgstr_longlong(size
), flags
, ppData
);
2029 return device
->funcs
.p_vkMapMemory(device
->device
, memory
, offset
, size
, flags
, ppData
);
2032 static VkResult WINAPI
wine_vkMergePipelineCaches(VkDevice device
, VkPipelineCache dstCache
, uint32_t srcCacheCount
, const VkPipelineCache
*pSrcCaches
)
2034 TRACE("%p, 0x%s, %u, %p\n", device
, wine_dbgstr_longlong(dstCache
), srcCacheCount
, pSrcCaches
);
2035 return device
->funcs
.p_vkMergePipelineCaches(device
->device
, dstCache
, srcCacheCount
, pSrcCaches
);
2038 static VkResult WINAPI
wine_vkQueueBindSparse(VkQueue queue
, uint32_t bindInfoCount
, const VkBindSparseInfo
*pBindInfo
, VkFence fence
)
2040 #if defined(USE_STRUCT_CONVERSION)
2042 VkBindSparseInfo_host
*pBindInfo_host
;
2043 TRACE("%p, %u, %p, 0x%s\n", queue
, bindInfoCount
, pBindInfo
, wine_dbgstr_longlong(fence
));
2045 pBindInfo_host
= convert_VkBindSparseInfo_array_win_to_host(pBindInfo
, bindInfoCount
);
2046 result
= queue
->device
->funcs
.p_vkQueueBindSparse(queue
->queue
, bindInfoCount
, pBindInfo_host
, fence
);
2048 free_VkBindSparseInfo_array(pBindInfo_host
, bindInfoCount
);
2051 TRACE("%p, %u, %p, 0x%s\n", queue
, bindInfoCount
, pBindInfo
, wine_dbgstr_longlong(fence
));
2052 return queue
->device
->funcs
.p_vkQueueBindSparse(queue
->queue
, bindInfoCount
, pBindInfo
, fence
);
2056 static VkResult WINAPI
wine_vkQueueWaitIdle(VkQueue queue
)
2058 TRACE("%p\n", queue
);
2059 return queue
->device
->funcs
.p_vkQueueWaitIdle(queue
->queue
);
2062 static VkResult WINAPI
wine_vkResetCommandBuffer(VkCommandBuffer commandBuffer
, VkCommandBufferResetFlags flags
)
2064 TRACE("%p, %#x\n", commandBuffer
, flags
);
2065 return commandBuffer
->device
->funcs
.p_vkResetCommandBuffer(commandBuffer
->command_buffer
, flags
);
2068 static VkResult WINAPI
wine_vkResetCommandPool(VkDevice device
, VkCommandPool commandPool
, VkCommandPoolResetFlags flags
)
2070 TRACE("%p, 0x%s, %#x\n", device
, wine_dbgstr_longlong(commandPool
), flags
);
2071 return device
->funcs
.p_vkResetCommandPool(device
->device
, commandPool
, flags
);
2074 static VkResult WINAPI
wine_vkResetDescriptorPool(VkDevice device
, VkDescriptorPool descriptorPool
, VkDescriptorPoolResetFlags flags
)
2076 TRACE("%p, 0x%s, %#x\n", device
, wine_dbgstr_longlong(descriptorPool
), flags
);
2077 return device
->funcs
.p_vkResetDescriptorPool(device
->device
, descriptorPool
, flags
);
2080 static VkResult WINAPI
wine_vkResetEvent(VkDevice device
, VkEvent event
)
2082 TRACE("%p, 0x%s\n", device
, wine_dbgstr_longlong(event
));
2083 return device
->funcs
.p_vkResetEvent(device
->device
, event
);
2086 static VkResult WINAPI
wine_vkResetFences(VkDevice device
, uint32_t fenceCount
, const VkFence
*pFences
)
2088 TRACE("%p, %u, %p\n", device
, fenceCount
, pFences
);
2089 return device
->funcs
.p_vkResetFences(device
->device
, fenceCount
, pFences
);
2092 static VkResult WINAPI
wine_vkSetEvent(VkDevice device
, VkEvent event
)
2094 TRACE("%p, 0x%s\n", device
, wine_dbgstr_longlong(event
));
2095 return device
->funcs
.p_vkSetEvent(device
->device
, event
);
2098 static void WINAPI
wine_vkTrimCommandPoolKHR(VkDevice device
, VkCommandPool commandPool
, VkCommandPoolTrimFlagsKHR flags
)
2100 TRACE("%p, 0x%s, %#x\n", device
, wine_dbgstr_longlong(commandPool
), flags
);
2101 device
->funcs
.p_vkTrimCommandPoolKHR(device
->device
, commandPool
, flags
);
2104 static void WINAPI
wine_vkUnmapMemory(VkDevice device
, VkDeviceMemory memory
)
2106 TRACE("%p, 0x%s\n", device
, wine_dbgstr_longlong(memory
));
2107 device
->funcs
.p_vkUnmapMemory(device
->device
, memory
);
2110 static void WINAPI
wine_vkUpdateDescriptorSetWithTemplateKHR(VkDevice device
, VkDescriptorSet descriptorSet
, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate
, const void *pData
)
2112 TRACE("%p, 0x%s, 0x%s, %p\n", device
, wine_dbgstr_longlong(descriptorSet
), wine_dbgstr_longlong(descriptorUpdateTemplate
), pData
);
2113 device
->funcs
.p_vkUpdateDescriptorSetWithTemplateKHR(device
->device
, descriptorSet
, descriptorUpdateTemplate
, pData
);
2116 static void WINAPI
wine_vkUpdateDescriptorSets(VkDevice device
, uint32_t descriptorWriteCount
, const VkWriteDescriptorSet
*pDescriptorWrites
, uint32_t descriptorCopyCount
, const VkCopyDescriptorSet
*pDescriptorCopies
)
2118 #if defined(USE_STRUCT_CONVERSION)
2119 VkWriteDescriptorSet_host
*pDescriptorWrites_host
;
2120 VkCopyDescriptorSet_host
*pDescriptorCopies_host
;
2121 TRACE("%p, %u, %p, %u, %p\n", device
, descriptorWriteCount
, pDescriptorWrites
, descriptorCopyCount
, pDescriptorCopies
);
2123 pDescriptorWrites_host
= convert_VkWriteDescriptorSet_array_win_to_host(pDescriptorWrites
, descriptorWriteCount
);
2124 pDescriptorCopies_host
= convert_VkCopyDescriptorSet_array_win_to_host(pDescriptorCopies
, descriptorCopyCount
);
2125 device
->funcs
.p_vkUpdateDescriptorSets(device
->device
, descriptorWriteCount
, pDescriptorWrites_host
, descriptorCopyCount
, pDescriptorCopies_host
);
2127 free_VkWriteDescriptorSet_array(pDescriptorWrites_host
, descriptorWriteCount
);
2128 free_VkCopyDescriptorSet_array(pDescriptorCopies_host
, descriptorCopyCount
);
2130 TRACE("%p, %u, %p, %u, %p\n", device
, descriptorWriteCount
, pDescriptorWrites
, descriptorCopyCount
, pDescriptorCopies
);
2131 device
->funcs
.p_vkUpdateDescriptorSets(device
->device
, descriptorWriteCount
, pDescriptorWrites
, descriptorCopyCount
, pDescriptorCopies
);
2135 static VkResult WINAPI
wine_vkWaitForFences(VkDevice device
, uint32_t fenceCount
, const VkFence
*pFences
, VkBool32 waitAll
, uint64_t timeout
)
2137 TRACE("%p, %u, %p, %u, 0x%s\n", device
, fenceCount
, pFences
, waitAll
, wine_dbgstr_longlong(timeout
));
2138 return device
->funcs
.p_vkWaitForFences(device
->device
, fenceCount
, pFences
, waitAll
, timeout
);
2141 static const struct vulkan_func vk_device_dispatch_table
[] =
2143 {"vkAcquireNextImageKHR", &wine_vkAcquireNextImageKHR
},
2144 {"vkAllocateCommandBuffers", &wine_vkAllocateCommandBuffers
},
2145 {"vkAllocateDescriptorSets", &wine_vkAllocateDescriptorSets
},
2146 {"vkAllocateMemory", &wine_vkAllocateMemory
},
2147 {"vkBeginCommandBuffer", &wine_vkBeginCommandBuffer
},
2148 {"vkBindBufferMemory", &wine_vkBindBufferMemory
},
2149 {"vkBindImageMemory", &wine_vkBindImageMemory
},
2150 {"vkCmdBeginQuery", &wine_vkCmdBeginQuery
},
2151 {"vkCmdBeginRenderPass", &wine_vkCmdBeginRenderPass
},
2152 {"vkCmdBindDescriptorSets", &wine_vkCmdBindDescriptorSets
},
2153 {"vkCmdBindIndexBuffer", &wine_vkCmdBindIndexBuffer
},
2154 {"vkCmdBindPipeline", &wine_vkCmdBindPipeline
},
2155 {"vkCmdBindVertexBuffers", &wine_vkCmdBindVertexBuffers
},
2156 {"vkCmdBlitImage", &wine_vkCmdBlitImage
},
2157 {"vkCmdClearAttachments", &wine_vkCmdClearAttachments
},
2158 {"vkCmdClearColorImage", &wine_vkCmdClearColorImage
},
2159 {"vkCmdClearDepthStencilImage", &wine_vkCmdClearDepthStencilImage
},
2160 {"vkCmdCopyBuffer", &wine_vkCmdCopyBuffer
},
2161 {"vkCmdCopyBufferToImage", &wine_vkCmdCopyBufferToImage
},
2162 {"vkCmdCopyImage", &wine_vkCmdCopyImage
},
2163 {"vkCmdCopyImageToBuffer", &wine_vkCmdCopyImageToBuffer
},
2164 {"vkCmdCopyQueryPoolResults", &wine_vkCmdCopyQueryPoolResults
},
2165 {"vkCmdDispatch", &wine_vkCmdDispatch
},
2166 {"vkCmdDispatchIndirect", &wine_vkCmdDispatchIndirect
},
2167 {"vkCmdDraw", &wine_vkCmdDraw
},
2168 {"vkCmdDrawIndexed", &wine_vkCmdDrawIndexed
},
2169 {"vkCmdDrawIndexedIndirect", &wine_vkCmdDrawIndexedIndirect
},
2170 {"vkCmdDrawIndexedIndirectCountAMD", &wine_vkCmdDrawIndexedIndirectCountAMD
},
2171 {"vkCmdDrawIndirect", &wine_vkCmdDrawIndirect
},
2172 {"vkCmdDrawIndirectCountAMD", &wine_vkCmdDrawIndirectCountAMD
},
2173 {"vkCmdEndQuery", &wine_vkCmdEndQuery
},
2174 {"vkCmdEndRenderPass", &wine_vkCmdEndRenderPass
},
2175 {"vkCmdExecuteCommands", &wine_vkCmdExecuteCommands
},
2176 {"vkCmdFillBuffer", &wine_vkCmdFillBuffer
},
2177 {"vkCmdNextSubpass", &wine_vkCmdNextSubpass
},
2178 {"vkCmdPipelineBarrier", &wine_vkCmdPipelineBarrier
},
2179 {"vkCmdPushConstants", &wine_vkCmdPushConstants
},
2180 {"vkCmdPushDescriptorSetKHR", &wine_vkCmdPushDescriptorSetKHR
},
2181 {"vkCmdPushDescriptorSetWithTemplateKHR", &wine_vkCmdPushDescriptorSetWithTemplateKHR
},
2182 {"vkCmdResetEvent", &wine_vkCmdResetEvent
},
2183 {"vkCmdResetQueryPool", &wine_vkCmdResetQueryPool
},
2184 {"vkCmdResolveImage", &wine_vkCmdResolveImage
},
2185 {"vkCmdSetBlendConstants", &wine_vkCmdSetBlendConstants
},
2186 {"vkCmdSetDepthBias", &wine_vkCmdSetDepthBias
},
2187 {"vkCmdSetDepthBounds", &wine_vkCmdSetDepthBounds
},
2188 {"vkCmdSetDiscardRectangleEXT", &wine_vkCmdSetDiscardRectangleEXT
},
2189 {"vkCmdSetEvent", &wine_vkCmdSetEvent
},
2190 {"vkCmdSetLineWidth", &wine_vkCmdSetLineWidth
},
2191 {"vkCmdSetScissor", &wine_vkCmdSetScissor
},
2192 {"vkCmdSetStencilCompareMask", &wine_vkCmdSetStencilCompareMask
},
2193 {"vkCmdSetStencilReference", &wine_vkCmdSetStencilReference
},
2194 {"vkCmdSetStencilWriteMask", &wine_vkCmdSetStencilWriteMask
},
2195 {"vkCmdSetViewport", &wine_vkCmdSetViewport
},
2196 {"vkCmdSetViewportWScalingNV", &wine_vkCmdSetViewportWScalingNV
},
2197 {"vkCmdUpdateBuffer", &wine_vkCmdUpdateBuffer
},
2198 {"vkCmdWaitEvents", &wine_vkCmdWaitEvents
},
2199 {"vkCmdWriteTimestamp", &wine_vkCmdWriteTimestamp
},
2200 {"vkCreateBuffer", &wine_vkCreateBuffer
},
2201 {"vkCreateBufferView", &wine_vkCreateBufferView
},
2202 {"vkCreateCommandPool", &wine_vkCreateCommandPool
},
2203 {"vkCreateComputePipelines", &wine_vkCreateComputePipelines
},
2204 {"vkCreateDescriptorPool", &wine_vkCreateDescriptorPool
},
2205 {"vkCreateDescriptorSetLayout", &wine_vkCreateDescriptorSetLayout
},
2206 {"vkCreateDescriptorUpdateTemplateKHR", &wine_vkCreateDescriptorUpdateTemplateKHR
},
2207 {"vkCreateEvent", &wine_vkCreateEvent
},
2208 {"vkCreateFence", &wine_vkCreateFence
},
2209 {"vkCreateFramebuffer", &wine_vkCreateFramebuffer
},
2210 {"vkCreateGraphicsPipelines", &wine_vkCreateGraphicsPipelines
},
2211 {"vkCreateImage", &wine_vkCreateImage
},
2212 {"vkCreateImageView", &wine_vkCreateImageView
},
2213 {"vkCreatePipelineCache", &wine_vkCreatePipelineCache
},
2214 {"vkCreatePipelineLayout", &wine_vkCreatePipelineLayout
},
2215 {"vkCreateQueryPool", &wine_vkCreateQueryPool
},
2216 {"vkCreateRenderPass", &wine_vkCreateRenderPass
},
2217 {"vkCreateSampler", &wine_vkCreateSampler
},
2218 {"vkCreateSemaphore", &wine_vkCreateSemaphore
},
2219 {"vkCreateShaderModule", &wine_vkCreateShaderModule
},
2220 {"vkCreateSwapchainKHR", &wine_vkCreateSwapchainKHR
},
2221 {"vkDestroyBuffer", &wine_vkDestroyBuffer
},
2222 {"vkDestroyBufferView", &wine_vkDestroyBufferView
},
2223 {"vkDestroyCommandPool", &wine_vkDestroyCommandPool
},
2224 {"vkDestroyDescriptorPool", &wine_vkDestroyDescriptorPool
},
2225 {"vkDestroyDescriptorSetLayout", &wine_vkDestroyDescriptorSetLayout
},
2226 {"vkDestroyDescriptorUpdateTemplateKHR", &wine_vkDestroyDescriptorUpdateTemplateKHR
},
2227 {"vkDestroyDevice", &wine_vkDestroyDevice
},
2228 {"vkDestroyEvent", &wine_vkDestroyEvent
},
2229 {"vkDestroyFence", &wine_vkDestroyFence
},
2230 {"vkDestroyFramebuffer", &wine_vkDestroyFramebuffer
},
2231 {"vkDestroyImage", &wine_vkDestroyImage
},
2232 {"vkDestroyImageView", &wine_vkDestroyImageView
},
2233 {"vkDestroyPipeline", &wine_vkDestroyPipeline
},
2234 {"vkDestroyPipelineCache", &wine_vkDestroyPipelineCache
},
2235 {"vkDestroyPipelineLayout", &wine_vkDestroyPipelineLayout
},
2236 {"vkDestroyQueryPool", &wine_vkDestroyQueryPool
},
2237 {"vkDestroyRenderPass", &wine_vkDestroyRenderPass
},
2238 {"vkDestroySampler", &wine_vkDestroySampler
},
2239 {"vkDestroySemaphore", &wine_vkDestroySemaphore
},
2240 {"vkDestroyShaderModule", &wine_vkDestroyShaderModule
},
2241 {"vkDestroySwapchainKHR", &wine_vkDestroySwapchainKHR
},
2242 {"vkDeviceWaitIdle", &wine_vkDeviceWaitIdle
},
2243 {"vkEndCommandBuffer", &wine_vkEndCommandBuffer
},
2244 {"vkFlushMappedMemoryRanges", &wine_vkFlushMappedMemoryRanges
},
2245 {"vkFreeCommandBuffers", &wine_vkFreeCommandBuffers
},
2246 {"vkFreeDescriptorSets", &wine_vkFreeDescriptorSets
},
2247 {"vkFreeMemory", &wine_vkFreeMemory
},
2248 {"vkGetBufferMemoryRequirements", &wine_vkGetBufferMemoryRequirements
},
2249 {"vkGetDeviceMemoryCommitment", &wine_vkGetDeviceMemoryCommitment
},
2250 {"vkGetDeviceProcAddr", &wine_vkGetDeviceProcAddr
},
2251 {"vkGetDeviceQueue", &wine_vkGetDeviceQueue
},
2252 {"vkGetEventStatus", &wine_vkGetEventStatus
},
2253 {"vkGetFenceStatus", &wine_vkGetFenceStatus
},
2254 {"vkGetImageMemoryRequirements", &wine_vkGetImageMemoryRequirements
},
2255 {"vkGetImageSparseMemoryRequirements", &wine_vkGetImageSparseMemoryRequirements
},
2256 {"vkGetImageSubresourceLayout", &wine_vkGetImageSubresourceLayout
},
2257 {"vkGetPipelineCacheData", &wine_vkGetPipelineCacheData
},
2258 {"vkGetQueryPoolResults", &wine_vkGetQueryPoolResults
},
2259 {"vkGetRenderAreaGranularity", &wine_vkGetRenderAreaGranularity
},
2260 {"vkGetSwapchainImagesKHR", &wine_vkGetSwapchainImagesKHR
},
2261 {"vkInvalidateMappedMemoryRanges", &wine_vkInvalidateMappedMemoryRanges
},
2262 {"vkMapMemory", &wine_vkMapMemory
},
2263 {"vkMergePipelineCaches", &wine_vkMergePipelineCaches
},
2264 {"vkQueueBindSparse", &wine_vkQueueBindSparse
},
2265 {"vkQueuePresentKHR", &wine_vkQueuePresentKHR
},
2266 {"vkQueueSubmit", &wine_vkQueueSubmit
},
2267 {"vkQueueWaitIdle", &wine_vkQueueWaitIdle
},
2268 {"vkResetCommandBuffer", &wine_vkResetCommandBuffer
},
2269 {"vkResetCommandPool", &wine_vkResetCommandPool
},
2270 {"vkResetDescriptorPool", &wine_vkResetDescriptorPool
},
2271 {"vkResetEvent", &wine_vkResetEvent
},
2272 {"vkResetFences", &wine_vkResetFences
},
2273 {"vkSetEvent", &wine_vkSetEvent
},
2274 {"vkTrimCommandPoolKHR", &wine_vkTrimCommandPoolKHR
},
2275 {"vkUnmapMemory", &wine_vkUnmapMemory
},
2276 {"vkUpdateDescriptorSetWithTemplateKHR", &wine_vkUpdateDescriptorSetWithTemplateKHR
},
2277 {"vkUpdateDescriptorSets", &wine_vkUpdateDescriptorSets
},
2278 {"vkWaitForFences", &wine_vkWaitForFences
},
2281 static const struct vulkan_func vk_instance_dispatch_table
[] =
2283 {"vkCreateDevice", &wine_vkCreateDevice
},
2284 {"vkCreateWin32SurfaceKHR", &wine_vkCreateWin32SurfaceKHR
},
2285 {"vkDestroyInstance", &wine_vkDestroyInstance
},
2286 {"vkDestroySurfaceKHR", &wine_vkDestroySurfaceKHR
},
2287 {"vkEnumerateDeviceExtensionProperties", &wine_vkEnumerateDeviceExtensionProperties
},
2288 {"vkEnumerateDeviceLayerProperties", &wine_vkEnumerateDeviceLayerProperties
},
2289 {"vkEnumeratePhysicalDevices", &wine_vkEnumeratePhysicalDevices
},
2290 {"vkGetPhysicalDeviceFeatures", &wine_vkGetPhysicalDeviceFeatures
},
2291 {"vkGetPhysicalDeviceFeatures2KHR", &wine_vkGetPhysicalDeviceFeatures2KHR
},
2292 {"vkGetPhysicalDeviceFormatProperties", &wine_vkGetPhysicalDeviceFormatProperties
},
2293 {"vkGetPhysicalDeviceFormatProperties2KHR", &wine_vkGetPhysicalDeviceFormatProperties2KHR
},
2294 {"vkGetPhysicalDeviceImageFormatProperties", &wine_vkGetPhysicalDeviceImageFormatProperties
},
2295 {"vkGetPhysicalDeviceImageFormatProperties2KHR", &wine_vkGetPhysicalDeviceImageFormatProperties2KHR
},
2296 {"vkGetPhysicalDeviceMemoryProperties", &wine_vkGetPhysicalDeviceMemoryProperties
},
2297 {"vkGetPhysicalDeviceMemoryProperties2KHR", &wine_vkGetPhysicalDeviceMemoryProperties2KHR
},
2298 {"vkGetPhysicalDeviceProperties", &wine_vkGetPhysicalDeviceProperties
},
2299 {"vkGetPhysicalDeviceProperties2KHR", &wine_vkGetPhysicalDeviceProperties2KHR
},
2300 {"vkGetPhysicalDeviceQueueFamilyProperties", &wine_vkGetPhysicalDeviceQueueFamilyProperties
},
2301 {"vkGetPhysicalDeviceQueueFamilyProperties2KHR", &wine_vkGetPhysicalDeviceQueueFamilyProperties2KHR
},
2302 {"vkGetPhysicalDeviceSparseImageFormatProperties", &wine_vkGetPhysicalDeviceSparseImageFormatProperties
},
2303 {"vkGetPhysicalDeviceSparseImageFormatProperties2KHR", &wine_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
},
2304 {"vkGetPhysicalDeviceSurfaceCapabilitiesKHR", &wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
},
2305 {"vkGetPhysicalDeviceSurfaceFormatsKHR", &wine_vkGetPhysicalDeviceSurfaceFormatsKHR
},
2306 {"vkGetPhysicalDeviceSurfacePresentModesKHR", &wine_vkGetPhysicalDeviceSurfacePresentModesKHR
},
2307 {"vkGetPhysicalDeviceSurfaceSupportKHR", &wine_vkGetPhysicalDeviceSurfaceSupportKHR
},
2308 {"vkGetPhysicalDeviceWin32PresentationSupportKHR", &wine_vkGetPhysicalDeviceWin32PresentationSupportKHR
},
2311 void *wine_vk_get_device_proc_addr(const char *name
)
2314 for (i
= 0; i
< ARRAY_SIZE(vk_device_dispatch_table
); i
++)
2316 if (strcmp(vk_device_dispatch_table
[i
].name
, name
) == 0)
2318 TRACE("Found name=%s in device table\n", name
);
2319 return vk_device_dispatch_table
[i
].func
;
2325 void *wine_vk_get_instance_proc_addr(const char *name
)
2328 for (i
= 0; i
< ARRAY_SIZE(vk_instance_dispatch_table
); i
++)
2330 if (strcmp(vk_instance_dispatch_table
[i
].name
, name
) == 0)
2332 TRACE("Found name=%s in instance table\n", name
);
2333 return vk_instance_dispatch_table
[i
].func
;
2339 static const char * const vk_device_extensions
[] =
2341 "VK_AMD_draw_indirect_count",
2342 "VK_AMD_gcn_shader",
2343 "VK_AMD_gpu_shader_half_float",
2344 "VK_AMD_negative_viewport_height",
2345 "VK_AMD_rasterization_order",
2346 "VK_AMD_shader_ballot",
2347 "VK_AMD_shader_explicit_vertex_parameter",
2348 "VK_AMD_shader_trinary_minmax",
2349 "VK_AMD_texture_gather_bias_lod",
2350 "VK_EXT_discard_rectangles",
2351 "VK_EXT_shader_subgroup_ballot",
2352 "VK_EXT_shader_subgroup_vote",
2353 "VK_IMG_filter_cubic",
2354 "VK_IMG_format_pvrtc",
2355 "VK_KHR_descriptor_update_template",
2356 "VK_KHR_incremental_present",
2357 "VK_KHR_maintenance1",
2358 "VK_KHR_push_descriptor",
2359 "VK_KHR_sampler_mirror_clamp_to_edge",
2360 "VK_KHR_shader_draw_parameters",
2362 "VK_NV_clip_space_w_scaling",
2363 "VK_NV_dedicated_allocation",
2364 "VK_NV_external_memory",
2365 "VK_NV_geometry_shader_passthrough",
2366 "VK_NV_glsl_shader",
2367 "VK_NV_sample_mask_override_coverage",
2368 "VK_NV_viewport_array2",
2369 "VK_NV_viewport_swizzle",
2372 static const char *vk_instance_extensions
[] =
2374 "VK_KHR_get_physical_device_properties2",
2376 "VK_KHR_win32_surface",
2379 BOOL
wine_vk_device_extension_supported(const char *name
)
2382 for (i
= 0; i
< ARRAY_SIZE(vk_device_extensions
); i
++)
2384 if (strcmp(vk_device_extensions
[i
], name
) == 0)
2390 BOOL
wine_vk_instance_extension_supported(const char *name
)
2393 for (i
= 0; i
< ARRAY_SIZE(vk_instance_extensions
); i
++)
2395 if (strcmp(vk_instance_extensions
[i
], name
) == 0)