From 7cc59ad9736ddaaeeeeee7bc5c2f21c0b1df6be1 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Fri, 5 May 2023 11:16:00 -0700 Subject: [PATCH] dzn: Finish implementing KHR_synchronization2 This was already mostly implemented. Without this, the synchronization2 sharing tests will crash, because there's a CTS bug that's missing a skip check for Windows. Part-of: --- src/microsoft/vulkan/dzn_cmd_buffer.c | 34 ++++++++++++---------------------- src/microsoft/vulkan/dzn_device.c | 1 + 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c index 1942628..06118de 100644 --- a/src/microsoft/vulkan/dzn_cmd_buffer.c +++ b/src/microsoft/vulkan/dzn_cmd_buffer.c @@ -5376,9 +5376,9 @@ dzn_CmdBindIndexBuffer(VkCommandBuffer commandBuffer, } VKAPI_ATTR void VKAPI_CALL -dzn_CmdResetEvent(VkCommandBuffer commandBuffer, - VkEvent event, - VkPipelineStageFlags stageMask) +dzn_CmdResetEvent2(VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask) { VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer); VK_FROM_HANDLE(dzn_event, evt, event); @@ -5388,9 +5388,9 @@ dzn_CmdResetEvent(VkCommandBuffer commandBuffer, } VKAPI_ATTR void VKAPI_CALL -dzn_CmdSetEvent(VkCommandBuffer commandBuffer, - VkEvent event, - VkPipelineStageFlags stageMask) +dzn_CmdSetEvent2(VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo *pDependencyInfo) { VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer); VK_FROM_HANDLE(dzn_event, evt, event); @@ -5400,17 +5400,10 @@ dzn_CmdSetEvent(VkCommandBuffer commandBuffer, } VKAPI_ATTR void VKAPI_CALL -dzn_CmdWaitEvents(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) +dzn_CmdWaitEvents2(VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent *pEvents, + const VkDependencyInfo *pDependencyInfo) { VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer); @@ -5462,12 +5455,9 @@ dzn_CmdWaitEvents(VkCommandBuffer commandBuffer, ID3D12GraphicsCommandList1_ResourceBarrier(cmdbuf->cmdlist, 1, &barrier); } } - cmdbuf->vk.base.device->dispatch_table.CmdPipelineBarrier( + cmdbuf->vk.base.device->dispatch_table.CmdPipelineBarrier2( vk_command_buffer_to_handle(&cmdbuf->vk), - srcStageMask, dstStageMask, 0, - memoryBarrierCount, pMemoryBarriers, - bufferMemoryBarrierCount, pBufferMemoryBarriers, - imageMemoryBarrierCount, pImageMemoryBarriers); + pDependencyInfo); } VKAPI_ATTR void VKAPI_CALL diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c index edf94ec..2f38603 100644 --- a/src/microsoft/vulkan/dzn_device.c +++ b/src/microsoft/vulkan/dzn_device.c @@ -127,6 +127,7 @@ dzn_physical_device_get_extensions(struct dzn_physical_device *pdev) #ifdef DZN_USE_WSI_PLATFORM .KHR_swapchain = true, #endif + .KHR_synchronization2 = true, .KHR_timeline_semaphore = true, .KHR_uniform_buffer_standard_layout = true, .EXT_descriptor_indexing = pdev->shader_model >= D3D_SHADER_MODEL_6_6, -- 2.7.4