UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRHIGlobals Struct Reference

#include <RHIGlobals.h>

Classes

struct  FGpuInfo
 
struct  FRayTracing
 
struct  FReservedResources
 
struct  FShaderBundles
 
struct  FVariableRateShading
 

Public Member Functions

RHI_API FRHIGlobals ()
 
RHI_API ~FRHIGlobals ()
 

Public Attributes

bool IsRHIInitialized = false
 
int32 PersistentThreadGroupCount = 0
 
int32 MaxTextureMipCount = MAX_TEXTURE_MIP_COUNT
 
bool SupportsQuadBufferStereo = false
 
bool SupportsRenderDepthTargetableShaderResources = true
 
bool SupportsDrawIndirect = true
 
bool SupportsMultiDrawIndirect = false
 
bool SupportsMultithreading = false
 
bool SupportsAsyncGetRenderQueryResult = false
 
struct FRHIGlobals::FGpuInfo GpuInfo
 
bool SupportsPixelShaderUAVs = true
 
bool SupportsVertexShaderUAVs = false
 
TRHIGlobal< boolSupportsRenderTargetFormat_PF_G8 = true
 
TRHIGlobal< boolSupportsRenderTargetFormat_PF_FloatRGBA = true
 
bool SupportsShaderFramebufferFetch = false
 
bool SupportsShaderMRTFramebufferFetch = false
 
bool SupportsShaderFramebufferFetchProgrammableBlending = true
 
bool SupportsPixelLocalStorage = false
 
bool SupportsShaderDepthStencilFetch = false
 
bool SupportsTimestampRenderQueries = false
 
bool SupportsGPUTimestampBubblesRemoval = false
 
bool SupportsFrameCyclesBubblesRemoval = false
 
bool SupportsGPUUsage = false
 
bool HardwareHiddenSurfaceRemoval = false
 
bool SupportsAsyncTextureCreation = false
 
bool SupportsQuadTopology = false
 
bool SupportsRectTopology = false
 
bool SupportsPrimitiveShaders = false
 
bool SupportsAtomicUInt64 = false
 
bool SupportsDX12AtomicUInt64 = false
 
bool SupportsPipelineStateSortKey = false
 
bool SupportsParallelRenderingTasksWithSeparateRHIThread = true
 
bool RHIThreadNeedsKicking = false
 
int32 MaximumInFlightQueries = MAX_int32
 
bool SupportsExactOcclusionQueries = true
 
bool SupportsVolumeTextureRendering = true
 
bool SupportsSeparateRenderTargetBlendState = false
 
bool SupportsDualSrcBlending = true
 
bool NeedsUnatlasedCSMDepthsWorkaround = false
 
bool SupportsTexture3D = true
 
bool UseTexture3DBulkData = false
 
bool SupportsMobileMultiView = false
 
bool SupportsImageExternal = false
 
bool SupportsWideMRT = true
 
bool SupportsDepthBoundsTest = false
 
bool SupportsExplicitHTile = false
 
bool SupportsExplicitFMask = false
 
bool SupportsResummarizeHTile = false
 
bool SupportsDepthUAV = false
 
bool SupportsEfficientAsyncCompute = false
 
bool SupportsAsyncComputeTransientAliasing = false
 
bool SupportsParallelOcclusionQueries = false
 
bool RequiresRenderTargetForPixelShaderUAVs = false
 
bool SupportsUAVFormatAliasing = false
 
bool SupportsTextureViews = true
 
bool SupportsDirectGPUMemoryLock = false
 
bool SupportsMultithreadedShaderCreation = true
 
bool SupportsMultithreadedResources = false
 
bool NeedsExtraDeletionLatency = false
 
bool ForceNoDeletionLatencyForStreamingTextures = false
 
TRHIGlobal< int32MaxComputeDispatchDimension = ((1 << 16) - 1)
 
bool LazyShaderCodeLoading = false
 
bool SupportsLazyShaderCodeLoading = false
 
bool SupportsUpdateFromBufferTexture = false
 
TRHIGlobal< int32MaxShadowDepthBufferSizeX = 2048
 
TRHIGlobal< int32MaxShadowDepthBufferSizeY = 2048
 
TRHIGlobal< int32MaxTextureDimensions = 2048
 
TRHIGlobal< uint64MaxViewDimensionForTypedBuffer = (1ULL << 32)
 
TRHIGlobal< uint64MaxViewSizeBytesForNonTypedBuffer = (1ULL << 32)
 
TRHIGlobal< int64MaxConstantBufferByteSize = (1 << 27)
 
TRHIGlobal< int64MaxComputeSharedMemory = (1 << 15)
 
TRHIGlobal< int32MaxVolumeTextureDimensions = 2048
 
TRHIGlobal< int32MaxCubeTextureDimensions = 2048
 
bool SupportsRWTextureBuffers = true
 
bool SupportsRawViewsForAnyBuffer = false
 
bool SupportsSeparateDepthStencilCopyAccess = true
 
