SpiecsEngine
 
Loading...
Searching...
No Matches

◆ CreateSyncObjects()

void Spices::VulkanSwapChain::CreateSyncObjects ( ) const
private

Create Sync Objects.

Todo
Move to another file.

Instance a VkSemaphoreCreateInfo.

Instance a VkFenceCreateInfo.

Create SyncObkects.

Instance a VkSemaphoreCreateInfo.

Instance a VkFenceCreateInfo.

Create SyncObkects.

Definition at line 248 of file VulkanSwapChain.cpp.

249 {
251
255 VkSemaphoreCreateInfo semaphoreInfo {};
256 semaphoreInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
257
261 VkFenceCreateInfo fenceInfo {};
262 fenceInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
263 fenceInfo.flags = VK_FENCE_CREATE_SIGNALED_BIT;
264
268 for (size_t i = 0; i < MaxFrameInFlight; i++)
269 {
270 // Graphic SyncObjects.
271 VK_CHECK(vkCreateSemaphore(m_VulkanState.m_Device, &semaphoreInfo, nullptr, &m_VulkanState.m_GraphicImageSemaphore[i]))
272 DEBUGUTILS_SETOBJECTNAME(VK_OBJECT_TYPE_SEMAPHORE, reinterpret_cast<uint64_t>(m_VulkanState.m_GraphicImageSemaphore[i]), m_VulkanState.m_Device, "GraphicImageSemaphore")
273
274 VK_CHECK(vkCreateSemaphore(m_VulkanState.m_Device, &semaphoreInfo, nullptr, &m_VulkanState.m_GraphicQueueSemaphore[i]))
275 DEBUGUTILS_SETOBJECTNAME(VK_OBJECT_TYPE_SEMAPHORE, reinterpret_cast<uint64_t>(m_VulkanState.m_GraphicQueueSemaphore[i]), m_VulkanState.m_Device, "GraphicQueueSemaphore")
276
277 VK_CHECK(vkCreateFence(m_VulkanState.m_Device, &fenceInfo, nullptr, &m_VulkanState.m_GraphicFence[i]))
278 DEBUGUTILS_SETOBJECTNAME(VK_OBJECT_TYPE_FENCE, reinterpret_cast<uint64_t>(m_VulkanState.m_GraphicFence[i]), m_VulkanState.m_Device, "GraphicFence")
279
280 // Compute SyncObjects.
281 VK_CHECK(vkCreateSemaphore(m_VulkanState.m_Device, &semaphoreInfo, nullptr, &m_VulkanState.m_ComputeQueueSemaphore[i]))
282 DEBUGUTILS_SETOBJECTNAME(VK_OBJECT_TYPE_SEMAPHORE, reinterpret_cast<uint64_t>(m_VulkanState.m_ComputeQueueSemaphore[i]), m_VulkanState.m_Device, "ComputeQueueSemaphore")
283
284 VK_CHECK(vkCreateFence(m_VulkanState.m_Device, &fenceInfo, nullptr, &m_VulkanState.m_ComputeFence[i]))
285 DEBUGUTILS_SETOBJECTNAME(VK_OBJECT_TYPE_FENCE, reinterpret_cast<uint64_t>(m_VulkanState.m_ComputeFence[i]), m_VulkanState.m_Device, "ComputeFence")
286 }
287 }
#define SPICES_PROFILE_ZONE
#define VK_CHECK(expr)
Vulkan Check macro. Verify Vulkan API Effectiveness.
Definition VulkanUtils.h:68
VulkanState & m_VulkanState
The global VulkanState Referenced from VulkanRenderBackend.
constexpr uint32_t MaxFrameInFlight
Max In Flight Frame. 2 buffers are enough in this program.
Definition VulkanUtils.h:22
std::array< VkSemaphore, MaxFrameInFlight > m_GraphicImageSemaphore

Referenced by VulkanSwapChain().