Navigation
Unreal Engine C++ API Reference > Runtime > RHI
References
Module | RHI |
Header | /Engine/Source/Runtime/RHI/Public/RHIDefinitions.h |
Include | #include "RHIDefinitions.h" |
Syntax
enum ETextureCreateFlags
{
None = 0,
RenderTargetable = 1ull << 0,
ResolveTargetable = 1ull << 1,
DepthStencilTargetable = 1ull << 2,
ShaderResource = 1ull << 3,
SRGB = 1ull << 4,
CPUWritable = 1ull << 5,
NoTiling = 1ull << 6,
VideoDecode = 1ull << 7,
Dynamic = 1ull << 8,
InputAttachmentRead = 1ull << 9,
Foveation = 1ull << 10,
Tiling3D = 1ull << 11,
Memoryless = 1ull << 12,
GenerateMipCapable = 1ull << 13,
FastVRAMPartialAlloc = 1ull << 14,
DisableSRVCreation = 1ull << 15,
DisableDCC = 1ull << 16,
UAV = 1ull << 17,
Presentable = 1ull << 18,
CPUReadback = 1ull << 19,
OfflineProcessed = 1ull << 20,
FastVRAM = 1ull << 21,
HideInVisualizeTexture = 1ull << 22,
Virtual = 1ull << 23,
TargetArraySlicesIndependently = 1ull << 24,
Shared = 1ull << 25,
NoFastClear = 1ull << 26,
DepthStencilResolveTarget = 1ull << 27,
Streamable = 1ull << 28,
NoFastClearFinalize = 1ull << 29,
Atomic64Compatible = 1ull << 30,
ReduceMemoryWithTilingMode = 1ull << 31,
AtomicCompatible = 1ull << 33,
External = 1ull << 34,
MultiGPUGraphIgnore = 1ull << 35,
ReservedResource = 1ull << 37,
ImmediateCommit = 1ull << 38,
ForceIntoNonStreamingMemoryTracking = 1ull << 39,
Invalid = 1ull << 40,
}
Values
Name | Description |
---|---|
None | |
RenderTargetable | Texture can be used as a render target. |
ResolveTargetable | Texture can be used as a resolve target. |
DepthStencilTargetable | Texture can be used as a depth-stencil target. |
ShaderResource | Texture can be used as a shader resource. |
SRGB | Texture is encoded in sRGB gamma space. |
CPUWritable | Texture data is writable by the CPU. |
NoTiling | Texture will be created with an un-tiled format. |
VideoDecode | Texture will be used for video decode. |
Dynamic | Texture that may be updated every frame. |
InputAttachmentRead | Texture will be used as a render pass attachment that will be read from. |
Foveation | Texture represents a foveation attachment |
Tiling3D | Prefer 3D internal surface tiling mode for volume textures when possible. |
Memoryless | This texture has no GPU or CPU backing. It only exists in tile memory on TBDR GPUs (i.e., mobile). |
GenerateMipCapable | Create the texture with the flag that allows mip generation later, only applicable to D3D11. |
FastVRAMPartialAlloc | The texture can be partially allocated in fastvram. |
DisableSRVCreation | Do not create associated shader resource view, only applicable to D3D11 and D3D12. |
DisableDCC | Do not allow Delta Color Compression (DCC) to be used with this texture. |
UAV | UnorderedAccessView (DX11 only) Warning: Causes additional synchronization between draw calls when using a render target allocated with this flag, use sparingly See: GCNPerformanceTweets.pdf Tip 37 |
Presentable | Render target texture that will be displayed on screen (back buffer) |
CPUReadback | Texture data is accessible by the CPU. |
OfflineProcessed | Texture was processed offline (via a texture conversion process for the current platform) |
FastVRAM | Texture needs to go in fast VRAM if available (HINT only) |
HideInVisualizeTexture | By default the texture is not showing up in the list - this is to reduce clutter, using the FULL option this can be ignored |
Virtual | Texture should be created in virtual memory, with no physical memory allocation made You must make further calls to RHIVirtualTextureSetFirstMipInMemory to allocate physical memory and RHIVirtualTextureSetFirstMipVisible to map the first mip visible to the GPU |
TargetArraySlicesIndependently | Creates a RenderTargetView for each array slice of the texture Warning: if this was specified when the resource was created, you can't use SV_RenderTargetArrayIndex to route to other slices! |
Shared | Texture that may be shared with DX9 or other devices. |
NoFastClear | RenderTarget will not use full-texture fast clear functionality. |
DepthStencilResolveTarget | Texture is a depth stencil resolve target. |
Streamable | Flag used to indicted this texture is a streamable 2D texture, and should be counted towards the texture streaming pool budget. |
NoFastClearFinalize | Render target will not FinalizeFastClear; Caches and meta data will be flushed, but clearing will be skipped (avoids potentially trashing metadata) |
Atomic64Compatible | Texture needs to support atomic operations |
ReduceMemoryWithTilingMode | Workaround for 128^3 volume textures getting bloated 4x due to tiling mode on some platforms. |
AtomicCompatible | Texture needs to support atomic operations |
External | Texture should be allocated for external access. Vulkan only |
MultiGPUGraphIgnore | Don't automatically transfer across GPUs in multi-GPU scenarios. |
ReservedResource | EXPERIMENTAL: Allow the texture to be created as a reserved (AKA tiled/sparse/virtual) resource internally, without physical memory backing. |
ImmediateCommit | EXPERIMENTAL: Used with ReservedResource flag to immediately allocate and commit memory on creation. |
ForceIntoNonStreamingMemoryTracking | Don't lump this texture with streaming memory when tracking total texture allocation sizes |
Invalid | Textures marked with this are meant to be immediately evicted after creation for intentionally crashing the GPU with a page fault. |
Remarks
Flags used for texture creation