/Engine/Source/Runtime/RHI/Public/RHIGlobals.h
struct FRHIGlobals
ERHIBindlessSup...
BindlessSupport
Whether dynamic (bindless) resources are supported
uint64
BufferMemorySize
Amount of memory allocated by buffers
FVector2f[1+2+4...
DefaultMSAASampleOffsets
Tables of all MSAA sample offset for all MSAA supported. Use GetMSAASampleOffsets() to read it.
uint64
DemotedLocalMemorySize
Amount of local video memory demoted to system memory. In bytes.
bool
DeviceIsIntegrated
Whether or not the current GPU is integrated into to CPU
int32
DrawUPIndexCheckCount
The size to check against for Draw*UP call index counts.
int32
DrawUPVertexCheckCount
The size to check against for Draw*UP call vertex counts.
bool
ForceNoDeletionLatencyForStreamingTextures
Allow opt-out default RHI resource deletion latency for streaming textures
FRHIGlobals::FG...
GpuInfo
FString
GPUTraceFileName
Non-empty if we are performing a gpu trace. Also says where to place trace file.
bool
HardwareHiddenSurfaceRemoval
True if the GPU supports hidden surface removal in hardware.
EPixelFormat
HDRDisplayOutputFormat
Format used for the backbuffer when outputting to a HDR display.
bool
IsDebugLayerEnabled
True if the RHI has initialized a device with the debug layer enabled.
bool
IsHDREnabled
Whether or not HDR is currently enabled
bool
IsRHIInitialized
True if the render hardware has been initialized.
bool
LazyShaderCodeLoading
If true, then avoiding loading shader code and instead force the "native" path, which sends a library and a hash instead.
TRHIGlobal< int...
MaxBufferDimensions
The maximum size allowed for 2D textures in both dimensions.
TRHIGlobal< int...
MaxComputeDispatchDimension
The maximum size allowed for a computeshader dispatch.
TRHIGlobal< int...
MaxComputeSharedMemory
The maximum size allowed for Shared Compute Memory.
TRHIGlobal< int...
MaxConstantBufferByteSize
The maximum size allowed for a contant buffer.
TRHIGlobal< int...
MaxCubeTextureDimensions
The maximum size allowed for cube textures.
FIntVector
MaxDispatchThreadGroupsPerDimension
The maximum number of groups that can be dispatched in each dimensions.
int32
MaximumReccommendedOustandingOcclusionQueries
If an RHI cannot do an unlimited number of occlusion queries without stalling and waiting for the GPU, this can be used to tune hte occlusion culler to try not to do that.
int32
MaximumWaveSize
TRHIGlobal< int...
MaxShadowDepthBufferSizeX
The maximum size to allow for the shadow depth buffer in the X dimension.
TRHIGlobal< int...
MaxShadowDepthBufferSizeY
The maximum size to allow for the shadow depth buffer in the Y dimension.
int32
MaxTextureArrayLayers
The Maximum number of layers in a 1D or 2D texture array.
TRHIGlobal< int...
MaxTextureDimensions
The maximum size allowed for 2D textures in both dimensions.
int32
MaxTextureMipCount
The maximum number of mip-maps that a texture can contain.
int32
MaxTextureSamplers
TRHIGlobal< int...
MaxVolumeTextureDimensions
The maximum size allowed for 3D textures in all three dimensions.
TRHIGlobal< int...
MaxWorkGroupInvocations
The maximum work group invocations allowed for compute shader.
int32
MinimumWaveSize
Specifies the minimum and maximum number of lanes in the SIMD wave that this GPU can support.
bool
NeedsExtraDeletionLatency
Does this RHI need to wait for deletion of resources due to ref counting.
bool
NeedsUnatlasedCSMDepthsWorkaround
True if the RHI has artifacts with atlased CSM depths.
uint64
NonStreamingTextureMemorySizeInKB
Amount of memory allocated by non streaming textures. In kilobytes.
int32
PersistentThreadGroupCount
Optimal number of persistent thread groups to fill the GPU.
int32
PoolSizeVRAMPercentage
In percent. If non-zero, the texture pool size is a percentage of TotalGraphicsMemory.
uint64
PresentCounter
Counter incremented once on each frame present.
FRHIGlobals::FR...
RayTracing
bool
RequiresRenderTargetForPixelShaderUAVs
True if the RHI requires a valid RT bound during UAV scatter operation inside the pixel shader
bool
RHIThreadNeedsKicking
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.
EShaderPlatform...
ShaderPlatformForFeatureLevel
Table for finding out which shader platform corresponds to a given feature level for this RHI.
uint64
StreamingTextureMemorySizeInKB
Amount of memory allocated by streaming textures. In kilobytes.
bool
SupportsArrayIndexFromAnyShader
True if the RHI supports setting the render target array index from any shader stage
bool
SupportsAsyncGetRenderQueryResult
Whether RHIGetRenderQueryResult can be safely called off the render thread.
bool
SupportsAsyncPipelinePrecompile
True if the RHI supports pipeline precompiling from any thread.
bool
SupportsAsyncTextureCreation
True if the RHI supports asynchronous creation of texture resources
bool
SupportsAsyncTextureStreamOut
Support using async thread for texture stream out operations
bool
SupportsAtomicUInt64
True if the RHI supports 64 bit uint atomics.
bool
SupportsBackBufferWithCustomDepthStencil
Whether or not the RHI can render to the backbuffer with a custom depth/stencil surface bound.
bool
SupportsBaseVertexIndex
Whether or not the RHI can handle a non-zero BaseVertexIndex - extra SetStreamSource calls will be needed if this is false
bool
SupportsConservativeRasterization
Whether current RHI supports overestimated conservative rasterization.
bool
SupportsDepthBoundsTest
True if the RHI and current hardware supports supports depth bounds testing
bool
SupportsDepthUAV
True if the RHI supports depth target unordered access views.
bool
SupportsDirectGPUMemoryLock
True if the pointer returned by Lock is a persistent direct pointer to gpu memory
bool
SupportsDrawIndirect
True if the RHI supports Draw Indirect
bool
SupportsDX12AtomicUInt64
True if the RHI supports 64 bit uint atomics using DX12 SM6.6 - TEMP / DEPRECATED - DO NOT USE
bool
SupportsDynamicResolution
Whether or not the RHI can handle dynamic resolution or not.
bool
SupportsEfficientAsyncCompute
True if the RHI and current hardware supports efficient AsyncCompute (by default we assume false and later we can enable this for more hardware)
bool
SupportsEfficientUploadOnResourceCreation
bool
SupportsExactOcclusionQueries
Some RHIs can only do visible or not occlusion queries.
bool
SupportsExplicitFMask
True if the RHI supports explicit access to MSAA target FMask meta data.
bool
SupportsExplicitHTile
True if the RHI supports explicit access to depth target HTile meta data.
bool
SupportsFirstInstance
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
bool
SupportsFrameCyclesBubblesRemoval
True if RHIGetGPUFrameCycles removes CPu generated bubbles.
bool
SupportsGPUTimestampBubblesRemoval
True if RQT_AbsoluteTime is supported by RHICreateRenderQuery
bool
SupportsGPUUsage
True if RHIGetGPUUsage() is supported.
bool
SupportsHDROutput
Whether the present adapter/display offers HDR output capabilities.
bool
SupportsImageExternal
True if the RHI supports image external
bool
SupportsLazyShaderCodeLoading
If true, then it is possible to turn on LazyShaderCodeLoading.
bool
SupportsMapWriteNoOverwrite
True if the RHI supports RLM_WriteOnly_NoOverwrite
bool
SupportsMeshShadersTier0
True if the RHI supports Mesh and Amplification shaders with tier0 capability
bool
SupportsMeshShadersTier1
True if the RHI supports Mesh and Amplification shaders with tier1 capability
bool
SupportsMobileMultiView
True if the RHI supports mobile multi-view
bool
SupportsMSAADepthSampleAccess
Whether or not the RHI can perform MSAA sample load.
bool
SupportsMultiDrawIndirect
True if the RHI supports Multi Draw Indirect, a variant of Draw Indirect with variable number of sub-commands generated by GPU
bool
SupportsMultithreadedResources
Does the RHI support parallel resource commands (i.e. create / lock / unlock) on non-immediate command list APIs, recorded off the render thread.
bool
SupportsMultithreadedShaderCreation
True if the multi-threaded shader creation is supported by (or desirable for) the RHI.
bool
SupportsMultithreading
Whether the RHI can send commands to the device context from multiple threads.
bool
SupportsNative16BitOps
Whether or not the RHI supports 16bit VALU and resource loads (HLSL shader model 6.2).
bool
SupportsParallelOcclusionQueries
True if the RHI supports getting the result of occlusion queries when on a thread other than the render thread
bool
SupportsParallelRenderingTasksWithSeparateRHIThread
Temporary.
bool
SupportsParallelRHIExecute
Whether or not the RHI supports parallel RHIThread executes / translates Requirements: RHICreateBoundShaderState & RHICreateGraphicsPipelineState is threadsafe and GetCachedBoundShaderState must not be used.
bool
SupportsPipelineFileCache
True if the pipeline file cache can be used with this RHI
bool
SupportsPipelineStateSortKey
True if the RHI supports optimal low level pipeline state sort keys.
bool
SupportsPixelLocalStorage
True if mobile pixel local storage is supported
bool
SupportsPixelShaderUAVs
True if the RHI supports Pixel Shader UAV
bool
SupportsPrimitiveShaders
True if the RHI supports primitive shaders.
bool
SupportsPSOPrecaching
True if the RHI support PSO precaching
bool
SupportsQuadBufferStereo
True if this platform has quad buffer stereo support.
bool
SupportsQuadTopology
True if the RHI supports quad topology (PT_QuadList).
bool
SupportsRawViewsForAnyBuffer
Whether a raw (ByteAddress) buffer view can be created for any buffer, regardless of its EBufferUsageFlags::ByteAddressBuffer flag.
bool
SupportsRectTopology
True if the RHI supports rectangular topology (PT_RectList).
bool
SupportsRenderDepthTargetableShaderResources
True if the RHI supports textures that may be bound as both a render target and a shader resource.
TRHIGlobal< boo...
SupportsRenderTargetFormat_PF_FloatRGBA
True if PF_FloatRGBA render targets are supported
TRHIGlobal< boo...
SupportsRenderTargetFormat_PF_G8
True if PF_G8 render targets are supported
bool
SupportsReservedResources
True if the RHI supports reserved (AKA tiled, virtual or sparse) resources and operations related to them
bool
SupportsResummarizeHTile
True if the RHI supports resummarizing depth target HTile meta data.
bool
SupportsRHIOnTaskThread
As above, but we run the commands on arbitrary task threads
bool
SupportsRHIThread
Whether or not the RHI supports an RHI thread.
bool
SupportsRWTextureBuffers
Whether RW texture buffers are supported
bool
SupportsSeparateDepthStencilCopyAccess
Whether depth or stencil can individually be set to CopySrc/Dest access.
bool
SupportsSeparateRenderTargetBlendState
True if the RHI supports separate blend states per render target.
bool
SupportsShaderDepthStencilFetch
True if mobile depth & stencil fetch is supported
bool
SupportsShaderFramebufferFetch
True if mobile framebuffer fetch is supported
bool
SupportsShaderMRTFramebufferFetch
True if mobile framebuffer fetch is supported from MRT's
bool
SupportsShaderTimestamp
True if the RHI supports reading system timer in shaders via GetShaderTimestamp().
bool
SupportsStencilRefFromPixelShader
True if the RHI supports setting the stencil ref at pixel granularity from the pixel shader
bool
SupportsTexture3D
Whether to initialize 3D textures using a bulk data (or through a mip update if false).
bool
SupportsTextureStreaming
True if the RHI supports texture streaming
bool
SupportsTextureViews
True if the RHI supports texture views (data aliasing)
bool
SupportsTimestampRenderQueries
True if RQT_AbsoluteTime is supported by RHICreateRenderQuery
bool
SupportsUAVFormatAliasing
True if the RHI supports unordered access view format aliasing
bool
SupportsUpdateFromBufferTexture
True if the RHI supports UpdateFromBufferTexture method
bool
SupportsVolumeTextureRendering
True if and only if the GPU support rendering to volume textures (2D Array, 3D).
bool
SupportsWaveOperations
Whether or not the RHI supports shader wave operations (shader model 6.0).
bool
SupportsWideMRT
True if the RHI supports 256bit MRT
int64
TexturePoolSize
Current texture streaming pool size, in bytes. 0 means unlimited.
bool
TriggerGPUHitchProfile
Whether we are profiling GPU hitches.
bool
TriggerGPUProfile
Whether the next frame should profile the GPU.
uint64
UniformBufferMemorySize
Amount of memory allocated by uniform buffers
bool
UseTexture3DBulkData
True if bulk data should be used with 3d textures
bool
UsingNullRHI
True if we are running with the NULL RHI
FRHIGlobals::FV...
VariableRateShading
FVertexElementT...
VertexElementTypeSupport
True for each VET that is supported. One-to-one mapping with EVertexElementType