Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
|
Tracks ImageLayouts over the course of a frame rendering process. More...
#include <foray_imagelayoutcache.hpp>
Classes | |
struct | Barrier |
See VkImageMemoryBarrier. More... | |
struct | Barrier2 |
See VkImageMemoryBarrier2. More... | |
Public Member Functions | |
VkImageLayout | Get (VkImage image) const |
Get the currently cached layout of image identified by imageName. | |
VkImageLayout | Get (const ManagedImage &image) const |
Get the currently cached layout of image. | |
VkImageLayout | Get (const ManagedImage *image) const |
Get the currently cached layout of image. | |
void | Set (VkImage image, VkImageLayout layout) |
Set the cached layout of image. | |
void | Set (const ManagedImage &image, VkImageLayout layout) |
Set the cached layout of image. | |
void | Set (const ManagedImage *image, VkImageLayout layout) |
Set the cached layout of image. | |
VkImageMemoryBarrier | MakeBarrier (VkImage image, const Barrier &barrier) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout. | |
VkImageMemoryBarrier | MakeBarrier (const ManagedImage *image, const Barrier &barrier) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout. | |
VkImageMemoryBarrier | MakeBarrier (const ManagedImage &image, const Barrier &barrier) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout. | |
VkImageMemoryBarrier2 | MakeBarrier (VkImage image, const Barrier2 &barrier) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout. | |
VkImageMemoryBarrier2 | MakeBarrier (const ManagedImage *image, const Barrier2 &barrier) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout. | |
VkImageMemoryBarrier2 | MakeBarrier (const ManagedImage &image, const Barrier2 &barrier) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, VkImage image, const Barrier &barrier, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier command. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, const ManagedImage *image, const Barrier &barrier, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier command. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, const ManagedImage &image, const Barrier &barrier, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier command. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, VkImage image, const Barrier2 &barrier, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier2 command. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, const ManagedImage *image, const Barrier2 &barrier, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier2 command. | |
void | CmdBarrier (VkCommandBuffer cmdBuffer, const ManagedImage &image, const Barrier2 &barrier, VkDependencyFlags depFlags=0) |
Writes a dedicated vkCmdPipelineBarrier2 command. | |
Protected Attributes | |
std::unordered_map< VkImage, VkImageLayout > | mLayoutCache |
Tracks ImageLayouts over the course of a frame rendering process.
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
const ManagedImage & | image, | ||
const Barrier & | barrier, | ||
VkPipelineStageFlags | srcStageMask, | ||
VkPipelineStageFlags | dstStageMask, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier command.
cmdBuffer | Command Buffer |
image | Image |
barrier | Layout Transition Barrier information |
srcStageMask | Source Stage Mask |
dstStageMask | Dest Stage Mask |
depFlags | DependencyFlags |
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
const ManagedImage & | image, | ||
const Barrier2 & | barrier, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier2 command.
cmdBuffer | Command Buffer |
image | Image |
barrier | Layout Transition Barrier2 information |
depFlags | DependencyFlags |
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
const ManagedImage * | image, | ||
const Barrier & | barrier, | ||
VkPipelineStageFlags | srcStageMask, | ||
VkPipelineStageFlags | dstStageMask, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier command.
cmdBuffer | Command Buffer |
image | Image |
barrier | Layout Transition Barrier information |
srcStageMask | Source Stage Mask |
dstStageMask | Dest Stage Mask |
depFlags | DependencyFlags |
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
const ManagedImage * | image, | ||
const Barrier2 & | barrier, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier2 command.
cmdBuffer | Command Buffer |
image | Image |
barrier | Layout Transition Barrier2 information |
depFlags | DependencyFlags |
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
VkImage | image, | ||
const Barrier & | barrier, | ||
VkPipelineStageFlags | srcStageMask, | ||
VkPipelineStageFlags | dstStageMask, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier command.
cmdBuffer | Command Buffer |
name | Name of the image |
image | Image |
barrier | Layout Transition Barrier information |
srcStageMask | Source Stage Mask |
dstStageMask | Dest Stage Mask |
depFlags | DependencyFlags |
void foray::core::ImageLayoutCache::CmdBarrier | ( | VkCommandBuffer | cmdBuffer, |
VkImage | image, | ||
const Barrier2 & | barrier, | ||
VkDependencyFlags | depFlags = 0 |
||
) |
Writes a dedicated vkCmdPipelineBarrier2 command.
cmdBuffer | Command Buffer |
name | Name of the image |
image | Image |
barrier | Layout Transition Barrier2 information |
depFlags | DependencyFlags |
VkImageLayout foray::core::ImageLayoutCache::Get | ( | const ManagedImage & | image | ) | const |
Get the currently cached layout of image.
VkImageLayout foray::core::ImageLayoutCache::Get | ( | const ManagedImage * | image | ) | const |
Get the currently cached layout of image.
VkImageLayout foray::core::ImageLayoutCache::Get | ( | VkImage | image | ) | const |
Get the currently cached layout of image identified by imageName.
VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier | ( | const ManagedImage & | image, |
const Barrier & | barrier | ||
) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout.
image | Image |
barrier | Layout Transition Barrier information |
VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier | ( | const ManagedImage & | image, |
const Barrier2 & | barrier | ||
) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.
image | Image |
barrier | Layout Transition Barrier2 information |
VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier | ( | const ManagedImage * | image, |
const Barrier & | barrier | ||
) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout.
image | Image |
barrier | Layout Transition Barrier information |
VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier | ( | const ManagedImage * | image, |
const Barrier2 & | barrier | ||
) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.
image | Image |
barrier | Layout Transition Barrier2 information |
VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier | ( | VkImage | image, |
const Barrier & | barrier | ||
) |
Constructs a VkImageMemoryBarrier struct and updates the stored layout.
name | Name of the image |
image | Image |
barrier | Layout Transition Barrier information |
VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier | ( | VkImage | image, |
const Barrier2 & | barrier | ||
) |
Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.
name | Name of the image |
image | Image |
barrier | Layout Transition Barrier2 information |
void foray::core::ImageLayoutCache::Set | ( | const ManagedImage & | image, |
VkImageLayout | layout | ||
) |
Set the cached layout of image.
void foray::core::ImageLayoutCache::Set | ( | const ManagedImage * | image, |
VkImageLayout | layout | ||
) |
Set the cached layout of image.
void foray::core::ImageLayoutCache::Set | ( | VkImage | image, |
VkImageLayout | layout | ||
) |
Set the cached layout of image.
|
protected |