bool SupportsAsyncTextureStreamOut = false
 
int32 MaxTextureArrayLayers = 256
 
int32 MaxTextureSamplers = 16
 
int32 MaxSimultaneousUAVs = MinGuaranteedSimultaneousUAVs
 
TRHIGlobal< int32MaxWorkGroupInvocations = 1024
 
bool UsingNullRHI = false
 
int32 DrawUPVertexCheckCount = MAX_int32
 
int32 DrawUPIndexCheckCount = MAX_int32
 
FVertexElementTypeSupportInfo VertexElementTypeSupport
 
bool TriggerGPUProfile = false
 
bool TriggerGPUHitchProfile = false
 
ERequestedGPUCrash TriggerGPUCrash = ERequestedGPUCrash::None
 
FString GPUTraceFileName
 
bool SupportsTextureStreaming = false
 
volatile uint64 StreamingTextureMemorySizeInKB = 0
 
volatile uint64 NonStreamingTextureMemorySizeInKB = 0
 
int64 TexturePoolSize = 0 * 1024 * 1024
 
int32 PoolSizeVRAMPercentage = 0
 
uint64 DemotedLocalMemorySize = 0
 
volatile uint64 BufferMemorySize = 0
 
volatile uint64 UniformBufferMemorySize = 0
 
bool SupportsBaseVertexIndex = true
 
bool SupportsFirstInstance = false
 
bool SupportsDynamicResolution = false
 
struct FRHIGlobals::FRayTracing RayTracing
 
bool SupportsWaveOperations = false
 
bool DeviceIsIntegrated = false
 
int32 MinimumWaveSize = 0
 
int32 MaximumWaveSize = 0
 
bool SupportsNative16BitOps = false
 
bool SupportsRHIThread = false
 
bool SupportsRHIOnTaskThread = false
 
bool SupportsParallelRHIExecute = false
 
bool SupportsParallelRenderPasses = false
 
bool ParallelRHIExecuteChildWait = false
 
bool ParallelRHIExecuteParentWait = false
 
bool SupportsMSAADepthSampleAccess = false
 
bool SupportsBackBufferWithCustomDepthStencil = true
 
bool IsHDREnabled = false
 
bool SupportsHDROutput = false
 
FIntVector MaxDispatchThreadGroupsPerDimension = FIntVector::ZeroValue
 
struct FRHIGlobals::FVariableRateShading VariableRateShading
 
EPixelFormat HDRDisplayOutputFormat = PF_FloatRGBA
 
uint64 PresentCounter = 1
 
bool SupportsArrayIndexFromAnyShader = false
 
bool SupportsPipelineFileCache = false
 
bool SupportsPSOPrecaching = false
 
bool SupportsStencilRefFromPixelShader = false
 
bool SupportsRasterOrderViews = false
 
bool SupportsConservativeRasterization = false
 
bool SupportsShaderRootConstants = false
 
struct FRHIGlobals::FShaderBundles ShaderBundles
 
bool SupportsMeshShadersTier0 = false
 
bool SupportsMeshShadersTier1 = false
 
bool SupportsShaderWorkGraphsTier1 = false
 
bool SupportsShaderWorkGraphsTier1_1 = false
 
bool SupportsShaderTimestamp = false
 
bool SupportsEfficientUploadOnResourceCreation = false
 
bool SupportsMapWriteNoOverwrite = false
 
FVector2f DefaultMSAASampleOffsets [1+2+4+8+16]
 
bool SupportsAsyncPipelinePrecompile = true
 
PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport BindlessSupport = ERHIBindlessSupport::Unsupported
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool bSupportsBindless = false
 
struct FRHIGlobals::FReservedResources ReservedResources
 
EShaderPlatform ShaderPlatformForFeatureLevel [ERHIFeatureLevel::Num]
 
bool IsDebugLayerEnabled = false
 
bool NeedsShaderUnbinds = false
 
bool SupportsBarycentricsSemantic = false
 
bool SupportsMSAAShaderResolve = false
 
bool SupportsDepthStencilResolve = false
 
bool SupportLinearTextureVolumeFormat = true
 
bool SupportsShaderExecutionReordering = false
 
bool NeedsExtraTransitions = false
 
bool NeedsTransientDiscardStateTracking = false
 
bool NeedsTransientDiscardOnGraphicsWorkaround = false
 
bool SupportsLossyFramebufferCompression = false
 
bool SupportsBindingTexArrayPerSlice = false
 
bool NeedsSRVGraphicsNonPixelWorkaround = false
 
FName PreferredPreviewShaderCodeFormat = NAME_None
 

Static Public Attributes

static constexpr int32 MinGuaranteedSimultaneousUAVs = 8
 

Constructor & Destructor Documentation

◆ FRHIGlobals()

FRHIGlobals::FRHIGlobals ( )

◆ ~FRHIGlobals()

FRHIGlobals::~FRHIGlobals ( )
default

Member Data Documentation

◆ BindlessSupport

PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport FRHIGlobals::BindlessSupport = ERHIBindlessSupport::Unsupported

◆ bSupportsBindless

PRAGMA_ENABLE_DEPRECATION_WARNINGS bool FRHIGlobals::bSupportsBindless = false

Whether dynamic (bindless) resources are supported

◆ BufferMemorySize

volatile uint64 FRHIGlobals::BufferMemorySize = 0

Amount of memory allocated by buffers

◆ DefaultMSAASampleOffsets

FVector2f FRHIGlobals::DefaultMSAASampleOffsets[1+2+4+8+16]

Tables of all MSAA sample offset for all MSAA supported. Use GetMSAASampleOffsets() to read it.

◆ DemotedLocalMemorySize

uint64 FRHIGlobals::DemotedLocalMemorySize = 0

Amount of local video memory demoted to system memory. In bytes.

◆ DeviceIsIntegrated

bool FRHIGlobals::DeviceIsIntegrated = false

Whether or not the current GPU is integrated into to CPU

◆ DrawUPIndexCheckCount

int32 FRHIGlobals::DrawUPIndexCheckCount = MAX_int32

The size to check against for Draw*UP call index counts. If greater than this value, the draw call will not occur.

◆ DrawUPVertexCheckCount

int32 FRHIGlobals::DrawUPVertexCheckCount = MAX_int32

The size to check against for Draw*UP call vertex counts. If greater than this value, the draw call will not occur.

◆ ForceNoDeletionLatencyForStreamingTextures

bool FRHIGlobals::ForceNoDeletionLatencyForStreamingTextures = false

Allow opt-out default RHI resource deletion latency for streaming textures

◆ GpuInfo

struct FRHIGlobals::FGpuInfo FRHIGlobals::GpuInfo

◆ GPUTraceFileName

FString FRHIGlobals::GPUTraceFileName

Non-empty if we are performing a gpu trace. Also says where to place trace file.

◆ HardwareHiddenSurfaceRemoval

bool FRHIGlobals::HardwareHiddenSurfaceRemoval = false

true if the GPU supports hidden surface removal in hardware.

◆ HDRDisplayOutputFormat

EPixelFormat FRHIGlobals::HDRDisplayOutputFormat = PF_FloatRGBA

Format used for the backbuffer when outputting to a HDR display.

◆ IsDebugLayerEnabled

bool FRHIGlobals::IsDebugLayerEnabled = false

True if the RHI has initialized a device with the debug layer enabled.

◆ IsHDREnabled

bool FRHIGlobals::IsHDREnabled = false

Whether or not HDR is currently enabled

◆ IsRHIInitialized

bool FRHIGlobals::IsRHIInitialized = false

True if the render hardware has been initialized.

◆ LazyShaderCodeLoading

bool FRHIGlobals::LazyShaderCodeLoading = false

If true, then avoiding loading shader code and instead force the "native" path, which sends a library and a hash instead.

◆ MaxComputeDispatchDimension

TRHIGlobal<int32> FRHIGlobals::MaxComputeDispatchDimension = ((1 << 16) - 1)

The maximum size allowed for a computeshader dispatch.

◆ MaxComputeSharedMemory

TRHIGlobal<int64> FRHIGlobals::MaxComputeSharedMemory = (1 << 15)

The maximum size allowed for Shared Compute Memory.

◆ MaxConstantBufferByteSize

TRHIGlobal<int64> FRHIGlobals::MaxConstantBufferByteSize = (1 << 27)

The maximum size allowed for a contant buffer.

◆ MaxCubeTextureDimensions

TRHIGlobal<int32> FRHIGlobals::MaxCubeTextureDimensions = 2048

The maximum size allowed for cube textures.

◆ MaxDispatchThreadGroupsPerDimension

FIntVector FRHIGlobals::MaxDispatchThreadGroupsPerDimension = FIntVector::ZeroValue

The maximum number of groups that can be dispatched in each dimensions.

◆ MaximumInFlightQueries

int32 FRHIGlobals::MaximumInFlightQueries = MAX_int32

The maximum number of in-flight GPU queries the current RHI can handle without stalling and waiting for the GPU. Used to tune the occlusion culler to avoid stalls.

◆ MaximumWaveSize

int32 FRHIGlobals::MaximumWaveSize = 0

◆ MaxShadowDepthBufferSizeX

TRHIGlobal<int32> FRHIGlobals::MaxShadowDepthBufferSizeX = 2048

The maximum size to allow for the shadow depth buffer in the X dimension. This must be larger or equal to GMaxShadowDepthBufferSizeY.

◆ MaxShadowDepthBufferSizeY

TRHIGlobal<int32> FRHIGlobals::MaxShadowDepthBufferSizeY = 2048

The maximum size to allow for the shadow depth buffer in the Y dimension.

◆ MaxSimultaneousUAVs

int32 FRHIGlobals::MaxSimultaneousUAVs = MinGuaranteedSimultaneousUAVs

The maximum number of simultaneously bound UAV's across all stages in a single pipeline

◆ MaxTextureArrayLayers

int32 FRHIGlobals::MaxTextureArrayLayers = 256

The Maximum number of layers in a 1D or 2D texture array.

◆ MaxTextureDimensions

TRHIGlobal<int32> FRHIGlobals::MaxTextureDimensions = 2048

The maximum size allowed for 2D textures in both dimensions.

◆ MaxTextureMipCount

int32 FRHIGlobals::MaxTextureMipCount = MAX_TEXTURE_MIP_COUNT

The maximum number of mip-maps that a texture can contain.

◆ MaxTextureSamplers

int32 FRHIGlobals::MaxTextureSamplers = 16

◆ MaxViewDimensionForTypedBuffer

TRHIGlobal<uint64> FRHIGlobals::MaxViewDimensionForTypedBuffer = (1ULL << 32)

The maximum number of elements allowed for Typed Buffers.

◆ MaxViewSizeBytesForNonTypedBuffer

TRHIGlobal<uint64> FRHIGlobals::MaxViewSizeBytesForNonTypedBuffer = (1ULL << 32)

The maximum size(in Bytes) for non Typed Buffers.

◆ MaxVolumeTextureDimensions

TRHIGlobal<int32> FRHIGlobals::MaxVolumeTextureDimensions = 2048

The maximum size allowed for 3D textures in all three dimensions.

◆ MaxWorkGroupInvocations

TRHIGlobal<int32> FRHIGlobals::MaxWorkGroupInvocations = 1024

The maximum work group invocations allowed for compute shader.

◆ MinGuaranteedSimultaneousUAVs

constexpr int32 FRHIGlobals::MinGuaranteedSimultaneousUAVs = 8
staticconstexpr

The guaranteed minimum number of simultaneously bound UAV's across all stages in a single pipeline

◆ MinimumWaveSize

int32 FRHIGlobals::MinimumWaveSize = 0

Specifies the minimum and maximum number of lanes in the SIMD wave that this GPU can support. I.e. 32 on NVIDIA, 64 on AMD. Valid values are in range [4..128] (as per SM 6.0 specification) or 0 if unknown. Rendering code must always check SupportsWaveOperations in addition to wave min/max size.

◆ NeedsExtraDeletionLatency

bool FRHIGlobals::NeedsExtraDeletionLatency = false

Does this RHI need to wait for deletion of resources due to ref counting.

◆ NeedsExtraTransitions

bool FRHIGlobals::NeedsExtraTransitions = false

True if RHI needs the transitions from the high level for COPYSRC/COPYDEST

◆ NeedsShaderUnbinds

bool FRHIGlobals::NeedsShaderUnbinds = false

True if the RHI needs shader unbinds (SetShaderUnbinds). RHIs that don't need them can avoid creating extra commands.

◆ NeedsSRVGraphicsNonPixelWorkaround

bool FRHIGlobals::NeedsSRVGraphicsNonPixelWorkaround = false

True if RHI needs to manually apply an RHI transition when a resource is flag as SRVGraphicsNonPixel.

◆ NeedsTransientDiscardOnGraphicsWorkaround

bool FRHIGlobals::NeedsTransientDiscardOnGraphicsWorkaround = false

True if RHI is unable to service transitioning to ERHIAccess::Discard from all pipes to async compute.

◆ NeedsTransientDiscardStateTracking

bool FRHIGlobals::NeedsTransientDiscardStateTracking = false

True if RHI needs to track states when transitioning between Discard.

◆ NeedsUnatlasedCSMDepthsWorkaround

bool FRHIGlobals::NeedsUnatlasedCSMDepthsWorkaround = false

True if the RHI has artifacts with atlased CSM depths.

◆ NonStreamingTextureMemorySizeInKB

volatile uint64 FRHIGlobals::NonStreamingTextureMemorySizeInKB = 0

Amount of memory allocated by non streaming textures. In kilobytes.

◆ ParallelRHIExecuteChildWait

bool FRHIGlobals::ParallelRHIExecuteChildWait = false

Used for parallel render pass support. When true, indicates that the platform RHI requires that the child command list translations in a parallel render pass are completed before the remainder of the parent command list can be translated.

◆ ParallelRHIExecuteParentWait

bool FRHIGlobals::ParallelRHIExecuteParentWait = false

Used for parallel render pass support. When true, indicates that the platform RHI requires that child command list translations in a parallel render pass do not start until the parent command list translation has reached the BeginParallelRenderPass command.

◆ PersistentThreadGroupCount

int32 FRHIGlobals::PersistentThreadGroupCount = 0

Optimal number of persistent thread groups to fill the GPU.

◆ PoolSizeVRAMPercentage

int32 FRHIGlobals::PoolSizeVRAMPercentage = 0

In percent. If non-zero, the texture pool size is a percentage of TotalGraphicsMemory.

◆ PreferredPreviewShaderCodeFormat

FName FRHIGlobals::PreferredPreviewShaderCodeFormat = NAME_None

Preferred format of FShaderCode (binary code or microcode). Only used for preview platforms with more than one shader code being supported such as D3D12 (supports DXIL and DXBC).

◆ PresentCounter

uint64 FRHIGlobals::PresentCounter = 1

Counter incremented once on each frame present. Used to support game thread synchronization with swap chain frame flips.

◆ RayTracing

struct FRHIGlobals::FRayTracing FRHIGlobals::RayTracing

◆ RequiresRenderTargetForPixelShaderUAVs

bool FRHIGlobals::RequiresRenderTargetForPixelShaderUAVs = false

true if the RHI requires a valid RT bound during UAV scatter operation inside the pixel shader

◆ ReservedResources

struct FRHIGlobals::FReservedResources FRHIGlobals::ReservedResources

◆ RHIThreadNeedsKicking

bool FRHIGlobals::RHIThreadNeedsKicking = false

If an RHI is so slow, that it is the limiting factor for the entire frame, we can kick early to try to give it as much as possible.

◆ ShaderBundles

struct FRHIGlobals::FShaderBundles FRHIGlobals::ShaderBundles

◆ ShaderPlatformForFeatureLevel

EShaderPlatform FRHIGlobals::ShaderPlatformForFeatureLevel[ERHIFeatureLevel::Num]

Table for finding out which shader platform corresponds to a given feature level for this RHI.

◆ StreamingTextureMemorySizeInKB

volatile uint64 FRHIGlobals::StreamingTextureMemorySizeInKB = 0

Amount of memory allocated by streaming textures. In kilobytes.

◆ SupportLinearTextureVolumeFormat

bool FRHIGlobals::SupportLinearTextureVolumeFormat = true

True if RHI supports Linear texture format in 3D/Cube/Array texture

◆ SupportsArrayIndexFromAnyShader

bool FRHIGlobals::SupportsArrayIndexFromAnyShader = false

True if the RHI supports setting the render target array index from any shader stage

◆ SupportsAsyncComputeTransientAliasing

bool FRHIGlobals::SupportsAsyncComputeTransientAliasing = false

True if the RHI supports aliasing transient resources on the async compute pipe.

◆ SupportsAsyncGetRenderQueryResult

bool FRHIGlobals::SupportsAsyncGetRenderQueryResult = false

Whether RHIGetRenderQueryResult can be safely called off the render thread.

◆ SupportsAsyncPipelinePrecompile

bool FRHIGlobals::SupportsAsyncPipelinePrecompile = true

True if the RHI supports pipeline precompiling from any thread.

◆ SupportsAsyncTextureCreation

bool FRHIGlobals::SupportsAsyncTextureCreation = false

true if the RHI supports asynchronous creation of texture resources

◆ SupportsAsyncTextureStreamOut

bool FRHIGlobals::SupportsAsyncTextureStreamOut = false

Support using async thread for texture stream out operations

◆ SupportsAtomicUInt64

bool FRHIGlobals::SupportsAtomicUInt64 = false

true if the RHI supports 64 bit uint atomics.

◆ SupportsBackBufferWithCustomDepthStencil

bool FRHIGlobals::SupportsBackBufferWithCustomDepthStencil = true

Whether or not the RHI can render to the backbuffer with a custom depth/stencil surface bound.

◆ SupportsBarycentricsSemantic

bool FRHIGlobals::SupportsBarycentricsSemantic = false

True if the RHI supports shaders with barycentrics

◆ SupportsBaseVertexIndex

bool FRHIGlobals::SupportsBaseVertexIndex = true

Whether or not the RHI can handle a non-zero BaseVertexIndex - extra SetStreamSource calls will be needed if this is false

◆ SupportsBindingTexArrayPerSlice

bool FRHIGlobals::SupportsBindingTexArrayPerSlice = false

True if RHI supports supports using any slice or all slices of a texture array as render targets without creating the texture with the TargetArraySlicesIndependently flag.

◆ SupportsConservativeRasterization

bool FRHIGlobals::SupportsConservativeRasterization = false

Whether current RHI supports overestimated conservative rasterization.

◆ SupportsDepthBoundsTest

bool FRHIGlobals::SupportsDepthBoundsTest = false

True if the RHI and current hardware supports supports depth bounds testing

◆ SupportsDepthStencilResolve

bool FRHIGlobals::SupportsDepthStencilResolve = false

Whether Depth Stencil MSAA Resolve Targets are supported.

◆ SupportsDepthUAV

bool FRHIGlobals::SupportsDepthUAV = false

True if the RHI supports depth target unordered access views.

◆ SupportsDirectGPUMemoryLock

bool FRHIGlobals::SupportsDirectGPUMemoryLock = false

true if the pointer returned by Lock is a persistent direct pointer to gpu memory

◆ SupportsDrawIndirect

