|
Nebula
|
#include <vkscheduler.h>
Public Member Functions | |
| VkScheduler () | |
| constructor | |
| virtual | ~VkScheduler () |
| destructor | |
| void | PushImageLayoutTransition (CoreGraphicsQueueType queue, CoreGraphics::BarrierStage left, CoreGraphics::BarrierStage right, VkImageMemoryBarrier barrier) |
| push image layout change | |
| void | PushImageOwnershipChange (CoreGraphicsQueueType queue, CoreGraphics::BarrierStage left, CoreGraphics::BarrierStage right, VkImageMemoryBarrier barrier) |
| push transition image ownership transition | |
| void | PushImageColorClear (const VkImage &image, const CoreGraphicsQueueType queue, VkImageLayout layout, VkClearColorValue clearValue, VkImageSubresourceRange subres) |
| push image color clear | |
| void | PushImageDepthStencilClear (const VkImage &image, const CoreGraphicsQueueType queue, VkImageLayout layout, VkClearDepthStencilValue clearValue, VkImageSubresourceRange subres) |
| push image depth stencil clear | |
| void | PushImageUpdate (const VkImage &img, const VkImageCreateInfo &info, uint32_t mip, uint32_t face, VkDeviceSize size, uint32_t *data) |
| setup staging image update for later execution | |
| void | ExecuteCommandPass (const CommandPass &pass) |
| execute stacked commands | |
| void | SetDevice (const VkDevice dev) |
| set device to be used by this scheduler | |
| void | Begin () |
| begin new cycle for all queues | |
| void | EndTransfers () |
| end cycle for transfers | |
| void | EndDraws () |
| end cycle for draws | |
| void | EndComputes () |
| end cycle for computes | |
| void | Discard () |
| discard scheduler | |
Private Member Functions | |
| __DeclareSingleton (VkScheduler) | |
| void | PushCommand (const VkDeferredCommand &cmd, const CommandPass &pass) |
| push command to sheduler | |
Private Attributes | |
| bool | putTransferFenceThisFrame |
| bool | putSparseFenceThisFrame |
| bool | putComputeFenceThisFrame |
| bool | putDrawFenceThisFrame |
| VkDevice | dev |
| Util::FixedArray< Util::Array< VkDeferredCommand > > | commands |
| Util::Dictionary< VkFence, Util::Array< VkDeferredCommand > > | transferFenceCommands |
| Util::Dictionary< VkFence, Util::Array< VkDeferredCommand > > | drawFenceCommands |
| Util::Dictionary< VkFence, Util::Array< VkDeferredCommand > > | computeFenceCommands |
| Util::Dictionary< VkFence, Util::Array< VkDeferredCommand > > | sparseFenceCommands |
Friends | |
| class | VkUtilities |
| void | BindDescriptorsGraphics (const VkDescriptorSet *descriptors, uint32_t baseSet, uint32_t setCount, const uint32_t *offsets, uint32_t offsetCount, bool shared) |
| void | BindDescriptorsCompute (const VkDescriptorSet *descriptors, uint32_t baseSet, uint32_t setCount, const uint32_t *offsets, uint32_t offsetCount) |
| void | EndDrawThreads () |
| void | EndDrawSubpass () |
| Vulkan::VkScheduler::VkScheduler | ( | ) |
constructor
|
virtual |
destructor
|
private |
| void Vulkan::VkScheduler::Begin | ( | ) |
begin new cycle for all queues
| void Vulkan::VkScheduler::Discard | ( | ) |
discard scheduler
| void Vulkan::VkScheduler::EndComputes | ( | ) |
end cycle for computes
| void Vulkan::VkScheduler::EndDraws | ( | ) |
end cycle for draws
| void Vulkan::VkScheduler::EndTransfers | ( | ) |
end cycle for transfers
| void Vulkan::VkScheduler::ExecuteCommandPass | ( | const CommandPass & | pass | ) |
execute stacked commands
|
private |
push command to sheduler
| void Vulkan::VkScheduler::PushImageColorClear | ( | const VkImage & | image, |
| const CoreGraphicsQueueType | queue, | ||
| VkImageLayout | layout, | ||
| VkClearColorValue | clearValue, | ||
| VkImageSubresourceRange | subres ) |
push image color clear
| void Vulkan::VkScheduler::PushImageDepthStencilClear | ( | const VkImage & | image, |
| const CoreGraphicsQueueType | queue, | ||
| VkImageLayout | layout, | ||
| VkClearDepthStencilValue | clearValue, | ||
| VkImageSubresourceRange | subres ) |
push image depth stencil clear
| void Vulkan::VkScheduler::PushImageLayoutTransition | ( | CoreGraphicsQueueType | queue, |
| CoreGraphics::BarrierStage | left, | ||
| CoreGraphics::BarrierStage | right, | ||
| VkImageMemoryBarrier | barrier ) |
push image layout change
| void Vulkan::VkScheduler::PushImageOwnershipChange | ( | CoreGraphicsQueueType | queue, |
| CoreGraphics::BarrierStage | left, | ||
| CoreGraphics::BarrierStage | right, | ||
| VkImageMemoryBarrier | barrier ) |
push transition image ownership transition
| void Vulkan::VkScheduler::PushImageUpdate | ( | const VkImage & | img, |
| const VkImageCreateInfo & | info, | ||
| uint32_t | mip, | ||
| uint32_t | face, | ||
| VkDeviceSize | size, | ||
| uint32_t * | data ) |
setup staging image update for later execution
|
inline |
set device to be used by this scheduler
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |