ETextureCreateFlags

Flags used for texture creation

Choose your operating system:

Windows

macOS

Linux

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,
    AFRManual                         = 1ull << 30,
    ReduceMemoryWithTilingMode        = 1ull << 31,
    AtomicCompatible                  = 1ull << 33,
    External                          = 1ull << 34,
    MultiGPUGraphIgnore               = 1ull << 35,
}

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)

AFRManual

Hint to the driver that this resource is managed properly by the engine for Alternate-Frame-Rendering in mGPU usage.

ReduceMemoryWithTilingMode

Workaround for 128^3 volume textures getting bloated 4x due to tiling mode on some platforms.

AtomicCompatible

Texture should be allocated from transient memory. 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.

Remarks

Flags used for texture creation