Migrate to new KHR_synchronization2 (core in 1.3) barriers. (#670)
* Migrate to new KHR_synchronization2 (core in 1.3) barriers. * More barriers improvements and use vkQueueSubmit2 * FIX layout during resolve, need to be set to COPY_DST so we don't have to workaround Vulkan side. * Complete total VK_KHR_synchronization2 migration. * Use VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT instead of VK_PIPELINE_STAGE_2_TRANSFER_BIT for memory barriers.
This commit is contained in:
@@ -886,6 +886,7 @@ namespace wi::graphics
|
||||
image.type = Type::RESOLVE;
|
||||
image.texture = resource;
|
||||
image.layout_before = layout_before;
|
||||
image.layout = ResourceState::COPY_DST;
|
||||
image.layout_after = layout_after;
|
||||
image.subresource = subresource_SRV;
|
||||
return image;
|
||||
@@ -903,6 +904,7 @@ namespace wi::graphics
|
||||
image.type = Type::RESOLVE_DEPTH;
|
||||
image.texture = resource;
|
||||
image.layout_before = layout_before;
|
||||
image.layout = ResourceState::COPY_DST;
|
||||
image.layout_after = layout_after;
|
||||
image.subresource = subresource_SRV;
|
||||
image.depth_resolve_mode = depth_resolve_mode;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -98,12 +98,10 @@ namespace wi::graphics
|
||||
wi::vector<SwapChain> swapchain_updates;
|
||||
wi::vector<VkSwapchainKHR> submit_swapchains;
|
||||
wi::vector<uint32_t> submit_swapChainImageIndices;
|
||||
wi::vector<VkPipelineStageFlags> submit_waitStages;
|
||||
wi::vector<VkSemaphore> submit_waitSemaphores;
|
||||
wi::vector<uint64_t> submit_waitValues;
|
||||
wi::vector<VkSemaphoreSubmitInfo> submit_waitSemaphoreInfos;
|
||||
wi::vector<VkSemaphore> submit_signalSemaphores;
|
||||
wi::vector<uint64_t> submit_signalValues;
|
||||
wi::vector<VkCommandBuffer> submit_cmds;
|
||||
wi::vector<VkSemaphoreSubmitInfo> submit_signalSemaphoreInfos;
|
||||
wi::vector<VkCommandBufferSubmitInfo> submit_cmds;
|
||||
|
||||
bool sparse_binding_supported = false;
|
||||
std::mutex locker;
|
||||
@@ -204,14 +202,14 @@ namespace wi::graphics
|
||||
ShadingRate prev_shadingrate = {};
|
||||
wi::vector<SwapChain> prev_swapchains;
|
||||
bool dirty_pso = {};
|
||||
wi::vector<VkMemoryBarrier> frame_memoryBarriers;
|
||||
wi::vector<VkImageMemoryBarrier> frame_imageBarriers;
|
||||
wi::vector<VkBufferMemoryBarrier> frame_bufferBarriers;
|
||||
wi::vector<VkMemoryBarrier2> frame_memoryBarriers;
|
||||
wi::vector<VkImageMemoryBarrier2> frame_imageBarriers;
|
||||
wi::vector<VkBufferMemoryBarrier2> frame_bufferBarriers;
|
||||
wi::vector<VkAccelerationStructureGeometryKHR> accelerationstructure_build_geometries;
|
||||
wi::vector<VkAccelerationStructureBuildRangeInfoKHR> accelerationstructure_build_ranges;
|
||||
RenderPassInfo renderpass_info;
|
||||
wi::vector<VkImageMemoryBarrier> renderpass_barriers_begin;
|
||||
wi::vector<VkImageMemoryBarrier> renderpass_barriers_end;
|
||||
wi::vector<VkImageMemoryBarrier2> renderpass_barriers_begin;
|
||||
wi::vector<VkImageMemoryBarrier2> renderpass_barriers_end;
|
||||
|
||||
void reset(uint32_t bufferindex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user