VPP  0.8
A high-level modern C++ API for Vulkan
vpp::NonRenderingCommands Class Reference

Set of commands that may be used outside rendering context. More...

#include <vppCommands.hpp>

Inheritance diagram for vpp::NonRenderingCommands:
vpp::ComputePass vpp::ExtendedCommands vpp::RenderGraph vpp::Computation vpp::CompiledProcedures vpp::ComputationEngine

Static Public Member Functions

static void cmdFillBuffer (const Buf &hDstBuffer, size_t offset, size_t size, std::uint32_t value, CommandBuffer hCmdBuffer=CommandBuffer())
 Fills specified buffer (or a region of it) with constant value.
 
static void cmdCopyBuffer (const Buf &hSrcBuffer, const Buf &hDstBuffer, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies entire contents from one buffer to another.
 
static void cmdCopyBuffer (const Buf &hSrcBuffer, const Buf &hDstBuffer, const std::vector< VkBufferCopy > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies a list of regions from one buffer to another.
 
static void cmdUpdateBuffer (const Buf &hDstBuffer, size_t offset, size_t size, const std::uint32_t *pData, CommandBuffer hCmdBuffer=CommandBuffer())
 Modifies a buffer region with specified data. More...
 
static void cmdCopyImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies entire contents from one image to another.
 
static void cmdCopyImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const std::vector< VkImageCopy > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies a list of regions from one image to another.
 
static void cmdCopyBufferToImage (const Buf &hSrcBuffer, const Img &hDstImage, VkImageLayout dstImageLayout, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies entire contents from a buffer to an image.
 
static void cmdCopyBufferToImage (const Buf &hSrcBuffer, const Img &hDstImage, VkImageLayout dstImageLayout, const std::vector< VkBufferImageCopy > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies a list of regions from a buffer to an image.
 
static void cmdCopyImageToBuffer (const Img &hSrcImage, VkImageLayout srcImageLayout, const Buf &hDstBuffer, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies entire contents from an image to a buffer.
 
static void cmdCopyImageToBuffer (const Img &hSrcImage, VkImageLayout srcImageLayout, const Buf &hDstBuffer, const std::vector< VkBufferImageCopy > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies a list of regions from an image to a buffer.
 
static void cmdBlitImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const VkOffset3D &srcBegin, const VkOffset3D &srcEnd, const VkOffset3D &dstBegin, const VkOffset3D &dstEnd, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies source image region into destination image, potentially performing format conversion, arbitrary scaling and filtering.
 
static void cmdBlitImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const VkOffset3D &srcBegin, const VkOffset3D &srcEnd, const VkOffset3D &dstBegin, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies source image region into destination image, potentially performing format conversion, but no scaling.
 
static void cmdBlitImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const std::vector< VkImageBlit > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Copies source image regions into destination image, potentially performing format conversion, arbitrary scaling and filtering.
 
static void cmdResolveImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const VkOffset3D &srcOffset, const VkOffset3D &dstOffset, const VkExtent3D &size, CommandBuffer hCmdBuffer=CommandBuffer())
 Resolves source multisampled image region into destination regular image. More...
 
static void cmdResolveImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, CommandBuffer hCmdBuffer=CommandBuffer())
 Resolves source multisampled image into destination regular image. More...
 
static void cmdResolveImage (const Img &hSrcImage, VkImageLayout srcImageLayout, const Img &hDstImage, VkImageLayout dstImageLayout, const std::vector< VkImageResolve > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Resolves a list of source multisampled image regions into destination regular image regions. More...
 
static void cmdClearColorImage (const Img &hImage, const VkClearColorValue &color, CommandBuffer hCmdBuffer=CommandBuffer())
 Clears an image with specified color.
 
static void cmdClearColorImage (const Img &hImage, const VkClearColorValue &color, const std::vector< VkImageSubresourceRange > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Clears a list of regions in specified image with specified color.
 
static void cmdClearDepthStencilImage (const Img &hImage, VkImageLayout imageLayout, float depth, std::uint32_t stencil, CommandBuffer hCmdBuffer=CommandBuffer())
 Clears a depth or stencil image with specified value.
 
static void cmdClearDepthStencilImage (const Img &hImage, VkImageLayout imageLayout, float depth, std::uint32_t stencil, const std::vector< VkImageSubresourceRange > &regions, CommandBuffer hCmdBuffer=CommandBuffer())
 Clears a list of regions in depth or stencil image with specified value.
 
static void cmdResetQueryPool (const QueryPool &hPool, std::uint32_t first, std::uint32_t count, CommandBuffer hCmdBuffer=CommandBuffer())
 Resets a range of queries in a query pool.
 
static void cmdResetQueryPool (const QueryPool &hPool, CommandBuffer hCmdBuffer=CommandBuffer())
 Resets all queries in a query pool.
 
static void cmdCopyQueryPoolResults (const Buf &hDstBuffer, const QueryPool &hPool, VkQueryResultFlags flags, std::uint32_t count, std::uint32_t first, VkDeviceSize dstOffset, CommandBuffer hCmdBuffer=CommandBuffer())
 
static void cmdCopyQueryPoolResults (const Buf &hDstBuffer, const QueryPool &hPool, VkQueryResultFlags flags, CommandBuffer hCmdBuffer=CommandBuffer())
 

Detailed Description

Set of commands that may be used outside rendering context.

Rendering context occurs inside lambda functions passed to the Process nodes. Commands described below should not be used there, however they may be used inside Preprocess and Postprocess lambda functions, as well as outside all of these lambda functions.

All VPP commands accept optional CommandBuffer argument. This argument is always the last one. The rules regarding the argument are as follows:

  • Inside lambda functions passed to Preprocess or Postprocess, omit the argument. VPP will record the command into the implicit command buffer managed by VPP.
  • Outside lambda functions, provide a CommandBuffer object for this argument. The command will be recorded into supplied command buffer.

The commands are implemented as static methods inside NonRenderingCommands class. It allows to easily group these commands. Derive from NonRenderingCommands if you need to call the commands frequently, or alternatively prefix the names with NonRenderingCommands::.

Member Function Documentation

◆ cmdResolveImage() [1/3]

static void vpp::NonRenderingCommands::cmdResolveImage ( const Img hSrcImage,
VkImageLayout  srcImageLayout,
const Img hDstImage,
VkImageLayout  dstImageLayout,
const VkOffset3D &  srcOffset,
const VkOffset3D &  dstOffset,
const VkExtent3D &  size,
CommandBuffer  hCmdBuffer = CommandBuffer() 
)
static

Resolves source multisampled image region into destination regular image.

This command does not perform any format conversions, nor scaling. Both images must be in same format.

srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL

dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL.

◆ cmdResolveImage() [2/3]

static void vpp::NonRenderingCommands::cmdResolveImage ( const Img hSrcImage,
VkImageLayout  srcImageLayout,
const Img hDstImage,
VkImageLayout  dstImageLayout,
CommandBuffer  hCmdBuffer = CommandBuffer() 
)
static

Resolves source multisampled image into destination regular image.

This command does not perform any format conversions, nor scaling. Both images must be in same format.

srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL

dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL.

◆ cmdResolveImage() [3/3]

static void vpp::NonRenderingCommands::cmdResolveImage ( const Img hSrcImage,
VkImageLayout  srcImageLayout,
const Img hDstImage,
VkImageLayout  dstImageLayout,
const std::vector< VkImageResolve > &  regions,
CommandBuffer  hCmdBuffer = CommandBuffer() 
)
static

Resolves a list of source multisampled image regions into destination regular image regions.

This command does not perform any format conversions, nor scaling. Both images must be in same format.

srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL

dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL.

◆ cmdUpdateBuffer()

static void vpp::NonRenderingCommands::cmdUpdateBuffer ( const Buf hDstBuffer,
size_t  offset,
size_t  size,
const std::uint32_t *  pData,
CommandBuffer  hCmdBuffer = CommandBuffer() 
)
static

Modifies a buffer region with specified data.

Caution: maximum size of data block is limited. Assume that at most 64 kB of data can be written this way.


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