KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::KarmaGui_Vulkan_Frame_On_Flight Struct Reference

Data structure for synchronous operations (relevant to rendering in this context). More...

#include <KarmaGuiVulkanHandler.h>

Public Attributes

VkFence Fence
 A handle to fence object.
 
VkSemaphore ImageAcquiredSemaphore
 Handle to semaphore object for next available presentable image (vkAcquireNextImageKHR).
 
VkSemaphore RenderCompleteSemaphore
 Handle to semaphore to wait for before issuing the present request (vkQueuePresentKHR).
 
VkCommandBuffer CommandBuffer
 Object used to record commands which can be subsequently submitted to a device queue for execution.
 

Detailed Description

Data structure for synchronous operations (relevant to rendering in this context).

Note
It seems the ImGUI author(s) have mixed and/or confused notion of ImageCount, which decides the number of SwapChainImages, framebuffer, and so on (contained within KarmaGui_ImplVulkanH_ImageFrame structure) (https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Swap_chain#page_Retrieving-the-swap-chain-images) and SemaphoreIndex (upto MAX_FRAMES_IN_FLIGHT), which is representative of (linearly proportional to or indicative of) number of commandbuffer recordings on CPU that may happen whilst the rendering is being done on GPU. That should determine the semaphore, fence, and commandbuffer size. https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Frames_in_flight. The argument is elicited by the comment line https://github.com/ravimohan1991/imgui/blob/e4967701b67edd491e884632f239ab1f38867d86/backends/imgui_impl_vulkan.h#L144
Since
Karma 1.0.0

Member Data Documentation

◆ CommandBuffer

VkCommandBuffer Karma::KarmaGui_Vulkan_Frame_On_Flight::CommandBuffer

Object used to record commands which can be subsequently submitted to a device queue for execution.

Since
Karma 1.0.0

◆ Fence

VkFence Karma::KarmaGui_Vulkan_Frame_On_Flight::Fence

A handle to fence object.

Fences are a synchronization primitive that can be used to insert a dependency from a queue to the host. Fences have two states - signaled and unsignaled. A fence can be signaled as part of the execution of a queue submission command. Fences can be unsignaled on the host with vkResetFences. Fences can be waited on by the host with the vkWaitForFences command, and the current state can be queried with vkGetFenceStatus.

Since
Karma 1.0.0

◆ ImageAcquiredSemaphore

VkSemaphore Karma::KarmaGui_Vulkan_Frame_On_Flight::ImageAcquiredSemaphore

Handle to semaphore object for next available presentable image (vkAcquireNextImageKHR).

Semaphores are a synchronization primitive that can be used to insert a dependency between queue operations or between a queue operation and the host. Binary semaphores have two states - signaled and unsignaled. Timeline semaphores have a strictly increasing 64-bit unsigned integer payload and are signaled with respect to a particular reference value. A semaphore can be signaled after execution of a queue operation is completed, and a queue operation can wait for a semaphore to become signaled before it begins execution. A timeline semaphore can additionally be signaled from the host with the vkSignalSemaphore command and waited on from the host with the vkWaitSemaphores command.

Since
Karma 1.0.0

◆ RenderCompleteSemaphore

VkSemaphore Karma::KarmaGui_Vulkan_Frame_On_Flight::RenderCompleteSemaphore

Handle to semaphore to wait for before issuing the present request (vkQueuePresentKHR).

Semaphores are a synchronization primitive that can be used to insert a dependency between queue operations or between a queue operation and the host. Binary semaphores have two states - signaled and unsignaled. Timeline semaphores have a strictly increasing 64-bit unsigned integer payload and are signaled with respect to a particular reference value. A semaphore can be signaled after execution of a queue operation is completed, and a queue operation can wait for a semaphore to become signaled before it begins execution. A timeline semaphore can additionally be signaled from the host with the vkSignalSemaphore command and waited on from the host with the vkWaitSemaphores command.

Since
Karma 1.0.0

The documentation for this struct was generated from the following file: