Nebula
|
#include <vksubcontexthandler.h>
Classes | |
struct | SparseBindSubmission |
struct | SubmissionList |
struct | TimelineSubmission |
struct | TimelineSubmission2 |
Public Member Functions | |
VkSubContextHandler () | |
constructor | |
~VkSubContextHandler () | |
destructor | |
void | Setup (VkDevice dev, const Util::FixedArray< Util::Pair< uint, uint > > indexMap) |
setup subcontext handler | |
void | Discard () |
discard | |
void | SetToNextContext (const CoreGraphics::QueueType type) |
set to next context of type | |
uint64 | AppendSubmissionTimeline (CoreGraphics::QueueType type, VkCommandBuffer cmds, Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > waitEvents) |
append submission to context to execute later, supports waiting for a queue | |
uint64 | AppendSubmissionTimeline (CoreGraphics::QueueType type, Util::Array< VkCommandBuffer, 16 > cmds, Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > waitEvents) |
append submissions to context to execute later, supports waiting for a queue | |
uint64 | GetNextTimelineIndex (CoreGraphics::QueueType type) |
Gets the next submission id for a specific queue. | |
uint64 | AppendSparseBind (CoreGraphics::QueueType type, const VkImage img, const Util::Array< VkSparseMemoryBind > &opaqueBinds, const Util::Array< VkSparseImageMemoryBind > &pageBinds) |
append a sparse image bind timeline operation | |
uint64 | AppendSparseBind (CoreGraphics::QueueType type, const VkBuffer buf, const Util::Array< VkSparseMemoryBind > &binds) |
append a sparse buffer bind timeline operation | |
void | AppendPresentSignal (CoreGraphics::QueueType type, VkSemaphore sem) |
Append present signal. | |
void | FlushSubmissions (VkFence fence) |
Flush submissions. | |
void | Wait (CoreGraphics::QueueType type, uint64 index) |
wait for timeline index | |
bool | Poll (CoreGraphics::QueueType type, uint64_t index) |
check to see if timeline index has passed | |
void | FlushSparseBinds (VkFence fence) |
flush sparse binds | |
void | InsertFence (CoreGraphics::QueueType type, VkFence fence) |
insert fence | |
void | WaitIdle (const CoreGraphics::QueueType type) |
wait for a queue to finish working | |
VkQueue | GetQueue (const CoreGraphics::QueueType type) |
get current queue | |
Private Member Functions | |
VkSemaphore | GetSemaphore (const CoreGraphics::QueueType type) |
uint64 | GetSemaphoreId (const CoreGraphics::QueueType type) |
void | IncrementSemaphoreId (const CoreGraphics::QueueType type) |
Private Attributes | |
VkDevice | device |
Util::FixedArray< Util::Array< VkQueue > > | queues |
Util::FixedArray< uint > | currentQueue |
Util::FixedArray< Util::Array< VkSemaphore > > | semaphores |
Util::FixedArray< Util::Array< uint64 > > | semaphoreSubmissionIds |
Util::FixedArray< Util::Array< TimelineSubmission2, 16 > > | submissions |
Util::Array< SparseBindSubmission > | sparseBindSubmissions |
Threading::CriticalSection | submissionLock |
Friends | |
const VkQueue | GetQueue (const CoreGraphics::QueueType type, const IndexT index) |
get queue from index and family | |
Vulkan::VkSubContextHandler::VkSubContextHandler | ( | ) |
constructor
Vulkan::VkSubContextHandler::~VkSubContextHandler | ( | ) |
destructor
void Vulkan::VkSubContextHandler::AppendPresentSignal | ( | CoreGraphics::QueueType | type, |
VkSemaphore | sem ) |
Append present signal.
uint64 Vulkan::VkSubContextHandler::AppendSparseBind | ( | CoreGraphics::QueueType | type, |
const VkBuffer | buf, | ||
const Util::Array< VkSparseMemoryBind > & | binds ) |
append a sparse buffer bind timeline operation
uint64_t Vulkan::VkSubContextHandler::AppendSparseBind | ( | CoreGraphics::QueueType | type, |
const VkImage | img, | ||
const Util::Array< VkSparseMemoryBind > & | opaqueBinds, | ||
const Util::Array< VkSparseImageMemoryBind > & | pageBinds ) |
append a sparse image bind timeline operation
uint64 Vulkan::VkSubContextHandler::AppendSubmissionTimeline | ( | CoreGraphics::QueueType | type, |
Util::Array< VkCommandBuffer, 16 > | cmds, | ||
Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > | waitEvents ) |
append submissions to context to execute later, supports waiting for a queue
uint64 Vulkan::VkSubContextHandler::AppendSubmissionTimeline | ( | CoreGraphics::QueueType | type, |
VkCommandBuffer | cmds, | ||
Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > | waitEvents ) |
append submission to context to execute later, supports waiting for a queue
void Vulkan::VkSubContextHandler::Discard | ( | ) |
discard
void Vulkan::VkSubContextHandler::FlushSparseBinds | ( | VkFence | fence | ) |
flush sparse binds
void Vulkan::VkSubContextHandler::FlushSubmissions | ( | VkFence | fence | ) |
Flush submissions.
uint64 Vulkan::VkSubContextHandler::GetNextTimelineIndex | ( | CoreGraphics::QueueType | type | ) |
Gets the next submission id for a specific queue.
VkQueue Vulkan::VkSubContextHandler::GetQueue | ( | const CoreGraphics::QueueType | type | ) |
get current queue
|
private |
|
private |
|
private |
void Vulkan::VkSubContextHandler::InsertFence | ( | CoreGraphics::QueueType | type, |
VkFence | fence ) |
insert fence
bool Vulkan::VkSubContextHandler::Poll | ( | CoreGraphics::QueueType | type, |
uint64_t | index ) |
check to see if timeline index has passed
void Vulkan::VkSubContextHandler::SetToNextContext | ( | const CoreGraphics::QueueType | type | ) |
set to next context of type
void Vulkan::VkSubContextHandler::Setup | ( | VkDevice | dev, |
const Util::FixedArray< Util::Pair< uint, uint > > | indexMap ) |
setup subcontext handler
void Vulkan::VkSubContextHandler::Wait | ( | CoreGraphics::QueueType | type, |
uint64 | index ) |
wait for timeline index
void Vulkan::VkSubContextHandler::WaitIdle | ( | const CoreGraphics::QueueType | type | ) |
wait for a queue to finish working
|
friend |
get queue from index and family
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |