VK_PIPELINE_STAGE_2_HOST_BIT_KHR, // VkPipelineStageFlags2KHR dstStageMask
VK_ACCESS_2_HOST_READ_BIT_KHR // VkAccessFlags2KHR dstAccessMask
};
- VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(&memoryBarrier2);
+ VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(&memoryBarrier2, DE_NULL, DE_NULL, DE_TRUE);
{
SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(config.type, vk, DE_FALSE);
makeCommonCommandBufferSubmitInfo(cmdBuffers[SET]),
makeCommonCommandBufferSubmitInfo(cmdBuffers[WAIT])
};
- VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo();
+ VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, DE_NULL, DE_TRUE);
SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(config.type, vk, DE_FALSE);
synchronizationWrapper->addSubmitInfo(
};
VkDependencyInfoKHR dependencyInfos[] =
{
- makeCommonDependencyInfo(),
- makeCommonDependencyInfo()
+ makeCommonDependencyInfo(DE_NULL, DE_NULL, DE_NULL, DE_TRUE),
+ makeCommonDependencyInfo(DE_NULL, DE_NULL, DE_NULL, DE_TRUE)
};
synchronizationWrapper[SET]->addSubmitInfo(
VkCommandBufferSubmitInfoKHR commandBufferSubmitInfo = makeCommonCommandBufferSubmitInfo(*primaryCmdBuffer);
VkDependencyInfoKHR dependencyInfos[] =
{
- makeCommonDependencyInfo(),
- makeCommonDependencyInfo()
+ makeCommonDependencyInfo(DE_NULL, DE_NULL, DE_NULL, DE_TRUE),
+ makeCommonDependencyInfo(DE_NULL, DE_NULL, DE_NULL, DE_TRUE)
};
SynchronizationWrapperPtr synchronizationWrapper = getSynchronizationWrapper(config.type, vk, DE_FALSE);
m_resource->getImage().handle, // VkImage image
m_resource->getImage().subresourceRange // VkImageSubresourceRange subresourceRange
);
- VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2);
+ VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, DE_NULL, &imageMemoryBarrier2, DE_TRUE);
synchronizationWrapper->cmdSetEvent(*cmdBuffer, *event, &dependencyInfo);
synchronizationWrapper->cmdWaitEvents(*cmdBuffer, 1u, &event.get(), &dependencyInfo);
}
m_resource->getBuffer().offset, // VkDeviceSize offset
m_resource->getBuffer().size // VkDeviceSize size
);
- VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2);
+ VkDependencyInfoKHR dependencyInfo = makeCommonDependencyInfo(DE_NULL, &bufferMemoryBarrier2, DE_NULL, DE_TRUE);
synchronizationWrapper->cmdSetEvent(*cmdBuffer, *event, &dependencyInfo);
synchronizationWrapper->cmdWaitEvents(*cmdBuffer, 1u, &event.get(), &dependencyInfo);
}
};
}
-VkDependencyInfoKHR makeCommonDependencyInfo(const VkMemoryBarrier2KHR* pMemoryBarrier, const VkBufferMemoryBarrier2KHR* pBufferMemoryBarrier, const VkImageMemoryBarrier2KHR* pImageMemoryBarrier)
+VkDependencyInfoKHR makeCommonDependencyInfo(const VkMemoryBarrier2KHR* pMemoryBarrier, const VkBufferMemoryBarrier2KHR* pBufferMemoryBarrier, const VkImageMemoryBarrier2KHR* pImageMemoryBarrier,
+ bool eventDependency)
{
return
{
- VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR, // VkStructureType sType
- DE_NULL, // const void* pNext
- VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
- !!pMemoryBarrier, // deUint32 memoryBarrierCount
- pMemoryBarrier, // const VkMemoryBarrier2KHR* pMemoryBarriers
- !!pBufferMemoryBarrier, // deUint32 bufferMemoryBarrierCount
- pBufferMemoryBarrier, // const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers
- !!pImageMemoryBarrier, // deUint32 imageMemoryBarrierCount
- pImageMemoryBarrier // const VkImageMemoryBarrier2KHR* pImageMemoryBarriers
+ VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR, // VkStructureType sType
+ DE_NULL, // const void* pNext
+ eventDependency ? (VkDependencyFlags)0u : (VkDependencyFlags)VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
+ !!pMemoryBarrier, // deUint32 memoryBarrierCount
+ pMemoryBarrier, // const VkMemoryBarrier2KHR* pMemoryBarriers
+ !!pBufferMemoryBarrier, // deUint32 bufferMemoryBarrierCount
+ pBufferMemoryBarrier, // const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers
+ !!pImageMemoryBarrier, // deUint32 imageMemoryBarrierCount
+ pImageMemoryBarrier // const VkImageMemoryBarrier2KHR* pImageMemoryBarriers
};
};
bool isIndirectBuffer (const ResourceType type);
vk::VkCommandBufferSubmitInfoKHR makeCommonCommandBufferSubmitInfo (const vk::VkCommandBuffer cmdBuf);
vk::VkSemaphoreSubmitInfoKHR makeCommonSemaphoreSubmitInfo (vk::VkSemaphore semaphore, deUint64 value, vk::VkPipelineStageFlags2KHR stageMask);
-vk::VkDependencyInfoKHR makeCommonDependencyInfo (const vk::VkMemoryBarrier2KHR* pMemoryBarrier = DE_NULL, const vk::VkBufferMemoryBarrier2KHR* pBufferMemoryBarrier = DE_NULL, const vk::VkImageMemoryBarrier2KHR* pImageMemoryBarrier = DE_NULL);
+vk::VkDependencyInfoKHR makeCommonDependencyInfo (const vk::VkMemoryBarrier2KHR* pMemoryBarrier = DE_NULL, const vk::VkBufferMemoryBarrier2KHR* pBufferMemoryBarrier = DE_NULL, const vk::VkImageMemoryBarrier2KHR* pImageMemoryBarrier = DE_NULL, bool eventDependency = DE_FALSE);
} // synchronization
} // vkt