bool FRHIGlobals::SupportsDrawIndirect = true

true if the RHI supports Draw Indirect

◆ SupportsDualSrcBlending

bool FRHIGlobals::SupportsDualSrcBlending = true

True if the RHI supports dual src blending.

◆ SupportsDX12AtomicUInt64

bool FRHIGlobals::SupportsDX12AtomicUInt64 = false

true if the RHI supports 64 bit uint atomics using DX12 SM6.6 - TEMP / DEPRECATED - DO NOT USE

◆ SupportsDynamicResolution

bool FRHIGlobals::SupportsDynamicResolution = false

Whether or not the RHI can handle dynamic resolution or not.

◆ SupportsEfficientAsyncCompute

bool FRHIGlobals::SupportsEfficientAsyncCompute = false

True if the RHI and current hardware supports efficient AsyncCompute (by default we assume false and later we can enable this for more hardware)

◆ SupportsEfficientUploadOnResourceCreation

bool FRHIGlobals::SupportsEfficientUploadOnResourceCreation = false

◆ SupportsExactOcclusionQueries

bool FRHIGlobals::SupportsExactOcclusionQueries = true

Some RHIs can only do visible or not occlusion queries.

◆ SupportsExplicitFMask

bool FRHIGlobals::SupportsExplicitFMask = false

True if the RHI supports explicit access to MSAA target FMask meta data.

◆ SupportsExplicitHTile

bool FRHIGlobals::SupportsExplicitHTile = false

True if the RHI supports explicit access to depth target HTile meta data.

◆ SupportsFirstInstance

bool FRHIGlobals::SupportsFirstInstance = false

Whether or not the RHI can handle a non-zero FirstInstance to DrawIndexedPrimitive and friends - extra SetStreamSource calls will be needed if this is false

◆ SupportsFrameCyclesBubblesRemoval

bool FRHIGlobals::SupportsFrameCyclesBubblesRemoval = false

true if RHIGetGPUFrameCycles removes CPu generated bubbles.

◆ SupportsGPUTimestampBubblesRemoval

bool FRHIGlobals::SupportsGPUTimestampBubblesRemoval = false

true if RQT_AbsoluteTime is supported by RHICreateRenderQuery

◆ SupportsGPUUsage

bool FRHIGlobals::SupportsGPUUsage = false

true if RHIGetGPUUsage() is supported.

◆ SupportsHDROutput

bool FRHIGlobals::SupportsHDROutput = false

Whether the present adapter/display offers HDR output capabilities.

◆ SupportsImageExternal

bool FRHIGlobals::SupportsImageExternal = false

true if the RHI supports image external

◆ SupportsLazyShaderCodeLoading

bool FRHIGlobals::SupportsLazyShaderCodeLoading = false

If true, then it is possible to turn on LazyShaderCodeLoading.

◆ SupportsLossyFramebufferCompression

bool FRHIGlobals::SupportsLossyFramebufferCompression = false

True if lossy/fixed-rate compression of render targets is supporterd.

◆ SupportsMapWriteNoOverwrite

bool FRHIGlobals::SupportsMapWriteNoOverwrite = false

true if the RHI supports RLM_WriteOnly_NoOverwrite

◆ SupportsMeshShadersTier0

bool FRHIGlobals::SupportsMeshShadersTier0 = false

true if the RHI supports Mesh and Amplification shaders with tier0 capability

◆ SupportsMeshShadersTier1

bool FRHIGlobals::SupportsMeshShadersTier1 = false

true if the RHI supports Mesh and Amplification shaders with tier1 capability

◆ SupportsMobileMultiView

bool FRHIGlobals::SupportsMobileMultiView = false

true if the RHI supports mobile multi-view

◆ SupportsMSAADepthSampleAccess

bool FRHIGlobals::SupportsMSAADepthSampleAccess = false

Whether or not the RHI can perform MSAA sample load.

◆ SupportsMSAAShaderResolve

bool FRHIGlobals::SupportsMSAAShaderResolve = false

True if RHI supports MSAA resolve with a custom shader

◆ SupportsMultiDrawIndirect

bool FRHIGlobals::SupportsMultiDrawIndirect = false

true if the RHI supports Multi Draw Indirect, a variant of Draw Indirect with variable number of sub-commands generated by GPU

◆ SupportsMultithreadedResources

bool FRHIGlobals::SupportsMultithreadedResources = false

Does the RHI support parallel resource commands (i.e. create / lock / unlock) on non-immediate command list APIs, recorded off the render thread.

◆ SupportsMultithreadedShaderCreation

bool FRHIGlobals::SupportsMultithreadedShaderCreation = true

true if the multi-threaded shader creation is supported by (or desirable for) the RHI.

◆ SupportsMultithreading

bool FRHIGlobals::SupportsMultithreading = false

Whether the RHI can send commands to the device context from multiple threads. Used in the GPU readback to avoid stalling the RHI threads.

◆ SupportsNative16BitOps

