From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/make_vulkan | 4 +-- dlls/winevulkan/vulkan.c | 26 ++++++++--------- dlls/winevulkan/vulkan_private.h | 10 +------ dlls/winevulkan/vulkan_thunks.c | 50 ++++++++++++++++---------------- include/wine/vulkan_driver.h | 12 ++++++++ 5 files changed, 53 insertions(+), 49 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 3d933d891d3..a87d10af36f 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1148,7 +1148,7 @@ class VkHandle(object): elif self.name == "VkPhysicalDevice": return "vulkan_physical_device_from_handle({0})->instance".format(param) elif self.name == "VkQueue": - return "wine_queue_from_handle({0})->device".format(param) + return "vulkan_queue_from_handle({0})->device".format(param) elif self.parent in ["VkInstance", "VkPhysicalDevice"]: return "{0}->instance".format(param) elif self.parent in ["VkDevice", "VkCommandPool"]: @@ -1199,7 +1199,7 @@ class VkHandle(object): if self.name == "VkPhysicalDevice": return "vulkan_physical_device_from_handle({0})->host.physical_device".format(name) if self.name == "VkQueue": - return "wine_queue_from_handle({0})->host_queue".format(name) + return "vulkan_queue_from_handle({0})->host.queue".format(name) if self.name == "VkSurfaceKHR": return "wine_surface_from_handle({0})->host_surface".format(name) if self.name == "VkSwapchainKHR": diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 7c14d85bb53..bc0a476eaef 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -550,15 +550,15 @@ static void wine_vk_device_init_queues(struct wine_device *object, const VkDevic device->p_vkGetDeviceQueue(device->host.device, info->queueFamilyIndex, i, &host_queue); }
- queue->device = device; - queue->host_queue = host_queue; - queue->handle = client_queue; + queue->obj.host.queue = host_queue; + queue->obj.client.queue = client_queue; + queue->obj.device = device; queue->family_index = info->queueFamilyIndex; queue->queue_index = i; queue->flags = info->flags;
client_queue->obj.unix_handle = (uintptr_t)queue; - TRACE("Got device %p queue %p, host_queue %p.\n", device, queue, queue->host_queue); + TRACE("Got device %p queue %p, host_queue %p.\n", device, queue, queue->obj.host.queue); }
object->queue_count += info->queueCount; @@ -957,7 +957,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice client_physical_device, const VkDe for (i = 0; i < device->queue_count; i++) { struct wine_queue *queue = device->queues + i; - add_handle_mapping_ptr(instance, queue->handle, queue->host_queue, &queue->wrapper_entry); + add_handle_mapping_ptr(instance, queue->obj.client.queue, queue->obj.host.queue, &queue->wrapper_entry); } add_handle_mapping_ptr(instance, client_device, device->obj.host.device, &device->wrapper_entry);
@@ -1263,14 +1263,14 @@ static VkQueue wine_vk_device_find_queue(VkDevice client_device, const VkDeviceQ && queue->queue_index == info->queueIndex && queue->flags == info->flags) { - return queue->handle; + return queue->obj.client.queue; } }
return VK_NULL_HANDLE; }
-void wine_vkGetDeviceQueue(VkDevice client_device, uint32_t family_index, uint32_t queue_index, VkQueue *queue) +void wine_vkGetDeviceQueue(VkDevice client_device, uint32_t family_index, uint32_t queue_index, VkQueue *client_queue) { VkDeviceQueueInfo2 queue_info;
@@ -1280,17 +1280,17 @@ void wine_vkGetDeviceQueue(VkDevice client_device, uint32_t family_index, uint32 queue_info.queueFamilyIndex = family_index; queue_info.queueIndex = queue_index;
- *queue = wine_vk_device_find_queue(client_device, &queue_info); + *client_queue = wine_vk_device_find_queue(client_device, &queue_info); }
-void wine_vkGetDeviceQueue2(VkDevice client_device, const VkDeviceQueueInfo2 *info, VkQueue *queue) +void wine_vkGetDeviceQueue2(VkDevice client_device, const VkDeviceQueueInfo2 *info, VkQueue *client_queue) { const VkBaseInStructure *chain;
if ((chain = info->pNext)) FIXME("Ignoring a linked structure of type %u.\n", chain->sType);
- *queue = wine_vk_device_find_queue(client_device, info); + *client_queue = wine_vk_device_find_queue(client_device, info); }
VkResult wine_vkCreateCommandPool(VkDevice client_device, const VkCommandPoolCreateInfo *info, @@ -1864,11 +1864,11 @@ void wine_vkDestroySwapchainKHR(VkDevice client_device, VkSwapchainKHR swapchain free(swapchain); }
-VkResult wine_vkQueuePresentKHR(VkQueue queue_handle, const VkPresentInfoKHR *present_info) +VkResult wine_vkQueuePresentKHR(VkQueue client_queue, const VkPresentInfoKHR *present_info) { VkSwapchainKHR swapchains_buffer[16], *swapchains = swapchains_buffer; VkSurfaceKHR surfaces_buffer[ARRAY_SIZE(swapchains_buffer)], *surfaces = surfaces_buffer; - struct wine_queue *queue = wine_queue_from_handle(queue_handle); + struct vulkan_queue *queue = vulkan_queue_from_handle(client_queue); VkPresentInfoKHR present_info_host = *present_info; VkResult res; UINT i; @@ -1891,7 +1891,7 @@ VkResult wine_vkQueuePresentKHR(VkQueue queue_handle, const VkPresentInfoKHR *pr
present_info_host.pSwapchains = swapchains;
- res = vk_funcs->p_vkQueuePresentKHR(queue->host_queue, &present_info_host, surfaces); + res = vk_funcs->p_vkQueuePresentKHR(queue->host.queue, &present_info_host, surfaces);
for (i = 0; i < present_info->swapchainCount; i++) { diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index c7e9c4bb071..99542b88376 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -57,10 +57,7 @@ static inline struct wine_cmd_buffer *wine_cmd_buffer_from_handle(VkCommandBuffe
struct wine_queue { - struct vulkan_device *device; /* parent */ - - VkQueue handle; /* client queue */ - VkQueue host_queue; + struct vulkan_queue obj;
uint32_t family_index; uint32_t queue_index; @@ -69,11 +66,6 @@ struct wine_queue struct wrapper_entry wrapper_entry; };
-static inline struct wine_queue *wine_queue_from_handle(VkQueue handle) -{ - return (struct wine_queue *)(uintptr_t)handle->obj.unix_handle; -} - struct wine_device { struct vulkan_device obj; diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index da5c1963259..32b2fba4125 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -8875,7 +8875,7 @@ static uint64_t wine_vk_unwrap_handle(uint32_t type, uint64_t handle) case VK_OBJECT_TYPE_PHYSICAL_DEVICE: return (uint64_t) (uintptr_t) vulkan_physical_device_from_handle(((VkPhysicalDevice) (uintptr_t) handle))->host.physical_device; case VK_OBJECT_TYPE_QUEUE: - return (uint64_t) (uintptr_t) wine_queue_from_handle(((VkQueue) (uintptr_t) handle))->host_queue; + return (uint64_t) (uintptr_t) vulkan_queue_from_handle(((VkQueue) (uintptr_t) handle))->host.queue; case VK_OBJECT_TYPE_SURFACE_KHR: return (uint64_t) wine_surface_from_handle(handle)->host_surface; case VK_OBJECT_TYPE_SWAPCHAIN_KHR: @@ -51557,7 +51557,7 @@ static NTSTATUS thunk64_vkGetQueueCheckpointData2NV(void *args)
TRACE("%p, %p, %p\n", params->queue, params->pCheckpointDataCount, params->pCheckpointData);
- wine_queue_from_handle(params->queue)->device->p_vkGetQueueCheckpointData2NV(wine_queue_from_handle(params->queue)->host_queue, params->pCheckpointDataCount, params->pCheckpointData); + vulkan_queue_from_handle(params->queue)->device->p_vkGetQueueCheckpointData2NV(vulkan_queue_from_handle(params->queue)->host.queue, params->pCheckpointDataCount, params->pCheckpointData); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51578,7 +51578,7 @@ static NTSTATUS thunk32_vkGetQueueCheckpointData2NV(void *args)
init_conversion_context(ctx); pCheckpointData_host = convert_VkCheckpointData2NV_array_win32_to_host(ctx, (VkCheckpointData2NV32 *)UlongToPtr(params->pCheckpointData), *(uint32_t *)UlongToPtr(params->pCheckpointDataCount)); - wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkGetQueueCheckpointData2NV(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, (uint32_t *)UlongToPtr(params->pCheckpointDataCount), pCheckpointData_host); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkGetQueueCheckpointData2NV(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, (uint32_t *)UlongToPtr(params->pCheckpointDataCount), pCheckpointData_host); convert_VkCheckpointData2NV_array_host_to_win32(pCheckpointData_host, (VkCheckpointData2NV32 *)UlongToPtr(params->pCheckpointData), *(uint32_t *)UlongToPtr(params->pCheckpointDataCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -51591,7 +51591,7 @@ static NTSTATUS thunk64_vkGetQueueCheckpointDataNV(void *args)
TRACE("%p, %p, %p\n", params->queue, params->pCheckpointDataCount, params->pCheckpointData);
- wine_queue_from_handle(params->queue)->device->p_vkGetQueueCheckpointDataNV(wine_queue_from_handle(params->queue)->host_queue, params->pCheckpointDataCount, params->pCheckpointData); + vulkan_queue_from_handle(params->queue)->device->p_vkGetQueueCheckpointDataNV(vulkan_queue_from_handle(params->queue)->host.queue, params->pCheckpointDataCount, params->pCheckpointData); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51612,7 +51612,7 @@ static NTSTATUS thunk32_vkGetQueueCheckpointDataNV(void *args)
init_conversion_context(ctx); pCheckpointData_host = convert_VkCheckpointDataNV_array_win32_to_host(ctx, (VkCheckpointDataNV32 *)UlongToPtr(params->pCheckpointData), *(uint32_t *)UlongToPtr(params->pCheckpointDataCount)); - wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkGetQueueCheckpointDataNV(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, (uint32_t *)UlongToPtr(params->pCheckpointDataCount), pCheckpointData_host); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkGetQueueCheckpointDataNV(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, (uint32_t *)UlongToPtr(params->pCheckpointDataCount), pCheckpointData_host); convert_VkCheckpointDataNV_array_host_to_win32(pCheckpointData_host, (VkCheckpointDataNV32 *)UlongToPtr(params->pCheckpointData), *(uint32_t *)UlongToPtr(params->pCheckpointDataCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -52346,7 +52346,7 @@ static NTSTATUS thunk64_vkQueueBeginDebugUtilsLabelEXT(void *args)
TRACE("%p, %p\n", params->queue, params->pLabelInfo);
- wine_queue_from_handle(params->queue)->device->p_vkQueueBeginDebugUtilsLabelEXT(wine_queue_from_handle(params->queue)->host_queue, params->pLabelInfo); + vulkan_queue_from_handle(params->queue)->device->p_vkQueueBeginDebugUtilsLabelEXT(vulkan_queue_from_handle(params->queue)->host.queue, params->pLabelInfo); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52363,7 +52363,7 @@ static NTSTATUS thunk32_vkQueueBeginDebugUtilsLabelEXT(void *args) TRACE("%#x, %#x\n", params->queue, params->pLabelInfo);
convert_VkDebugUtilsLabelEXT_win32_to_host((const VkDebugUtilsLabelEXT32 *)UlongToPtr(params->pLabelInfo), &pLabelInfo_host); - wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueBeginDebugUtilsLabelEXT(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, &pLabelInfo_host); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueBeginDebugUtilsLabelEXT(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, &pLabelInfo_host); return STATUS_SUCCESS; }
@@ -52379,7 +52379,7 @@ static NTSTATUS thunk64_vkQueueBindSparse(void *args)
init_conversion_context(ctx); pBindInfo_host = convert_VkBindSparseInfo_array_win64_to_host(ctx, params->pBindInfo, params->bindInfoCount); - params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueBindSparse(wine_queue_from_handle(params->queue)->host_queue, params->bindInfoCount, pBindInfo_host, params->fence); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueBindSparse(vulkan_queue_from_handle(params->queue)->host.queue, params->bindInfoCount, pBindInfo_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52403,7 +52403,7 @@ static NTSTATUS thunk32_vkQueueBindSparse(void *args)
init_conversion_context(ctx); pBindInfo_host = convert_VkBindSparseInfo_array_win32_to_host(ctx, (const VkBindSparseInfo32 *)UlongToPtr(params->pBindInfo), params->bindInfoCount); - params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueBindSparse(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, params->bindInfoCount, pBindInfo_host, params->fence); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueBindSparse(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, params->bindInfoCount, pBindInfo_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52415,7 +52415,7 @@ static NTSTATUS thunk64_vkQueueEndDebugUtilsLabelEXT(void *args)
TRACE("%p\n", params->queue);
- wine_queue_from_handle(params->queue)->device->p_vkQueueEndDebugUtilsLabelEXT(wine_queue_from_handle(params->queue)->host_queue); + vulkan_queue_from_handle(params->queue)->device->p_vkQueueEndDebugUtilsLabelEXT(vulkan_queue_from_handle(params->queue)->host.queue); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52429,7 +52429,7 @@ static NTSTATUS thunk32_vkQueueEndDebugUtilsLabelEXT(void *args)
TRACE("%#x\n", params->queue);
- wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueEndDebugUtilsLabelEXT(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueEndDebugUtilsLabelEXT(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue); return STATUS_SUCCESS; }
@@ -52440,7 +52440,7 @@ static NTSTATUS thunk64_vkQueueInsertDebugUtilsLabelEXT(void *args)
TRACE("%p, %p\n", params->queue, params->pLabelInfo);
- wine_queue_from_handle(params->queue)->device->p_vkQueueInsertDebugUtilsLabelEXT(wine_queue_from_handle(params->queue)->host_queue, params->pLabelInfo); + vulkan_queue_from_handle(params->queue)->device->p_vkQueueInsertDebugUtilsLabelEXT(vulkan_queue_from_handle(params->queue)->host.queue, params->pLabelInfo); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52457,7 +52457,7 @@ static NTSTATUS thunk32_vkQueueInsertDebugUtilsLabelEXT(void *args) TRACE("%#x, %#x\n", params->queue, params->pLabelInfo);
convert_VkDebugUtilsLabelEXT_win32_to_host((const VkDebugUtilsLabelEXT32 *)UlongToPtr(params->pLabelInfo), &pLabelInfo_host); - wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueInsertDebugUtilsLabelEXT(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, &pLabelInfo_host); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueInsertDebugUtilsLabelEXT(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, &pLabelInfo_host); return STATUS_SUCCESS; }
@@ -52468,7 +52468,7 @@ static NTSTATUS thunk64_vkQueueNotifyOutOfBandNV(void *args)
TRACE("%p, %p\n", params->queue, params->pQueueTypeInfo);
- wine_queue_from_handle(params->queue)->device->p_vkQueueNotifyOutOfBandNV(wine_queue_from_handle(params->queue)->host_queue, params->pQueueTypeInfo); + vulkan_queue_from_handle(params->queue)->device->p_vkQueueNotifyOutOfBandNV(vulkan_queue_from_handle(params->queue)->host.queue, params->pQueueTypeInfo); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52485,7 +52485,7 @@ static NTSTATUS thunk32_vkQueueNotifyOutOfBandNV(void *args) TRACE("%#x, %#x\n", params->queue, params->pQueueTypeInfo);
convert_VkOutOfBandQueueTypeInfoNV_win32_to_host((const VkOutOfBandQueueTypeInfoNV32 *)UlongToPtr(params->pQueueTypeInfo), &pQueueTypeInfo_host); - wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueNotifyOutOfBandNV(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, &pQueueTypeInfo_host); + vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueNotifyOutOfBandNV(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, &pQueueTypeInfo_host); return STATUS_SUCCESS; }
@@ -52529,7 +52529,7 @@ static NTSTATUS thunk64_vkQueueSetPerformanceConfigurationINTEL(void *args)
TRACE("%p, 0x%s\n", params->queue, wine_dbgstr_longlong(params->configuration));
- params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueSetPerformanceConfigurationINTEL(wine_queue_from_handle(params->queue)->host_queue, params->configuration); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueSetPerformanceConfigurationINTEL(vulkan_queue_from_handle(params->queue)->host.queue, params->configuration); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52545,7 +52545,7 @@ static NTSTATUS thunk32_vkQueueSetPerformanceConfigurationINTEL(void *args)
TRACE("%#x, 0x%s\n", params->queue, wine_dbgstr_longlong(params->configuration));
- params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSetPerformanceConfigurationINTEL(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, params->configuration); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSetPerformanceConfigurationINTEL(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, params->configuration); return STATUS_SUCCESS; }
@@ -52561,7 +52561,7 @@ static NTSTATUS thunk64_vkQueueSubmit(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo_array_win64_to_host(ctx, params->pSubmits, params->submitCount); - params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueSubmit(wine_queue_from_handle(params->queue)->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueSubmit(vulkan_queue_from_handle(params->queue)->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52585,7 +52585,7 @@ static NTSTATUS thunk32_vkQueueSubmit(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo_array_win32_to_host(ctx, (const VkSubmitInfo32 *)UlongToPtr(params->pSubmits), params->submitCount); - params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52602,7 +52602,7 @@ static NTSTATUS thunk64_vkQueueSubmit2(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo2_array_win64_to_host(ctx, params->pSubmits, params->submitCount); - params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueSubmit2(wine_queue_from_handle(params->queue)->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueSubmit2(vulkan_queue_from_handle(params->queue)->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52626,7 +52626,7 @@ static NTSTATUS thunk32_vkQueueSubmit2(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo2_array_win32_to_host(ctx, (const VkSubmitInfo232 *)UlongToPtr(params->pSubmits), params->submitCount); - params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit2(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit2(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52643,7 +52643,7 @@ static NTSTATUS thunk64_vkQueueSubmit2KHR(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo2_array_win64_to_host(ctx, params->pSubmits, params->submitCount); - params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueSubmit2KHR(wine_queue_from_handle(params->queue)->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueSubmit2KHR(vulkan_queue_from_handle(params->queue)->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52667,7 +52667,7 @@ static NTSTATUS thunk32_vkQueueSubmit2KHR(void *args)
init_conversion_context(ctx); pSubmits_host = convert_VkSubmitInfo2_array_win32_to_host(ctx, (const VkSubmitInfo232 *)UlongToPtr(params->pSubmits), params->submitCount); - params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit2KHR(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue, params->submitCount, pSubmits_host, params->fence); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueSubmit2KHR(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue, params->submitCount, pSubmits_host, params->fence); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -52679,7 +52679,7 @@ static NTSTATUS thunk64_vkQueueWaitIdle(void *args)
TRACE("%p\n", params->queue);
- params->result = wine_queue_from_handle(params->queue)->device->p_vkQueueWaitIdle(wine_queue_from_handle(params->queue)->host_queue); + params->result = vulkan_queue_from_handle(params->queue)->device->p_vkQueueWaitIdle(vulkan_queue_from_handle(params->queue)->host.queue); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -52694,7 +52694,7 @@ static NTSTATUS thunk32_vkQueueWaitIdle(void *args)
TRACE("%#x\n", params->queue);
- params->result = wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueWaitIdle(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host_queue); + params->result = vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->p_vkQueueWaitIdle(vulkan_queue_from_handle((VkQueue)UlongToPtr(params->queue))->host.queue); return STATUS_SUCCESS; }
diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 01636b3a9e3..db4192a350a 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -104,6 +104,18 @@ static inline struct vulkan_device *vulkan_device_from_handle( VkDevice handle ) return (struct vulkan_device *)(UINT_PTR)client->unix_handle; }
+struct vulkan_queue +{ + VULKAN_OBJECT_HEADER( VkQueue, queue ); + struct vulkan_device *device; +}; + +static inline struct vulkan_queue *vulkan_queue_from_handle( VkQueue handle ) +{ + struct vulkan_client_object *client = (struct vulkan_client_object *)handle; + return (struct vulkan_queue *)(UINT_PTR)client->unix_handle; +} + struct vulkan_funcs { /* Vulkan global functions. These are the only calls at this point a graphics driver