Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Attributes | List of all members
foray::core::ImageLayoutCache Class Reference

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
 

Detailed Description

Tracks ImageLayouts over the course of a frame rendering process.

Member Function Documentation

◆ CmdBarrier() [1/6]

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.

Parameters
cmdBufferCommand Buffer
imageImage
barrierLayout Transition Barrier information
srcStageMaskSource Stage Mask
dstStageMaskDest Stage Mask
depFlagsDependencyFlags

◆ CmdBarrier() [2/6]

void foray::core::ImageLayoutCache::CmdBarrier ( VkCommandBuffer  cmdBuffer,
const ManagedImage image,
const Barrier2 barrier,
VkDependencyFlags  depFlags = 0 
)

Writes a dedicated vkCmdPipelineBarrier2 command.

Parameters
cmdBufferCommand Buffer
imageImage
barrierLayout Transition Barrier2 information
depFlagsDependencyFlags

◆ CmdBarrier() [3/6]

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.

Parameters
cmdBufferCommand Buffer
imageImage
barrierLayout Transition Barrier information
srcStageMaskSource Stage Mask
dstStageMaskDest Stage Mask
depFlagsDependencyFlags

◆ CmdBarrier() [4/6]

void foray::core::ImageLayoutCache::CmdBarrier ( VkCommandBuffer  cmdBuffer,
const ManagedImage image,
const Barrier2 barrier,
VkDependencyFlags  depFlags = 0 
)

Writes a dedicated vkCmdPipelineBarrier2 command.

Parameters
cmdBufferCommand Buffer
imageImage
barrierLayout Transition Barrier2 information
depFlagsDependencyFlags

◆ CmdBarrier() [5/6]

void foray::core::ImageLayoutCache::CmdBarrier ( VkCommandBuffer  cmdBuffer,
VkImage  image,
const Barrier barrier,
VkPipelineStageFlags  srcStageMask,
VkPipelineStageFlags  dstStageMask,
VkDependencyFlags  depFlags = 0 
)

Writes a dedicated vkCmdPipelineBarrier command.

Parameters
cmdBufferCommand Buffer
nameName of the image
imageImage
barrierLayout Transition Barrier information
srcStageMaskSource Stage Mask
dstStageMaskDest Stage Mask
depFlagsDependencyFlags

◆ CmdBarrier() [6/6]

void foray::core::ImageLayoutCache::CmdBarrier ( VkCommandBuffer  cmdBuffer,
VkImage  image,
const Barrier2 barrier,
VkDependencyFlags  depFlags = 0 
)

Writes a dedicated vkCmdPipelineBarrier2 command.

Parameters
cmdBufferCommand Buffer
nameName of the image
imageImage
barrierLayout Transition Barrier2 information
depFlagsDependencyFlags

◆ Get() [1/3]

VkImageLayout foray::core::ImageLayoutCache::Get ( const ManagedImage image) const

Get the currently cached layout of image.

◆ Get() [2/3]

VkImageLayout foray::core::ImageLayoutCache::Get ( const ManagedImage image) const

Get the currently cached layout of image.

◆ Get() [3/3]

VkImageLayout foray::core::ImageLayoutCache::Get ( VkImage  image) const

Get the currently cached layout of image identified by imageName.

◆ MakeBarrier() [1/6]

VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier ( const ManagedImage image,
const Barrier barrier 
)

Constructs a VkImageMemoryBarrier struct and updates the stored layout.

Parameters
imageImage
barrierLayout Transition Barrier information

◆ MakeBarrier() [2/6]

VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier ( const ManagedImage image,
const Barrier2 barrier 
)

Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.

Parameters
imageImage
barrierLayout Transition Barrier2 information

◆ MakeBarrier() [3/6]

VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier ( const ManagedImage image,
const Barrier barrier 
)

Constructs a VkImageMemoryBarrier struct and updates the stored layout.

Parameters
imageImage
barrierLayout Transition Barrier information

◆ MakeBarrier() [4/6]

VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier ( const ManagedImage image,
const Barrier2 barrier 
)

Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.

Parameters
imageImage
barrierLayout Transition Barrier2 information

◆ MakeBarrier() [5/6]

VkImageMemoryBarrier foray::core::ImageLayoutCache::MakeBarrier ( VkImage  image,
const Barrier barrier 
)

Constructs a VkImageMemoryBarrier struct and updates the stored layout.

Parameters
nameName of the image
imageImage
barrierLayout Transition Barrier information

◆ MakeBarrier() [6/6]

VkImageMemoryBarrier2 foray::core::ImageLayoutCache::MakeBarrier ( VkImage  image,
const Barrier2 barrier 
)

Constructs a VkImageMemoryBarrier2 struct and updates the stored layout.

Parameters
nameName of the image
imageImage
barrierLayout Transition Barrier2 information

◆ Set() [1/3]

void foray::core::ImageLayoutCache::Set ( const ManagedImage image,
VkImageLayout  layout 
)

Set the cached layout of image.

◆ Set() [2/3]

void foray::core::ImageLayoutCache::Set ( const ManagedImage image,
VkImageLayout  layout 
)

Set the cached layout of image.

◆ Set() [3/3]

void foray::core::ImageLayoutCache::Set ( VkImage  image,
VkImageLayout  layout 
)

Set the cached layout of image.

Member Data Documentation

◆ mLayoutCache

std::unordered_map<VkImage, VkImageLayout> foray::core::ImageLayoutCache::mLayoutCache
protected

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