XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALPipelineResourceFlags Struct Reference

This describes the pipeline resource property flags. More...

#include <PipelineResourceSignature.h>

Classes

struct  Bits
 

Public Types

enum  Enum : StorageType {
  None = 0U , NoDynamicBuffers = XII_BIT(0) , CombinedSampler = XII_BIT(1) , Formattedbuffer = XII_BIT(2) ,
  RuntimeArray = XII_BIT(3) , GeneralInputAttachment = XII_BIT(4) , Default = None
}
 
using StorageType = xiiUInt8
 

Detailed Description

This describes the pipeline resource property flags.

Member Enumeration Documentation

◆ Enum

Enumerator
None 

The resource has no special properties.

NoDynamicBuffers 

This indicates that dynamic buffers will never be bound to the resource variable. This applies to xiiGALShaderResourceType::ConstantBuffer, xiiGALShaderResourceType::BufferUAV, and xiiGALShaderResourceType::BufferSRV resources.

                            \remarks In Vulkan and Direct3D12 graphics implementations, dynamic buffers require extra work at run time. If an application knows it will never bind a dynamic buffer to the variable, it should use xiiGALPipelineResourceFlags::NoDynamicBuffers flag to improve performance.
                                     This flag is not required and non-dynamic buffers will still work even if the flag is not used. It is an error to bind a dynamic buffer to resource that uses xiiGALPipelineResourceFlags::NoDynamicBuffers flag. 
CombinedSampler 

This indicates that a texture SRV will be combined with a sampler. It applies to xiiGALShaderResourceType::TextureSRV resources.

Formattedbuffer 

This indicates this variable will be used to bind formatted buffers. It applies to xiiGALShaderResourceType::BufferUAV and xiiGALShaderResourceType::BufferSRV resources.

                           \remarks In the Vulkan graphics implementation, formatted buffers require another descriptor type as opposed to structured buffers. If an application will be using formatted buffers with buffer UAVs and SRVs, it must specify the xiiGALPipelineResourceFlags::FormattedBuffer flag. 
RuntimeArray 

This indicates that the resource is a run-time sized array (e.g., an array without a specific size).

GeneralInputAttachment 

This indicates that the resource is an input attachment in general layout, which allows simultaneously reading from the resource through the input attachment and writing to it via color or depth-stencil attachment.

                                  \note This flag is only valid in the Vulkan graphics implementation. 

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