Navigation
API > API/Runtime > API/Runtime/RHI
Resource usage flags - for vertex and index buffers.
| Name | EBufferUsageFlags |
| Type | enum |
| Header File | /Engine/Source/Runtime/RHI/Public/RHIDefinitions.h |
| Include Path | #include "RHIDefinitions.h" |
Syntax
enum EBufferUsageFlags
{
None = 0,
Static = 1 << 0,
Dynamic = 1 << 1,
Volatile = 1 << 2,
UnorderedAccess = 1 << 3,
ByteAddressBuffer = 1 << 4,
SourceCopy = 1 << 5,
UNUSED_BIT_6 = 1 << 6,
DrawIndirect = 1 << 7,
ShaderResource = 1 << 8,
KeepCPUAccessible = 1 << 9,
FastVRAM = 1 << 10,
NNE = 1 << 11,
Shared = 1 << 12,
AccelerationStructure = 1 << 13,
VertexBuffer = 1 << 14,
IndexBuffer = 1 << 15,
StructuredBuffer = 1 << 16,
MultiGPUAllocate = 1 << 17,
MultiGPUGraphIgnore = 1 << 18,
RayTracingScratch = (1 << 19) | UnorderedAccess,
NullResource = 1 << 20,
UniformBuffer = 1 << 21,
ReservedResource = 1 << 22,
AnyDynamic = (Dynamic | Volatile),
}
Values
| Name | Remarks |
|---|---|
| None | |
| Static | The buffer will be written to once. |
| Dynamic | The buffer will be written to occasionally, GPU read only, CPU write only. |
| Volatile | The buffer's data will have a lifetime of one frame. |
| UnorderedAccess | Allows an unordered access view to be created for the buffer. |
| ByteAddressBuffer | Create a byte address buffer, which is basically a structured buffer with a uint32 type. |
| SourceCopy | Buffer that the GPU will use as a source for a copy. |
| UNUSED_BIT_6 | |
| DrawIndirect | Create a buffer which contains the arguments used by DispatchIndirect or DrawIndirect. |
| ShaderResource | Create a buffer that can be bound as a shader resource. |
| KeepCPUAccessible | Request that this buffer is directly CPU accessible. |
| FastVRAM | Buffer should go in fast vram (hint only). Requires BUF_Transient |
| NNE | Buffer is used by NNE. |
| Shared | Create a buffer that can be shared with an external RHI or process. |
| AccelerationStructure | Buffer contains opaque ray tracing acceleration structure data. |
| VertexBuffer | |
| IndexBuffer | |
| StructuredBuffer | |
| MultiGPUAllocate | Buffer memory is allocated independently for multiple GPUs, rather than shared via driver aliasing |
| MultiGPUGraphIgnore | Tells the render graph to not bother transferring across GPUs in multi-GPU scenarios. |
| RayTracingScratch | Allows buffer to be used as a scratch buffer for building ray tracing acceleration structure, which implies unordered access. |
| NullResource | The buffer is a placeholder for streaming, and does not contain an underlying GPU resource. |
| UniformBuffer | Buffer can be used as uniform buffer on platforms that do support uniform buffer objects. |
| ReservedResource | EXPERIMENTAL: Allow the buffer to be created as a reserved (AKA tiled/sparse/virtual) resource internally, without physical memory backing. |
| AnyDynamic | Helper bit-masks. |