bool FRHIGlobals::SupportsNative16BitOps = false

Whether or not the RHI supports 16bit VALU and resource loads (HLSL shader model 6.2).

◆ SupportsParallelOcclusionQueries

bool FRHIGlobals::SupportsParallelOcclusionQueries = false

True if the RHI supports getting the result of occlusion queries when on a thread other than the render thread

◆ SupportsParallelRenderingTasksWithSeparateRHIThread

bool FRHIGlobals::SupportsParallelRenderingTasksWithSeparateRHIThread = true

Temporary. When OpenGL is running in a separate thread, it cannot yet do things like initialize shaders that are first discovered in a rendering task. It is doable, it just isn't done.

◆ SupportsParallelRenderPasses

bool FRHIGlobals::SupportsParallelRenderPasses = false

Enables support for platforms that use render passes to split command list translation across multiple threads. For platforms that require dependencies on Parent/Child command lists i.e. requiring translation of children to be complete before finishing translation of the parent, should use ParallelRHIExecuteChildWait and/or ParallelRHIExecuteParentWait

◆ SupportsParallelRHIExecute

bool FRHIGlobals::SupportsParallelRHIExecute = false

Whether or not the RHI supports parallel RHIThread executes / translates Requirements: RHICreateBoundShaderState & RHICreateGraphicsPipelineState is threadsafe and GetCachedBoundShaderState must not be used. GetCachedBoundShaderState_Threadsafe has a slightly different protocol.

◆ SupportsPipelineFileCache

bool FRHIGlobals::SupportsPipelineFileCache = false

True if the pipeline file cache can be used with this RHI

◆ SupportsPipelineStateSortKey

bool FRHIGlobals::SupportsPipelineStateSortKey = false

true if the RHI supports optimal low level pipeline state sort keys.

◆ SupportsPixelLocalStorage

bool FRHIGlobals::SupportsPixelLocalStorage = false

true if mobile pixel local storage is supported

◆ SupportsPixelShaderUAVs

bool FRHIGlobals::SupportsPixelShaderUAVs = true

◆ SupportsPrimitiveShaders

bool FRHIGlobals::SupportsPrimitiveShaders = false

true if the RHI supports primitive shaders.

◆ SupportsPSOPrecaching

bool FRHIGlobals::SupportsPSOPrecaching = false

True if the RHI support PSO precaching

◆ SupportsQuadBufferStereo

bool FRHIGlobals::SupportsQuadBufferStereo = false

true if this platform has quad buffer stereo support.

◆ SupportsQuadTopology

bool FRHIGlobals::SupportsQuadTopology = false

true if the RHI supports quad topology (PT_QuadList).

◆ SupportsRasterOrderViews

bool FRHIGlobals::SupportsRasterOrderViews = false

True if the RHI supports raster order views.

◆ SupportsRawViewsForAnyBuffer

bool FRHIGlobals::SupportsRawViewsForAnyBuffer = false

Whether a raw (ByteAddress) buffer view can be created for any buffer, regardless of its EBufferUsageFlags::ByteAddressBuffer flag.

◆ SupportsRectTopology

bool FRHIGlobals::SupportsRectTopology = false

true if the RHI supports rectangular topology (PT_RectList).

◆ SupportsRenderDepthTargetableShaderResources

bool FRHIGlobals::SupportsRenderDepthTargetableShaderResources = true

true if the RHI supports textures that may be bound as both a render target and a shader resource.

◆ SupportsRenderTargetFormat_PF_FloatRGBA

TRHIGlobal<bool> FRHIGlobals::SupportsRenderTargetFormat_PF_FloatRGBA = true

true if PF_FloatRGBA render targets are supported

◆ SupportsRenderTargetFormat_PF_G8

TRHIGlobal<bool> FRHIGlobals::SupportsRenderTargetFormat_PF_G8 = true

true if PF_G8 render targets are supported

◆ SupportsResummarizeHTile

bool FRHIGlobals::SupportsResummarizeHTile = false

True if the RHI supports resummarizing depth target HTile meta data.

◆ SupportsRHIOnTaskThread

bool FRHIGlobals::SupportsRHIOnTaskThread = false

◆ SupportsRHIThread

bool FRHIGlobals::SupportsRHIThread = false

Whether or not the RHI supports an RHI thread.

◆ SupportsRWTextureBuffers

bool FRHIGlobals::SupportsRWTextureBuffers = true

Whether RW texture buffers are supported

◆ SupportsSeparateDepthStencilCopyAccess

bool FRHIGlobals::SupportsSeparateDepthStencilCopyAccess = true

Whether depth or stencil can individually be set to CopySrc/Dest access.

◆ SupportsSeparateRenderTargetBlendState

bool FRHIGlobals::SupportsSeparateRenderTargetBlendState = false

True if the RHI supports separate blend states per render target.

◆ SupportsShaderDepthStencilFetch

bool FRHIGlobals::SupportsShaderDepthStencilFetch = false

