![]() |
Vireo
0.0
Vireo 3D Rendering Hardware Interface
|
A command list (buffer) object
begin() before recording, end() after, then cleanup() once the GPU has finished executing the submission. Manual page : Command Lists
Inheritance diagram for CommandList:Public Member Functions | |
| virtual void | begin () const = 0 |
| virtual void | end () const = 0 |
| virtual void | upload (const Buffer &destination, const void *source) = 0 |
| void | upload (const std::shared_ptr< const Buffer > &destination, const void *source) |
| virtual void | upload (const std::vector< BufferUploadInfo > &infos) |
| virtual void | upload (const Image &destination, const void *source, uint32_t firstMipLevel=0) = 0 |
| void | upload (const std::shared_ptr< const Image > &destination, const void *source, const uint32_t firstMipLevel=0) |
| virtual void | upload (const std::vector< ImageUploadInfo > &infos) |
| void | copy (const std::shared_ptr< Buffer > &source, const std::shared_ptr< const Image > &destination, const uint32_t sourceOffset=0, const uint32_t mipLevel=0, const bool rowPitchAlignment=true) const |
| virtual void | copy (const Buffer &source, const Image &destination, uint32_t sourceOffset=0, uint32_t mipLevel=0, bool rowPitchAlignment=true) const = 0 |
| virtual void | copy (const std::shared_ptr< Buffer > &source, const std::shared_ptr< Image > &destination, const std::vector< size_t > &sourceOffsets, bool rowPitchAlignment=true) const |
| virtual void | copy (const Buffer &source, const Image &destination, const std::vector< size_t > &sourceOffsets, bool rowPitchAlignment=true) const = 0 |
| virtual void | copy (const Image &source, const Buffer &destination, uint32_t destinationOffset=0, uint32_t mipLevel=0) const = 0 |
| void | copy (const std::shared_ptr< const Image > &source, const std::shared_ptr< Buffer > &destination, const uint32_t destinationOffset=0, const uint32_t firstMipLevel=0) const |
| virtual void | copy (const Buffer &source, const Buffer &destination, size_t size=Buffer::WHOLE_SIZE, uint32_t sourceOffset=0, uint32_t destinationOffset=0) const = 0 |
| void | copy (const std::shared_ptr< const Buffer > &source, const std::shared_ptr< const Buffer > &destination, const size_t size=Buffer::WHOLE_SIZE, const uint32_t sourceOffset=0, const uint32_t destinationOffset=0) const |
| virtual void | copy (const Buffer &source, const Buffer &destination, const std::vector< BufferCopyRegion > ®ions) const = 0 |
| void | copy (const std::shared_ptr< const Buffer > &source, const std::shared_ptr< const Buffer > &destination, const std::vector< BufferCopyRegion > ®ions) const |
| virtual void | uploadArray (const Image &destination, const std::vector< void * > &sources, uint32_t firstMipLevel=0) = 0 |
| void | uploadArray (const std::shared_ptr< const Image > &destination, const std::vector< void * > &sources, const uint32_t firstMipLevel=0) |
| virtual void | copy (const Image &source, const SwapChain &swapChain) const = 0 |
| virtual void | copy (const Image &source, const Image &destination, uint32_t mipLevel=0, uint32_t sourceFirstArrayLayer=0, uint32_t destinationFirstArrayLayer=0, uint32_t layerCount=Image::ALL_LAYERS) const = 0 |
| virtual void | copy (const std::shared_ptr< const Image > &source, const std::shared_ptr< const Image > &destination, const uint32_t mipLevel=0, const uint32_t sourceFirstArrayLayer=0, const uint32_t destinationFirstArrayLayer=0, const uint32_t layerCount=Image::ALL_LAYERS) const |
| void | copy (const std::shared_ptr< const Image > &source, const std::shared_ptr< const SwapChain > &swapChain) const |
| void | copy (const RenderTarget &source, const SwapChain &swapChain) const |
| void | copy (const std::shared_ptr< const RenderTarget > &source, const std::shared_ptr< const SwapChain > &swapChain) const |
| virtual void | beginRendering (const RenderingConfiguration &configuration) = 0 |
| virtual void | endRendering () |
| virtual void | dispatch (uint32_t x, uint32_t y, uint32_t z) const = 0 |
| virtual void | bindVertexBuffer (const Buffer &buffer, size_t offset=0) const = 0 |
| void | bindVertexBuffer (const std::shared_ptr< const Buffer > &buffer, const size_t offset=0) const |
| virtual void | bindVertexBuffers (const std::vector< std::shared_ptr< const Buffer >> &buffers, std::vector< size_t > offsets={}) const = 0 |
| virtual void | bindIndexBuffer (const Buffer &buffer, IndexType indexType=IndexType::UINT32, uint32_t firstIndex=0) const = 0 |
| void | bindIndexBuffer (const std::shared_ptr< const Buffer > &buffer, const IndexType indexType=IndexType::UINT32, const uint32_t firstIndex=0) const |
| virtual void | bindPipeline (Pipeline &pipeline, bool descriptorsAlreadyBounds=false) = 0 |
| virtual void | bindPipeline (const std::shared_ptr< Pipeline > &pipeline, const bool descriptorsAlreadyBounds=false) |
| virtual void | bindDescriptors (PipelineType pipelineType, const std::shared_ptr< PipelineResources > &pipelineResources, const std::vector< std::shared_ptr< const DescriptorSet >> &descriptors, uint32_t firstSet=0) const = 0 |
| virtual void | bindDescriptors (const std::vector< std::shared_ptr< const DescriptorSet >> &descriptors, uint32_t firstSet=0) const = 0 |
| virtual void | bindDescriptor (const DescriptorSet &descriptor, uint32_t set=0) const = 0 |
| void | bindDescriptor (const std::shared_ptr< const DescriptorSet > &descriptor, const uint32_t set=0) const |
| virtual void | bindDescriptor (const DescriptorSet &descriptor, uint32_t set, uint32_t offset) const = 0 |
| void | bindDescriptor (const std::shared_ptr< const DescriptorSet > &descriptor, const uint32_t set, const uint32_t offset) const |
| virtual void | draw (uint32_t vertexCountPerInstance, uint32_t instanceCount=1, uint32_t firstVertex=0, uint32_t firstInstance=0) const = 0 |
| virtual void | drawIndexed (uint32_t indexCountPerInstance, uint32_t instanceCount=1, uint32_t firstIndex=0, uint32_t firstVertex=0, uint32_t firstInstance=0) const = 0 |
| virtual void | drawIndirect (const Buffer &buffer, size_t offset, uint32_t drawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
| void | drawIndirect (const std::shared_ptr< Buffer > &buffer, const size_t offset, const uint32_t drawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
| virtual void | drawIndexedIndirectCount (Buffer &buffer, size_t offset, Buffer &countBuffer, size_t countOffset, uint32_t maxDrawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
| void | drawIndexedIndirectCount (const std::shared_ptr< Buffer > &buffer, const size_t offset, const std::shared_ptr< Buffer > &countBuffer, const size_t countOffset, const uint32_t maxDrawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
| virtual void | drawIndexedIndirect (const Buffer &buffer, size_t offset, uint32_t maxDrawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
| void | drawIndexedIndirect (const std::shared_ptr< Buffer > &buffer, const size_t offset, const uint32_t maxDrawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
| virtual void | setViewports (const std::vector< Viewport > &viewports) const = 0 |
| virtual void | setScissors (const std::vector< Rect > &rects) const = 0 |
| virtual void | setViewport (const Viewport &viewport) const = 0 |
| virtual void | setScissors (const Rect &rect) const = 0 |
| virtual void | setStencilReference (uint32_t reference) const = 0 |
| virtual void | barrier (const std::vector< std::shared_ptr< const Image >> &images, ResourceState oldState, ResourceState newState, uint32_t firstArrayLayer=0, uint32_t layerCount=Image::ALL_LAYERS) const = 0 |
| virtual void | barrier (const std::shared_ptr< const Image > &image, ResourceState oldState, ResourceState newState, uint32_t firstMipLevel=0, uint32_t levelCount=1, uint32_t firstArrayLayer=0, uint32_t layerCount=Image::ALL_LAYERS) const = 0 |
| virtual void | barrier (const std::shared_ptr< const RenderTarget > &renderTarget, ResourceState oldState, ResourceState newState, uint32_t firstArrayLayer=0, uint32_t layerCount=Image::ALL_LAYERS) const = 0 |
| virtual void | barrier (const std::vector< std::shared_ptr< const RenderTarget >> &renderTargets, ResourceState oldState, ResourceState newState, uint32_t firstArrayLayer=0, uint32_t layerCount=Image::ALL_LAYERS) const = 0 |
| virtual void | barrier (const std::shared_ptr< const SwapChain > &swapChain, ResourceState oldState, ResourceState newState) const = 0 |
| virtual void | pushConstants (const std::shared_ptr< const PipelineResources > &pipelineResources, const PushConstantsDesc &pushConstants, const void *data) const = 0 |
| virtual void | barrier (const Buffer &buffer, ResourceState oldState, ResourceState newState) const = 0 |
| virtual void | writeTimestamp (const QueryPool &queryPool, uint32_t queryIndex) = 0 |
| virtual void | resolveQueryPool (const QueryPool &queryPool, uint32_t firstQuery, uint32_t queryCount) = 0 |
| virtual void | cleanup () = 0 |
| virtual | ~CommandList () = default |
| CommandList (CommandList &) = delete | |
| CommandList & | operator= (const CommandList &) = delete |
Static Public Attributes | |
| static constexpr uint32_t | indexTypeSize [] |
| Size in bytes for each IndexType value (UINT16 → 2, UINT32 → 4) More... | |
Protected Member Functions | |
| CommandList () = default | |
Protected Attributes | |
| Pipeline * | currentlyBoundPipeline {nullptr} |
|
virtualdefault |
|
delete |
|
protecteddefault |
|
pure virtual |
Insert a memory dependency for a Buffer
| buffer | The buffer affected by this barrier. |
| oldState | Old state in a memory state transition. |
| newState | New state in a memory state transition. |
|
pure virtual |
Insert a memory dependency
| image | The image affected by this barrier. |
| oldState | Old state in an image state transition. |
| newState | New state in an image state transition. |
| firstMipLevel | The first mip level to include is this barrier |
| levelCount | Number of mip level to include |
| firstArrayLayer | The first array layer to include is this barrier |
| layerCount | Number of array layers level to include |
|
pure virtual |
Insert a memory dependency
| renderTarget | The image affected by this barrier. |
| oldState | Old state in an image state transition. |
| newState | New state in an image state transition. |
| firstArrayLayer | The first array layer to include is this barrier |
| layerCount | Number of array layers level to include |
|
pure virtual |
Insert a memory dependency
| swapChain | The image affected by this barrier. |
| oldState | Old state in an image state transition. |
| newState | New state in an image state transition. |
|
pure virtual |
Insert a memory dependency
| images | The images affected by this barrier. |
| oldState | Old state in an image state transition. |
| newState | New state in an image state transition. |
| firstArrayLayer | The first array layer to include is this barrier |
| layerCount | Number of array layers level to include |
|
pure virtual |
Insert a memory dependency
| renderTargets | The images affected by this barrier. |
| oldState | Old state in an image state transition. |
| newState | New state in an image state transition. |
| firstArrayLayer | The first array layer to include is this barrier |
| layerCount | Number of array layers level to include |
|
pure virtual |
Start recording a command list
|
pure virtual |
Begin a render pass
|
pure virtual |
Binds a dynamic uniform descriptor set to a command list, after a pipeline have been bound
| descriptor | The descriptor set to bind |
| set | The set number of the descriptor set to be bound |
| offset | Values specifying dynamic offsets for the UNIFORM_DYNAMIC resource. |
|
pure virtual |
Bind descriptor set to a command list, after a pipeline have been bound
| descriptor | The descriptor set to bind |
| set | The set number of the descriptor set to be bound |
|
inline |
Binds a dynamic uniform descriptor set to a command list, after a pipeline have been bound
| descriptor | The descriptor set to bind |
| set | The set number of the descriptor set to be bound |
| offset | Values specifying dynamic offsets for the UNIFORM_DYNAMIC resource. |
|
inline |
Binds descriptor set to a command list, after a pipeline have been bound
| descriptor | The descriptor set to bind |
| set | The set number of the descriptor set to be bound |
|
pure virtual |
Bind descriptor sets to a command list, after a pipeline have been bound
| descriptors | The descriptor sets to bind |
| firstSet | The set number of the first descriptor set to be bound |
|
pure virtual |
Bind descriptor sets to a command list, before binding a pipeline
| pipelineType | The pipelines type to be bound after |
| pipelineResources | The pipelines layouts |
| descriptors | The descriptor sets to bind |
| firstSet | The set number of the first descriptor set to be bound |
|
pure virtual |
Binds an index buffer to a command list
| buffer | An index buffer |
| indexType | Value specifying the size of the indices |
| firstIndex | First index in the buffer |
|
inline |
Binds an index buffer to a command list
| buffer | An index buffer |
| indexType | Value specifying the size of the indices |
| firstIndex | First index in the buffer |
|
inlinevirtual |
Binds a pipeline object to a command list
|
pure virtual |
Binds a pipeline object to a command list
Bind a vertex buffer to a command list
| buffer | A vertex buffer |
| offset | Offset in bytes |
|
inline |
Bind a vertex buffer to a command list
| buffer | A vertex buffer |
| offset | Offset in bytes |
|
pure virtual |
Binds vertex buffers to a command list
| buffers | Buffers to bind |
| offsets | Offsets for each buffer in bytes |
|
pure virtual |
Release staging buffers allocated by upload() calls. Must be called after the GPU has finished executing the command list. Omitting this call leaks GPU-visible upload memory.
|
pure virtual |
Copy multiple regions of a buffer into another buffer
|
pure virtual |
Copy data from a buffer into another buffer
|
pure virtual |
Copy data from a buffer into a multi-level image. One sourceOffset offset in bytes for each level. If rowPitchAlignment is true (for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT) for cross-API compatibility.
|
pure virtual |
Copy data from a buffer into an image level. If rowPitchAlignment is true (for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT) for cross-API compatibility.
|
pure virtual |
Copy a level of an image into a buffer
|
pure virtual |
Blit an image into the current swap chain image
Blit an image into the current swap chain image
Copy an image into another imagee
Copy an image into the current swap chain image
|
inline |
Copy an image into the current swap chain image
|
inline |
Copy data from a buffer into an image level. If rowPitchAlignment is true (for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT) for cross-API compatibility.
|
inlinevirtual |
Copy data from a buffer into a multi-level image. One sourceOffset offset in bytes for each level. If rowPitchAlignment is true (for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT) for cross-API compatibility.
|
inline |
Copy data from a buffer into another buffer
|
inline |
Copy multiple regions of a buffer into another buffer
|
inline |
Copy an image into a buffer
|
inlinevirtual |
Copy an image into another imagee
|
inline |
Copy an image into the current swap chain image
|
inline |
Copy an image into the current swap chain image
Dispatch compute work items
| x | The number of local workgroups to dispatch in the X dimension. |
| y | The number of local workgroups to dispatch in the Y dimension. |
| z | The number of local workgroups to dispatch in the Z dimension. |
|
pure virtual |
Draw primitives
| vertexCountPerInstance | The number of vertices per instance to draw |
| instanceCount | The number of instances |
| firstVertex | The index of the first vertex to draw |
| firstInstance | The index of the first instance to draw. |
|
pure virtual |
Draw primitives with indexed vertices
| indexCountPerInstance | The number of vertices per instance to draw |
| instanceCount | The number of instances |
| firstIndex | The base index within the index buffer. |
| firstVertex | The value added to the vertex index before indexing into the vertex buffer. |
| firstInstance | The index of the first instance to draw. |
|
pure virtual |
Draw primitives with indirect parameters and indexed vertices
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
inline |
Draw primitives with indirect parameters and indexed vertices
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
pure virtual |
Draw primitives with indirect parameters and indexed vertices
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| countBuffer | The buffer containing the draw count. |
| countOffset | The byte offset into countBuffer where the draw count begins. |
| maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
inline |
Draw primitives with indirect parameters and indexed vertices
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| countBuffer | The buffer containing the draw count. |
| countOffset | The byte offset into countBuffer where the draw count begins. |
| maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
pure virtual |
Draw primitives with indirect parameters
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| drawCount | The number of draws to execute, and can be zero. |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
inline |
Draw primitives with indirect parameters
| buffer | The buffer containing draw parameters. |
| offset | The byte offset into the buffer where parameters begin. |
| drawCount | The number of draws to execute, and can be zero. |
| stride | The byte stride between successive sets of draw parameters. |
| firstCommandOffset | Offset in bytes of the first command |
|
pure virtual |
Stop recording a command list
|
inlinevirtual |
End a render pass
|
delete |
|
pure virtual |
Update the values of push constants
| pipelineResources | The pipeline layout used to program the push constant updates. |
| pushConstants | The push constant description |
| data | The new push constant values. |
|
pure virtual |
Copies a contiguous range of timestamp slots from a query pool into its internal host-visible readback buffer so the CPU can read the results.
| queryPool | The pool to resolve. |
| firstQuery | Index of the first slot to resolve. |
| queryCount | Number of consecutive slots to resolve. |
|
pure virtual |
Sets the scissors for a command list
| rect | An array of Extent structures specifying viewport parameters. |
|
pure virtual |
Sets the scissors for a command list
| rects | An array of Rect structures specifying viewport parameters. |
|
pure virtual |
Set the reference value for stencil tests and operations
|
pure virtual |
Sets the viewport for a command list
| viewport | An array of Extent structures specifying viewport parameters. |
|
pure virtual |
Sets the viewports for a command list
| viewports | An array of Viewport structures specifying viewport parameters |
|
pure virtual |
Uploads data into a buffer using a temporary (staging) buffer.
|
pure virtual |
Upload data into an image using a temporary (staging) buffer.
|
inline |
Uploads data into a buffer using a temporary (staging) buffer.
|
inline |
Upload data into an image using a temporary (staging) buffer.
|
virtual |
Uploads data into buffers using temporary (staging) buffers.
|
virtual |
Uploads data into images using temporary (staging) buffers.
|
pure virtual |
Upload images into an image array
|
inline |
Upload images into an image array
Records a GPU timestamp into a query pool slot at the top-of-pipe stage.
| queryPool | The pool to write into. |
| queryIndex | Slot index within the pool (must be < pool capacity). |
|
protected |