addSemaphore(vkB, *deviceB, semaphoresB, semaphoreHandlesB, timelineValuesB, false, timelineValuesA.back());
}
- // Submit writes, each in its own VkSubmitInfo.
+ // Submit writes, each in its own VkSubmitInfo. With binary
+ // semaphores, submission don't wait on anything, with
+ // timeline semaphores, submissions wait on a host signal
+ // operation done below.
{
std::vector<VkTimelineSemaphoreSubmitInfoKHR> timelineSubmitInfos;
std::vector<VkSubmitInfo> submitInfos;
{
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR, // VkStructureType sType;
DE_NULL, // const void* pNext;
- iterIdx == 0 ? 1u: 0, // deUint32 waitSemaphoreValueCount
+ m_semaphoreType == VK_SEMAPHORE_TYPE_TIMELINE_KHR ?
+ 1u: 0, // deUint32 waitSemaphoreValueCount
&waitValue, // const deUint64* pWaitSemaphoreValues
1u, // deUint32 signalSemaphoreValueCount
&timelineValuesA[iterIdx], // const deUint64* pSignalSemaphoreValues
addSemaphore(vk, device, semaphoresB, semaphoreHandlesB, timelineValuesB, timelineValuesA.back());
- // Submit writes, each in its own VkSubmitInfo.
+ // Submit writes, each in its own VkSubmitInfo. With binary
+ // semaphores, submission don't wait on anything, with
+ // timeline semaphores, submissions wait on a host signal
+ // operation done below.
{
std::vector<VkTimelineSemaphoreSubmitInfoKHR> timelineSubmitInfos;
std::vector<VkSubmitInfo> submitInfos;
{
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR, // VkStructureType sType;
DE_NULL, // const void* pNext;
- iterIdx == 0 ? 1u: 0, // deUint32 waitSemaphoreValueCount
+ m_semaphoreType == VK_SEMAPHORE_TYPE_TIMELINE_KHR ?
+ 1u : 0u, // deUint32 waitSemaphoreValueCount
&waitValue, // const deUint64* pWaitSemaphoreValues
1u, // deUint32 signalSemaphoreValueCount
&timelineValuesA[iterIdx], // const deUint64* pSignalSemaphoreValues