true if mobile depth & stencil fetch is supported

◆ SupportsShaderExecutionReordering

bool FRHIGlobals::SupportsShaderExecutionReordering = false

true if the RHI supports shader execution reordering.

◆ SupportsShaderFramebufferFetch

bool FRHIGlobals::SupportsShaderFramebufferFetch = false

true if mobile framebuffer fetch is supported

◆ SupportsShaderFramebufferFetchProgrammableBlending

bool FRHIGlobals::SupportsShaderFramebufferFetchProgrammableBlending = true

true if mobile framebuffer fetch can be used for programmable blending, does not imply that framebuffer fetch is supported

◆ SupportsShaderMRTFramebufferFetch

bool FRHIGlobals::SupportsShaderMRTFramebufferFetch = false

true if mobile framebuffer fetch is supported from MRT's

◆ SupportsShaderRootConstants

bool FRHIGlobals::SupportsShaderRootConstants = false

Whether current RHI supports shader root constants.

◆ SupportsShaderTimestamp

bool FRHIGlobals::SupportsShaderTimestamp = false

True if the RHI supports reading system timer in shaders via GetShaderTimestamp(). Individual shaders must be compiled with an appropriate vendor extension and check PLATFORM_SUPPORTS_SHADER_TIMESTAMP.

◆ SupportsShaderWorkGraphsTier1

bool FRHIGlobals::SupportsShaderWorkGraphsTier1 = false

Whether current RHI supports work graphs with tier1_0 capability.

◆ SupportsShaderWorkGraphsTier1_1

bool FRHIGlobals::SupportsShaderWorkGraphsTier1_1 = false

Whether current RHI supports work graphs with tier1_1 capability.

◆ SupportsStencilRefFromPixelShader

bool FRHIGlobals::SupportsStencilRefFromPixelShader = false

True if the RHI supports setting the stencil ref at pixel granularity from the pixel shader

◆ SupportsTexture3D

bool FRHIGlobals::SupportsTexture3D = true

Whether to initialize 3D textures using a bulk data (or through a mip update if false).

◆ SupportsTextureStreaming

bool FRHIGlobals::SupportsTextureStreaming = false

True if the RHI supports texture streaming

◆ SupportsTextureViews

bool FRHIGlobals::SupportsTextureViews = true

true if the RHI supports texture views (data aliasing)

◆ SupportsTimestampRenderQueries

bool FRHIGlobals::SupportsTimestampRenderQueries = false

true if RQT_AbsoluteTime is supported by RHICreateRenderQuery

◆ SupportsUAVFormatAliasing

bool FRHIGlobals::SupportsUAVFormatAliasing = false

true if the RHI supports unordered access view format aliasing

◆ SupportsUpdateFromBufferTexture

bool FRHIGlobals::SupportsUpdateFromBufferTexture = false

true if the RHI supports UpdateFromBufferTexture method

◆ SupportsVertexShaderUAVs

bool FRHIGlobals::SupportsVertexShaderUAVs = false

◆ SupportsVolumeTextureRendering

bool FRHIGlobals::SupportsVolumeTextureRendering = true

True if and only if the GPU support rendering to volume textures (2D Array, 3D). Some OpenGL 3.3 cards support SM4, but can't render to volume textures.

◆ SupportsWaveOperations

bool FRHIGlobals::SupportsWaveOperations = false

Whether or not the RHI supports shader wave operations (shader model 6.0).

◆ SupportsWideMRT

bool FRHIGlobals::SupportsWideMRT = true

true if the RHI supports 256bit MRT

◆ TexturePoolSize

int64 FRHIGlobals::TexturePoolSize = 0 * 1024 * 1024

Current texture streaming pool size, in bytes. 0 means unlimited.

◆ TriggerGPUCrash

ERequestedGPUCrash FRHIGlobals::TriggerGPUCrash = ERequestedGPUCrash::None

Whether an intentional GPU crash has been scheduled.

◆ TriggerGPUHitchProfile

bool FRHIGlobals::TriggerGPUHitchProfile = false

Whether we are profiling GPU hitches.

◆ TriggerGPUProfile

bool FRHIGlobals::TriggerGPUProfile = false

Whether the next frame should profile the GPU.

◆ UniformBufferMemorySize

volatile uint64 FRHIGlobals::UniformBufferMemorySize = 0

Amount of memory allocated by uniform buffers

◆ UseTexture3DBulkData

bool FRHIGlobals::UseTexture3DBulkData = false

true if bulk data should be used with 3d textures

◆ UsingNullRHI

bool FRHIGlobals::UsingNullRHI = false

true if we are running with the NULL RHI

◆ VariableRateShading

struct FRHIGlobals::FVariableRateShading FRHIGlobals::VariableRateShading

◆ VertexElementTypeSupport

FVertexElementTypeSupportInfo FRHIGlobals::VertexElementTypeSupport

true for each VET that is supported. One-to-one mapping with EVertexElementType


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