winevulkan: Implement VK_KHR_device_group.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
960e52e12f
commit
fae218310c
|
@ -34,7 +34,7 @@
|
|||
# but only in their entirety and only with respect to the Combined Software.
|
||||
#
|
||||
|
||||
@ stub vkAcquireNextImage2KHR
|
||||
@ stdcall vkAcquireNextImage2KHR(ptr ptr ptr) winevulkan.wine_vkAcquireNextImage2KHR
|
||||
@ stdcall vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) winevulkan.wine_vkAcquireNextImageKHR
|
||||
@ stdcall vkAllocateCommandBuffers(ptr ptr ptr) winevulkan.wine_vkAllocateCommandBuffers
|
||||
@ stdcall vkAllocateDescriptorSets(ptr ptr ptr) winevulkan.wine_vkAllocateDescriptorSets
|
||||
|
@ -60,7 +60,7 @@
|
|||
@ stdcall vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr) winevulkan.wine_vkCmdCopyImageToBuffer
|
||||
@ stdcall vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long) winevulkan.wine_vkCmdCopyQueryPoolResults
|
||||
@ stdcall vkCmdDispatch(ptr long long long) winevulkan.wine_vkCmdDispatch
|
||||
@ stub vkCmdDispatchBase
|
||||
@ stdcall vkCmdDispatchBase(ptr long long long long long long) winevulkan.wine_vkCmdDispatchBase
|
||||
@ stdcall vkCmdDispatchIndirect(ptr int64 int64) winevulkan.wine_vkCmdDispatchIndirect
|
||||
@ stdcall vkCmdDraw(ptr long long long long) winevulkan.wine_vkCmdDraw
|
||||
@ stdcall vkCmdDrawIndexed(ptr long long long long long) winevulkan.wine_vkCmdDrawIndexed
|
||||
|
@ -79,7 +79,7 @@
|
|||
@ stdcall vkCmdSetBlendConstants(ptr ptr) winevulkan.wine_vkCmdSetBlendConstants
|
||||
@ stdcall vkCmdSetDepthBias(ptr float float float) winevulkan.wine_vkCmdSetDepthBias
|
||||
@ stdcall vkCmdSetDepthBounds(ptr float float) winevulkan.wine_vkCmdSetDepthBounds
|
||||
@ stub vkCmdSetDeviceMask
|
||||
@ stdcall vkCmdSetDeviceMask(ptr long) winevulkan.wine_vkCmdSetDeviceMask
|
||||
@ stdcall vkCmdSetEvent(ptr int64 long) winevulkan.wine_vkCmdSetEvent
|
||||
@ stdcall vkCmdSetLineWidth(ptr float) winevulkan.wine_vkCmdSetLineWidth
|
||||
@ stdcall vkCmdSetScissor(ptr long long ptr) winevulkan.wine_vkCmdSetScissor
|
||||
|
@ -158,8 +158,8 @@
|
|||
@ stdcall vkGetBufferMemoryRequirements(ptr int64 ptr) winevulkan.wine_vkGetBufferMemoryRequirements
|
||||
@ stdcall vkGetBufferMemoryRequirements2(ptr ptr ptr) winevulkan.wine_vkGetBufferMemoryRequirements2
|
||||
@ stdcall vkGetDescriptorSetLayoutSupport(ptr ptr ptr) winevulkan.wine_vkGetDescriptorSetLayoutSupport
|
||||
@ stub vkGetDeviceGroupPeerMemoryFeatures
|
||||
@ stub vkGetDeviceGroupPresentCapabilitiesKHR
|
||||
@ stdcall vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long) winevulkan.wine_vkGetDeviceGroupPeerMemoryFeatures
|
||||
@ stdcall vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr) winevulkan.wine_vkGetDeviceGroupPresentCapabilitiesKHR
|
||||
@ stdcall vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long) winevulkan.wine_vkGetDeviceGroupSurfacePresentModesKHR
|
||||
@ stdcall vkGetDeviceMemoryCommitment(ptr int64 ptr) winevulkan.wine_vkGetDeviceMemoryCommitment
|
||||
@ stdcall vkGetDeviceProcAddr(ptr str) winevulkan.wine_vkGetDeviceProcAddr
|
||||
|
|
|
@ -103,7 +103,6 @@ BLACKLISTED_EXTENSIONS = [
|
|||
"VK_EXT_external_memory_dma_buf", # Linux specific
|
||||
"VK_EXT_hdr_metadata", # Needs WSI work.
|
||||
"VK_GOOGLE_display_timing",
|
||||
"VK_KHR_device_group", # Needs some thought, but part of Vulkan 1.1 Core.
|
||||
"VK_KHR_display", # Needs WSI work.
|
||||
"VK_KHR_external_fence",
|
||||
"VK_KHR_external_fence_fd",
|
||||
|
|
|
@ -43,6 +43,19 @@
|
|||
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
|
||||
|
||||
#if defined(USE_STRUCT_CONVERSION)
|
||||
static inline void convert_VkAcquireNextImageInfoKHR_win_to_host(const VkAcquireNextImageInfoKHR *in, VkAcquireNextImageInfoKHR_host *out)
|
||||
{
|
||||
if (!in) return;
|
||||
|
||||
out->sType = in->sType;
|
||||
out->pNext = in->pNext;
|
||||
out->swapchain = in->swapchain;
|
||||
out->timeout = in->timeout;
|
||||
out->semaphore = in->semaphore;
|
||||
out->fence = in->fence;
|
||||
out->deviceMask = in->deviceMask;
|
||||
}
|
||||
|
||||
static inline void convert_VkDescriptorSetAllocateInfo_win_to_host(const VkDescriptorSetAllocateInfo *in, VkDescriptorSetAllocateInfo_host *out)
|
||||
{
|
||||
if (!in) return;
|
||||
|
@ -1121,6 +1134,23 @@ static inline void free_VkCopyDescriptorSet_array(VkCopyDescriptorSet_host *in,
|
|||
|
||||
#endif /* USE_STRUCT_CONVERSION */
|
||||
|
||||
VkResult WINAPI wine_vkAcquireNextImage2KHR(VkDevice device, const VkAcquireNextImageInfoKHR *pAcquireInfo, uint32_t *pImageIndex)
|
||||
{
|
||||
#if defined(USE_STRUCT_CONVERSION)
|
||||
VkResult result;
|
||||
VkAcquireNextImageInfoKHR_host pAcquireInfo_host;
|
||||
TRACE("%p, %p, %p\n", device, pAcquireInfo, pImageIndex);
|
||||
|
||||
convert_VkAcquireNextImageInfoKHR_win_to_host(pAcquireInfo, &pAcquireInfo_host);
|
||||
result = device->funcs.p_vkAcquireNextImage2KHR(device->device, &pAcquireInfo_host, pImageIndex);
|
||||
|
||||
return result;
|
||||
#else
|
||||
TRACE("%p, %p, %p\n", device, pAcquireInfo, pImageIndex);
|
||||
return device->funcs.p_vkAcquireNextImage2KHR(device->device, pAcquireInfo, pImageIndex);
|
||||
#endif
|
||||
}
|
||||
|
||||
VkResult WINAPI wine_vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t *pImageIndex)
|
||||
{
|
||||
TRACE("%p, 0x%s, 0x%s, 0x%s, 0x%s, %p\n", device, wine_dbgstr_longlong(swapchain), wine_dbgstr_longlong(timeout), wine_dbgstr_longlong(semaphore), wine_dbgstr_longlong(fence), pImageIndex);
|
||||
|
@ -1398,6 +1428,18 @@ void WINAPI wine_vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCoun
|
|||
commandBuffer->device->funcs.p_vkCmdDispatch(commandBuffer->command_buffer, groupCountX, groupCountY, groupCountZ);
|
||||
}
|
||||
|
||||
void WINAPI wine_vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
|
||||
{
|
||||
TRACE("%p, %u, %u, %u, %u, %u, %u\n", commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
||||
commandBuffer->device->funcs.p_vkCmdDispatchBase(commandBuffer->command_buffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
||||
}
|
||||
|
||||
static void WINAPI wine_vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
|
||||
{
|
||||
TRACE("%p, %u, %u, %u, %u, %u, %u\n", commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
||||
commandBuffer->device->funcs.p_vkCmdDispatchBaseKHR(commandBuffer->command_buffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
||||
}
|
||||
|
||||
void WINAPI wine_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset)
|
||||
{
|
||||
TRACE("%p, 0x%s, 0x%s\n", commandBuffer, wine_dbgstr_longlong(buffer), wine_dbgstr_longlong(offset));
|
||||
|
@ -1559,6 +1601,18 @@ void WINAPI wine_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDep
|
|||
commandBuffer->device->funcs.p_vkCmdSetDepthBounds(commandBuffer->command_buffer, minDepthBounds, maxDepthBounds);
|
||||
}
|
||||
|
||||
void WINAPI wine_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask)
|
||||
{
|
||||
TRACE("%p, %u\n", commandBuffer, deviceMask);
|
||||
commandBuffer->device->funcs.p_vkCmdSetDeviceMask(commandBuffer->command_buffer, deviceMask);
|
||||
}
|
||||
|
||||
static void WINAPI wine_vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer, uint32_t deviceMask)
|
||||
{
|
||||
TRACE("%p, %u\n", commandBuffer, deviceMask);
|
||||
commandBuffer->device->funcs.p_vkCmdSetDeviceMaskKHR(commandBuffer->command_buffer, deviceMask);
|
||||
}
|
||||
|
||||
static void WINAPI wine_vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D *pDiscardRectangles)
|
||||
{
|
||||
TRACE("%p, %u, %u, %p\n", commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
|
||||
|
@ -2174,6 +2228,24 @@ static void WINAPI wine_vkGetDescriptorSetLayoutSupportKHR(VkDevice device, cons
|
|||
device->funcs.p_vkGetDescriptorSetLayoutSupportKHR(device->device, pCreateInfo, pSupport);
|
||||
}
|
||||
|
||||
void WINAPI wine_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures)
|
||||
{
|
||||
TRACE("%p, %u, %u, %u, %p\n", device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
||||
device->funcs.p_vkGetDeviceGroupPeerMemoryFeatures(device->device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
||||
}
|
||||
|
||||
static void WINAPI wine_vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures)
|
||||
{
|
||||
TRACE("%p, %u, %u, %u, %p\n", device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
||||
device->funcs.p_vkGetDeviceGroupPeerMemoryFeaturesKHR(device->device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
||||
}
|
||||
|
||||
VkResult WINAPI wine_vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR *pDeviceGroupPresentCapabilities)
|
||||
{
|
||||
TRACE("%p, %p\n", device, pDeviceGroupPresentCapabilities);
|
||||
return device->funcs.p_vkGetDeviceGroupPresentCapabilitiesKHR(device->device, pDeviceGroupPresentCapabilities);
|
||||
}
|
||||
|
||||
VkResult WINAPI wine_vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR *pModes)
|
||||
{
|
||||
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(surface), pModes);
|
||||
|
@ -2756,6 +2828,7 @@ VkResult WINAPI wine_vkWaitForFences(VkDevice device, uint32_t fenceCount, const
|
|||
|
||||
static const struct vulkan_func vk_device_dispatch_table[] =
|
||||
{
|
||||
{"vkAcquireNextImage2KHR", &wine_vkAcquireNextImage2KHR},
|
||||
{"vkAcquireNextImageKHR", &wine_vkAcquireNextImageKHR},
|
||||
{"vkAllocateCommandBuffers", &wine_vkAllocateCommandBuffers},
|
||||
{"vkAllocateDescriptorSets", &wine_vkAllocateDescriptorSets},
|
||||
|
@ -2783,6 +2856,8 @@ static const struct vulkan_func vk_device_dispatch_table[] =
|
|||
{"vkCmdCopyImageToBuffer", &wine_vkCmdCopyImageToBuffer},
|
||||
{"vkCmdCopyQueryPoolResults", &wine_vkCmdCopyQueryPoolResults},
|
||||
{"vkCmdDispatch", &wine_vkCmdDispatch},
|
||||
{"vkCmdDispatchBase", &wine_vkCmdDispatchBase},
|
||||
{"vkCmdDispatchBaseKHR", &wine_vkCmdDispatchBaseKHR},
|
||||
{"vkCmdDispatchIndirect", &wine_vkCmdDispatchIndirect},
|
||||
{"vkCmdDraw", &wine_vkCmdDraw},
|
||||
{"vkCmdDrawIndexed", &wine_vkCmdDrawIndexed},
|
||||
|
@ -2807,6 +2882,8 @@ static const struct vulkan_func vk_device_dispatch_table[] =
|
|||
{"vkCmdSetBlendConstants", &wine_vkCmdSetBlendConstants},
|
||||
{"vkCmdSetDepthBias", &wine_vkCmdSetDepthBias},
|
||||
{"vkCmdSetDepthBounds", &wine_vkCmdSetDepthBounds},
|
||||
{"vkCmdSetDeviceMask", &wine_vkCmdSetDeviceMask},
|
||||
{"vkCmdSetDeviceMaskKHR", &wine_vkCmdSetDeviceMaskKHR},
|
||||
{"vkCmdSetDiscardRectangleEXT", &wine_vkCmdSetDiscardRectangleEXT},
|
||||
{"vkCmdSetEvent", &wine_vkCmdSetEvent},
|
||||
{"vkCmdSetLineWidth", &wine_vkCmdSetLineWidth},
|
||||
|
@ -2882,6 +2959,9 @@ static const struct vulkan_func vk_device_dispatch_table[] =
|
|||
{"vkGetBufferMemoryRequirements2KHR", &wine_vkGetBufferMemoryRequirements2KHR},
|
||||
{"vkGetDescriptorSetLayoutSupport", &wine_vkGetDescriptorSetLayoutSupport},
|
||||
{"vkGetDescriptorSetLayoutSupportKHR", &wine_vkGetDescriptorSetLayoutSupportKHR},
|
||||
{"vkGetDeviceGroupPeerMemoryFeatures", &wine_vkGetDeviceGroupPeerMemoryFeatures},
|
||||
{"vkGetDeviceGroupPeerMemoryFeaturesKHR", &wine_vkGetDeviceGroupPeerMemoryFeaturesKHR},
|
||||
{"vkGetDeviceGroupPresentCapabilitiesKHR", &wine_vkGetDeviceGroupPresentCapabilitiesKHR},
|
||||
{"vkGetDeviceGroupSurfacePresentModesKHR", &wine_vkGetDeviceGroupSurfacePresentModesKHR},
|
||||
{"vkGetDeviceMemoryCommitment", &wine_vkGetDeviceMemoryCommitment},
|
||||
{"vkGetDeviceProcAddr", &wine_vkGetDeviceProcAddr},
|
||||
|
@ -3032,6 +3112,7 @@ static const char * const vk_device_extensions[] =
|
|||
"VK_KHR_bind_memory2",
|
||||
"VK_KHR_dedicated_allocation",
|
||||
"VK_KHR_descriptor_update_template",
|
||||
"VK_KHR_device_group",
|
||||
"VK_KHR_draw_indirect_count",
|
||||
"VK_KHR_get_memory_requirements2",
|
||||
"VK_KHR_image_format_list",
|
||||
|
|
|
@ -53,6 +53,17 @@ PFN_vkVoidFunction WINAPI wine_vkGetDeviceProcAddr(VkDevice device, const char *
|
|||
void WINAPI wine_vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue);
|
||||
VkResult WINAPI wine_vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence);
|
||||
|
||||
typedef struct VkAcquireNextImageInfoKHR_host
|
||||
{
|
||||
VkStructureType sType;
|
||||
const void *pNext;
|
||||
VkSwapchainKHR swapchain;
|
||||
uint64_t timeout;
|
||||
VkSemaphore semaphore;
|
||||
VkFence fence;
|
||||
uint32_t deviceMask;
|
||||
} VkAcquireNextImageInfoKHR_host;
|
||||
|
||||
typedef struct VkCommandBufferAllocateInfo_host
|
||||
{
|
||||
VkStructureType sType;
|
||||
|
@ -622,6 +633,11 @@ typedef struct VkCopyDescriptorSet_host
|
|||
/* For use by vkDevice and children */
|
||||
struct vulkan_device_funcs
|
||||
{
|
||||
#if defined(USE_STRUCT_CONVERSION)
|
||||
VkResult (*p_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR_host *, uint32_t *);
|
||||
#else
|
||||
VkResult (*p_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *);
|
||||
#endif
|
||||
VkResult (*p_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *);
|
||||
#if defined(USE_STRUCT_CONVERSION)
|
||||
VkResult (*p_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo_host *, VkCommandBuffer *);
|
||||
|
@ -697,6 +713,8 @@ struct vulkan_device_funcs
|
|||
#endif
|
||||
void (*p_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags);
|
||||
void (*p_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t);
|
||||
void (*p_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
void (*p_vkCmdDispatchBaseKHR)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
void (*p_vkCmdDispatchIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize);
|
||||
void (*p_vkCmdDraw)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
void (*p_vkCmdDrawIndexed)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, int32_t, uint32_t);
|
||||
|
@ -729,6 +747,8 @@ struct vulkan_device_funcs
|
|||
void (*p_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]);
|
||||
void (*p_vkCmdSetDepthBias)(VkCommandBuffer, float, float, float);
|
||||
void (*p_vkCmdSetDepthBounds)(VkCommandBuffer, float, float);
|
||||
void (*p_vkCmdSetDeviceMask)(VkCommandBuffer, uint32_t);
|
||||
void (*p_vkCmdSetDeviceMaskKHR)(VkCommandBuffer, uint32_t);
|
||||
void (*p_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
|
||||
void (*p_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
|
||||
void (*p_vkCmdSetLineWidth)(VkCommandBuffer, float);
|
||||
|
@ -860,6 +880,9 @@ struct vulkan_device_funcs
|
|||
#endif
|
||||
void (*p_vkGetDescriptorSetLayoutSupport)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *);
|
||||
void (*p_vkGetDescriptorSetLayoutSupportKHR)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *);
|
||||
void (*p_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *);
|
||||
void (*p_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *);
|
||||
VkResult (*p_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice, VkDeviceGroupPresentCapabilitiesKHR *);
|
||||
VkResult (*p_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice, VkSurfaceKHR, VkDeviceGroupPresentModeFlagsKHR *);
|
||||
void (*p_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *);
|
||||
void (*p_vkGetDeviceQueue)(VkDevice, uint32_t, uint32_t, VkQueue *);
|
||||
|
@ -1015,6 +1038,7 @@ struct vulkan_instance_funcs
|
|||
};
|
||||
|
||||
#define ALL_VK_DEVICE_FUNCS() \
|
||||
USE_VK_FUNC(vkAcquireNextImage2KHR) \
|
||||
USE_VK_FUNC(vkAcquireNextImageKHR) \
|
||||
USE_VK_FUNC(vkAllocateCommandBuffers) \
|
||||
USE_VK_FUNC(vkAllocateDescriptorSets) \
|
||||
|
@ -1042,6 +1066,8 @@ struct vulkan_instance_funcs
|
|||
USE_VK_FUNC(vkCmdCopyImageToBuffer) \
|
||||
USE_VK_FUNC(vkCmdCopyQueryPoolResults) \
|
||||
USE_VK_FUNC(vkCmdDispatch) \
|
||||
USE_VK_FUNC(vkCmdDispatchBase) \
|
||||
USE_VK_FUNC(vkCmdDispatchBaseKHR) \
|
||||
USE_VK_FUNC(vkCmdDispatchIndirect) \
|
||||
USE_VK_FUNC(vkCmdDraw) \
|
||||
USE_VK_FUNC(vkCmdDrawIndexed) \
|
||||
|
@ -1066,6 +1092,8 @@ struct vulkan_instance_funcs
|
|||
USE_VK_FUNC(vkCmdSetBlendConstants) \
|
||||
USE_VK_FUNC(vkCmdSetDepthBias) \
|
||||
USE_VK_FUNC(vkCmdSetDepthBounds) \
|
||||
USE_VK_FUNC(vkCmdSetDeviceMask) \
|
||||
USE_VK_FUNC(vkCmdSetDeviceMaskKHR) \
|
||||
USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \
|
||||
USE_VK_FUNC(vkCmdSetEvent) \
|
||||
USE_VK_FUNC(vkCmdSetLineWidth) \
|
||||
|
@ -1141,6 +1169,9 @@ struct vulkan_instance_funcs
|
|||
USE_VK_FUNC(vkGetBufferMemoryRequirements2KHR) \
|
||||
USE_VK_FUNC(vkGetDescriptorSetLayoutSupport) \
|
||||
USE_VK_FUNC(vkGetDescriptorSetLayoutSupportKHR) \
|
||||
USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeatures) \
|
||||
USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeaturesKHR) \
|
||||
USE_VK_FUNC(vkGetDeviceGroupPresentCapabilitiesKHR) \
|
||||
USE_VK_FUNC(vkGetDeviceGroupSurfacePresentModesKHR) \
|
||||
USE_VK_FUNC(vkGetDeviceMemoryCommitment) \
|
||||
USE_VK_FUNC(vkGetDeviceQueue) \
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr
|
||||
@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion
|
||||
@ stub vkAcquireNextImage2KHR
|
||||
@ stdcall wine_vkAcquireNextImage2KHR(ptr ptr ptr)
|
||||
@ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr)
|
||||
@ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr)
|
||||
@ stdcall wine_vkAllocateDescriptorSets(ptr ptr ptr)
|
||||
|
@ -62,7 +62,7 @@
|
|||
@ stdcall wine_vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr)
|
||||
@ stdcall wine_vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long)
|
||||
@ stdcall wine_vkCmdDispatch(ptr long long long)
|
||||
@ stub vkCmdDispatchBase
|
||||
@ stdcall wine_vkCmdDispatchBase(ptr long long long long long long)
|
||||
@ stdcall wine_vkCmdDispatchIndirect(ptr int64 int64)
|
||||
@ stdcall wine_vkCmdDraw(ptr long long long long)
|
||||
@ stdcall wine_vkCmdDrawIndexed(ptr long long long long long)
|
||||
|
@ -81,7 +81,7 @@
|
|||
@ stdcall wine_vkCmdSetBlendConstants(ptr ptr)
|
||||
@ stdcall wine_vkCmdSetDepthBias(ptr float float float)
|
||||
@ stdcall wine_vkCmdSetDepthBounds(ptr float float)
|
||||
@ stub vkCmdSetDeviceMask
|
||||
@ stdcall wine_vkCmdSetDeviceMask(ptr long)
|
||||
@ stdcall wine_vkCmdSetEvent(ptr int64 long)
|
||||
@ stdcall wine_vkCmdSetLineWidth(ptr float)
|
||||
@ stdcall wine_vkCmdSetScissor(ptr long long ptr)
|
||||
|
@ -159,8 +159,8 @@
|
|||
@ stdcall wine_vkGetBufferMemoryRequirements(ptr int64 ptr)
|
||||
@ stdcall wine_vkGetBufferMemoryRequirements2(ptr ptr ptr)
|
||||
@ stdcall wine_vkGetDescriptorSetLayoutSupport(ptr ptr ptr)
|
||||
@ stub vkGetDeviceGroupPeerMemoryFeatures
|
||||
@ stub vkGetDeviceGroupPresentCapabilitiesKHR
|
||||
@ stdcall wine_vkGetDeviceGroupPeerMemoryFeatures(ptr long long long long)
|
||||
@ stdcall wine_vkGetDeviceGroupPresentCapabilitiesKHR(ptr ptr)
|
||||
@ stdcall wine_vkGetDeviceGroupSurfacePresentModesKHR(ptr int64 long)
|
||||
@ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr)
|
||||
@ stdcall wine_vkGetDeviceProcAddr(ptr str)
|
||||
|
|
|
@ -129,6 +129,8 @@
|
|||
#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
|
||||
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
|
||||
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
|
||||
#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
|
||||
#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
|
||||
#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
|
||||
#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
|
||||
#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
|
||||
|
@ -4166,6 +4168,7 @@ typedef struct VkPresentRegionsKHR
|
|||
const VkPresentRegionKHR *pRegions;
|
||||
} VkPresentRegionsKHR;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo *, VkCommandBuffer *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice, const VkDescriptorSetAllocateInfo *, VkDescriptorSet *);
|
||||
|
@ -4193,6 +4196,8 @@ typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLa
|
|||
typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, int32_t, uint32_t);
|
||||
|
@ -4217,6 +4222,8 @@ typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImag
|
|||
typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer, float, float, float);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer, float, float);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer, uint32_t);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer, float);
|
||||
|
@ -4304,6 +4311,9 @@ typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice, const VkB
|
|||
typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice, VkDeviceGroupPresentCapabilitiesKHR *);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice, VkSurfaceKHR, VkDeviceGroupPresentModeFlagsKHR *);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *);
|
||||
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice, const char *);
|
||||
|
@ -4375,6 +4385,7 @@ typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice, uint32_t, const V
|
|||
typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice, uint32_t, const VkFence *, VkBool32, uint64_t);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VkResult VKAPI_CALL vkAcquireNextImage2KHR(VkDevice device, const VkAcquireNextImageInfoKHR *pAcquireInfo, uint32_t *pImageIndex);
|
||||
VkResult VKAPI_CALL vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t *pImageIndex);
|
||||
VkResult VKAPI_CALL vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo, VkCommandBuffer *pCommandBuffers);
|
||||
VkResult VKAPI_CALL vkAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo *pAllocateInfo, VkDescriptorSet *pDescriptorSets);
|
||||
|
@ -4402,6 +4413,8 @@ void VKAPI_CALL vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage,
|
|||
void VKAPI_CALL vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy *pRegions);
|
||||
void VKAPI_CALL vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
|
||||
void VKAPI_CALL vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
void VKAPI_CALL vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
void VKAPI_CALL vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
void VKAPI_CALL vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
|
||||
void VKAPI_CALL vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
|
||||
void VKAPI_CALL vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
|
||||
|
@ -4426,6 +4439,8 @@ void VKAPI_CALL vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImag
|
|||
void VKAPI_CALL vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]);
|
||||
void VKAPI_CALL vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
|
||||
void VKAPI_CALL vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
|
||||
void VKAPI_CALL vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask);
|
||||
void VKAPI_CALL vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer, uint32_t deviceMask);
|
||||
void VKAPI_CALL vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D *pDiscardRectangles);
|
||||
void VKAPI_CALL vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
|
||||
void VKAPI_CALL vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth);
|
||||
|
@ -4513,6 +4528,9 @@ void VKAPI_CALL vkGetBufferMemoryRequirements2(VkDevice device, const VkBufferMe
|
|||
void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(VkDevice device, const VkBufferMemoryRequirementsInfo2 *pInfo, VkMemoryRequirements2 *pMemoryRequirements);
|
||||
void VKAPI_CALL vkGetDescriptorSetLayoutSupport(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, VkDescriptorSetLayoutSupport *pSupport);
|
||||
void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, VkDescriptorSetLayoutSupport *pSupport);
|
||||
void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures);
|
||||
void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures);
|
||||
VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR *pDeviceGroupPresentCapabilities);
|
||||
VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR *pModes);
|
||||
void VKAPI_CALL vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize *pCommittedMemoryInBytes);
|
||||
PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char *pName);
|
||||
|
|
Loading…
Reference in New Issue