UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHIGlobals.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Math/IntVector.h"
7#include "Math/Vector2D.h"
8#include "PixelFormat.h"
9#include "RHIDefinitions.h"
10#include "RHIFeatureLevel.h"
11#include "RHIShaderPlatform.h"
12
13#if WITH_EDITOR
14#include "Misc/Optional.h"
15#endif
16
18inline constexpr float GMinClipZ = 0.0f;
19
21inline constexpr float GProjectionSignY = 1.0f;
22
25{
26public:
27 FVertexElementTypeSupportInfo() { for (int32 i = 0; i < VET_MAX; i++) ElementCaps[i] = true; }
28 bool IsSupported(EVertexElementType ElementType) { return ElementCaps[ElementType]; }
29 void SetSupported(EVertexElementType ElementType, bool bIsSupported) { ElementCaps[ElementType] = bIsSupported; }
30private:
32 bool ElementCaps[VET_MAX];
33};
34
35// Wrapper for GRHI## global variables, allows values to be overridden for mobile preview modes.
36template <typename TValueType>
38{
39public:
40 TRHIGlobal() = default;
42
44 {
45 Value = InValue;
46 return *this;
47 }
48
49#if WITH_EDITOR
50 inline void SetPreviewOverride(const TValueType& InValue)
51 {
52 PreviewValue = InValue;
53 }
54
55 inline operator TValueType() const
56 {
57 return PreviewValue.IsSet() ? GetPreviewValue() : Value;
58 }
59#else
60 inline operator TValueType() const { return Value; }
61#endif
62
63private:
64 TValueType Value{};
65#if WITH_EDITOR
66 TOptional<TValueType> PreviewValue;
67 TValueType GetPreviewValue() const { return PreviewValue.GetValue(); }
68#endif
69};
70
71#if WITH_EDITOR
72template<>
74{
75 // ensure the preview values are subsets of RHI functionality.
76 return FMath::Min(PreviewValue.GetValue(), Value);
77}
78
79template<>
80inline bool TRHIGlobal<bool>::GetPreviewValue() const
81{
82 // ensure the preview values are subsets of RHI functionality.
83 return PreviewValue.GetValue() && Value;
84}
85#endif
86
88{
91
93 bool IsRHIInitialized = false;
94
97
100
103
106
109
112
115
118
119 struct FGpuInfo
120 {
125 FString AdapterName;
132
135
136 // 0 means not defined yet, use functions like IsRHIDeviceAMD() to access
139
140 // true if the RHI supports Pixel Shader UAV
142
143 // true if the RHI supports Vertex Shader UAV
145
148
151
154
157
160
163
166
169
172
175
177 bool SupportsGPUUsage = false;
178
181
184
187
190
193
196
199
202
205
208
211
214
217
220
223
226
228 bool SupportsTexture3D = true;
229
232
235
238
240 bool SupportsWideMRT = true;
241
244
247
250
253
255 bool SupportsDepthUAV = false;
256
259
262
265
268
271
274
277
280
283
286
289
292
295
298
301
304
307
310
313
316
319
322
325
328
331
334
337
340
343
345
348
351
354
356 bool UsingNullRHI = false;
357
368
371
373 bool TriggerGPUProfile = false;
374
377
380
383
386
389
392
394 int64 TexturePoolSize = 0 * 1024 * 1024;
395
398
401
404
407
410
413
416
492
495
497 bool DeviceIsIntegrated = false;
498
506
509
511 bool SupportsRHIThread = false;
512
513 /* as above, but we run the commands on arbitrary task threads */
515
521
526
529
532
535
538
540 bool IsHDREnabled = false;
541
543 bool SupportsHDROutput = false;
544
547
587
590
593
596
599
602
605
608
611
614
633
636
639
642
645
651
653
656
659
662
664 UE_DEPRECATED(5.7, "BindlessSupport is not used anymore, it is now a bool in bSupportsBindless")
667
670
672 {
677 bool Supported = false;
678
682 bool SupportsVolumeTextures = false;
683
690 int32 TextureArrayMinimumMipDimension = 256;
691
697 static constexpr int32 TileSizeInBytes = 65536;
698
700
703
706
708 bool NeedsShaderUnbinds = false;
709
712
715
718
721
724
727
730
733
736
739
742
745};
746
748
750UE_DEPRECATED(5.6, "Direct use of GGPUFrameTime is deprecated. Call the global scope RHIGetGPUFrameCycles() function instead.")
752
753//
754// Deprecated old-style names
755
756#define GIsRHIInitialized GRHIGlobals.IsRHIInitialized
757#define GRHIPersistentThreadGroupCount GRHIGlobals.PersistentThreadGroupCount
758#define GMaxTextureMipCount GRHIGlobals.MaxTextureMipCount
759#define GSupportsQuadBufferStereo GRHIGlobals.SupportsQuadBufferStereo
760#define GSupportsRenderDepthTargetableShaderResources GRHIGlobals.SupportsRenderDepthTargetableShaderResources
761#define GRHISupportsDrawIndirect GRHIGlobals.SupportsDrawIndirect
762#define GRHISupportsMultiDrawIndirect GRHIGlobals.SupportsMultiDrawIndirect
763#define GRHISupportsMultithreading GRHIGlobals.SupportsMultithreading
764#define GRHISupportsAsyncGetRenderQueryResult GRHIGlobals.SupportsAsyncGetRenderQueryResult
765#define GRHIAdapterName GRHIGlobals.GpuInfo.AdapterName
766#define GRHIAdapterInternalDriverVersion GRHIGlobals.GpuInfo.AdapterInternalDriverVersion
767#define GRHIAdapterUserDriverVersion GRHIGlobals.GpuInfo.AdapterUserDriverVersion
768#define GRHIAdapterDriverDate GRHIGlobals.GpuInfo.AdapterDriverDate
769#define GRHIAdapterDriverOnDenyList GRHIGlobals.GpuInfo.AdapterDriverOnDenyList
770#define GRHIDeviceId GRHIGlobals.GpuInfo.DeviceId
771#define GRHIDeviceRevision GRHIGlobals.GpuInfo.DeviceRevision
772#define GRHIVendorId GRHIGlobals.GpuInfo.VendorId
773#define GRHISupportsPixelShaderUAVs GRHIGlobals.SupportsPixelShaderUAVs
774#define GRHIDeviceIsAMDPreGCNArchitecture GRHIGlobals.GpuInfo.IsAMDPreGCNArchitecture
775#define GSupportsRenderTargetFormat_PF_G8 GRHIGlobals.SupportsRenderTargetFormat_PF_G8
776#define GSupportsRenderTargetFormat_PF_FloatRGBA GRHIGlobals.SupportsRenderTargetFormat_PF_FloatRGBA
777#define GSupportsShaderFramebufferFetch GRHIGlobals.SupportsShaderFramebufferFetch
778#define GSupportsShaderFramebufferFetchProgrammableBlending GRHIGlobals.SupportsShaderFramebufferFetchProgrammableBlending
779#define GSupportsShaderMRTFramebufferFetch GRHIGlobals.SupportsShaderMRTFramebufferFetch
780#define GSupportsPixelLocalStorage GRHIGlobals.SupportsPixelLocalStorage
781#define GSupportsShaderDepthStencilFetch GRHIGlobals.SupportsShaderDepthStencilFetch
782#define GSupportsTimestampRenderQueries GRHIGlobals.SupportsTimestampRenderQueries
783#define GRHISupportsGPUTimestampBubblesRemoval GRHIGlobals.SupportsGPUTimestampBubblesRemoval
784#define GRHISupportsFrameCyclesBubblesRemoval GRHIGlobals.SupportsFrameCyclesBubblesRemoval
785#define GRHISupportsGPUUsage GRHIGlobals.SupportsGPUUsage
786#define GHardwareHiddenSurfaceRemoval GRHIGlobals.HardwareHiddenSurfaceRemoval
787#define GRHISupportsAsyncTextureCreation GRHIGlobals.SupportsAsyncTextureCreation
788#define GRHISupportsQuadTopology GRHIGlobals.SupportsQuadTopology
789#define GRHISupportsRectTopology GRHIGlobals.SupportsRectTopology
790#define GRHISupportsPrimitiveShaders GRHIGlobals.SupportsPrimitiveShaders
791#define GRHISupportsAtomicUInt64 GRHIGlobals.SupportsAtomicUInt64
792#define GRHISupportsDX12AtomicUInt64 GRHIGlobals.SupportsDX12AtomicUInt64
793#define GRHISupportsPipelineStateSortKey GRHIGlobals.SupportsPipelineStateSortKey
794#define GSupportsParallelRenderingTasksWithSeparateRHIThread GRHIGlobals.SupportsParallelRenderingTasksWithSeparateRHIThread
795#define GRHIThreadNeedsKicking GRHIGlobals.RHIThreadNeedsKicking
796#define GRHIMaximumInFlightQueries GRHIGlobals.MaximumInFlightQueries
797#define GRHISupportsExactOcclusionQueries GRHIGlobals.SupportsExactOcclusionQueries
798#define GSupportsVolumeTextureRendering GRHIGlobals.SupportsVolumeTextureRendering
799#define GSupportsSeparateRenderTargetBlendState GRHIGlobals.SupportsSeparateRenderTargetBlendState
800#define GSupportsDualSrcBlending GRHIGlobals.SupportsDualSrcBlending
801#define GRHINeedsUnatlasedCSMDepthsWorkaround GRHIGlobals.NeedsUnatlasedCSMDepthsWorkaround
802#define GSupportsTexture3D GRHIGlobals.SupportsTexture3D
803#define GUseTexture3DBulkDataRHI GRHIGlobals.UseTexture3DBulkData
804#define GSupportsMobileMultiView GRHIGlobals.SupportsMobileMultiView
805#define GSupportsImageExternal GRHIGlobals.SupportsImageExternal
806#define GSupportsWideMRT GRHIGlobals.SupportsWideMRT
807#define GSupportsDepthBoundsTest GRHIGlobals.SupportsDepthBoundsTest
808#define GRHISupportsExplicitHTile GRHIGlobals.SupportsExplicitHTile
809#define GRHISupportsExplicitFMask GRHIGlobals.SupportsExplicitFMask
810#define GRHISupportsResummarizeHTile GRHIGlobals.SupportsResummarizeHTile
811#define GRHISupportsDepthUAV GRHIGlobals.SupportsDepthUAV
812#define GSupportsEfficientAsyncCompute GRHIGlobals.SupportsEfficientAsyncCompute
813#define GSupportsParallelOcclusionQueries GRHIGlobals.SupportsParallelOcclusionQueries
814#define GRHIRequiresRenderTargetForPixelShaderUAVs GRHIGlobals.RequiresRenderTargetForPixelShaderUAVs
815#define GRHISupportsUAVFormatAliasing GRHIGlobals.SupportsUAVFormatAliasing
816#define GRHISupportsTextureViews GRHIGlobals.SupportsTextureViews
817#define GRHISupportsDirectGPUMemoryLock GRHIGlobals.SupportsDirectGPUMemoryLock
818#define GRHISupportsMultithreadedShaderCreation GRHIGlobals.SupportsMultithreadedShaderCreation
819#define GRHISupportsMultithreadedResources GRHIGlobals.SupportsMultithreadedResources
820#define GRHINeedsExtraDeletionLatency GRHIGlobals.NeedsExtraDeletionLatency
821#define GRHIForceNoDeletionLatencyForStreamingTextures GRHIGlobals.ForceNoDeletionLatencyForStreamingTextures
822#define GMaxComputeDispatchDimension GRHIGlobals.MaxComputeDispatchDimension
823#define GRHILazyShaderCodeLoading GRHIGlobals.LazyShaderCodeLoading
824#define GRHISupportsLazyShaderCodeLoading GRHIGlobals.SupportsLazyShaderCodeLoading
825#define GRHISupportsUpdateFromBufferTexture GRHIGlobals.SupportsUpdateFromBufferTexture
826#define GMaxShadowDepthBufferSizeX GRHIGlobals.MaxShadowDepthBufferSizeX
827#define GMaxShadowDepthBufferSizeY GRHIGlobals.MaxShadowDepthBufferSizeY
828#define GMaxTextureDimensions GRHIGlobals.MaxTextureDimensions
829#define GRHIMaxConstantBufferByteSize GRHIGlobals.MaxConstantBufferByteSize
830#define GMaxComputeSharedMemory GRHIGlobals.MaxComputeSharedMemory
831#define GMaxVolumeTextureDimensions GRHIGlobals.MaxVolumeTextureDimensions
832#define GRHISupportsRWTextureBuffers GRHIGlobals.SupportsRWTextureBuffers
833#define GRHISupportsRawViewsForAnyBuffer GRHIGlobals.SupportsRawViewsForAnyBuffer
834#define GRHISupportsSeparateDepthStencilCopyAccess GRHIGlobals.SupportsSeparateDepthStencilCopyAccess
835#define GRHISupportAsyncTextureStreamOut GRHIGlobals.SupportsAsyncTextureStreamOut
836#define GMaxCubeTextureDimensions GRHIGlobals.MaxCubeTextureDimensions
837#define GMaxTextureArrayLayers GRHIGlobals.MaxTextureArrayLayers
838#define GMaxTextureSamplers GRHIGlobals.MaxTextureSamplers
839#define GMaxWorkGroupInvocations GRHIGlobals.MaxWorkGroupInvocations
840#define GUsingNullRHI GRHIGlobals.UsingNullRHI
841#define GDrawUPVertexCheckCount GRHIGlobals.DrawUPVertexCheckCount
842#define GDrawUPIndexCheckCount GRHIGlobals.DrawUPIndexCheckCount
843#define GVertexElementTypeSupport GRHIGlobals.VertexElementTypeSupport
844#define GTriggerGPUProfile GRHIGlobals.TriggerGPUProfile
845#define GTriggerGPUHitchProfile GRHIGlobals.TriggerGPUHitchProfile
846#define GTriggerGPUCrash GRHIGlobals.TriggerGPUCrash
847#define GGPUTraceFileName GRHIGlobals.GPUTraceFileName
848#define GRHISupportsTextureStreaming GRHIGlobals.SupportsTextureStreaming
849#define GTexturePoolSize GRHIGlobals.TexturePoolSize
850#define GPoolSizeVRAMPercentage GRHIGlobals.PoolSizeVRAMPercentage
851#define GDemotedLocalMemorySize GRHIGlobals.DemotedLocalMemorySize
852#define GRHISupportsBaseVertexIndex GRHIGlobals.SupportsBaseVertexIndex
853#define GRHISupportsFirstInstance GRHIGlobals.SupportsFirstInstance
854#define GRHISupportsDynamicResolution GRHIGlobals.SupportsDynamicResolution
855#define GRHISupportsRayTracing GRHIGlobals.RayTracing.Supported
856#define GRHISupportsRayTracingShaders GRHIGlobals.RayTracing.SupportsShaders
857#define GRHISupportsRayTracingPSOAdditions GRHIGlobals.RayTracing.SupportsPSOAdditions
858#define GRHISupportsRayTracingDispatchIndirect GRHIGlobals.RayTracing.SupportsDispatchIndirect
859#define GRHISupportsRayTracingAsyncBuildAccelerationStructure GRHIGlobals.RayTracing.SupportsAsyncBuildAccelerationStructure
860#define GRHISupportsRayTracingAMDHitToken GRHIGlobals.RayTracing.SupportsAMDHitToken
861#define GRHISupportsInlineRayTracing GRHIGlobals.RayTracing.SupportsInlineRayTracing
862#define GRHIRayTracingAccelerationStructureAlignment GRHIGlobals.RayTracing.AccelerationStructureAlignment
863#define GRHIRayTracingScratchBufferAlignment GRHIGlobals.RayTracing.ScratchBufferAlignment
864#define GRHIRayTracingShaderTableAlignment GRHIGlobals.RayTracing.ShaderTableAlignment
865#define GRHIRayTracingInstanceDescriptorSize GRHIGlobals.RayTracing.InstanceDescriptorSize
866#define GRHISupportsWaveOperations GRHIGlobals.SupportsWaveOperations
867#define GRHIDeviceIsIntegrated GRHIGlobals.DeviceIsIntegrated
868#define GRHIMinimumWaveSize GRHIGlobals.MinimumWaveSize
869#define GRHIMaximumWaveSize GRHIGlobals.MaximumWaveSize
870#define GRHISupportsRHIThread GRHIGlobals.SupportsRHIThread
871#define GRHISupportsRHIOnTaskThread GRHIGlobals.SupportsRHIOnTaskThread
872#define GRHISupportsParallelRHIExecute GRHIGlobals.SupportsParallelRHIExecute
873#define GRHISupportsParallelRenderPasses GRHIGlobals.SupportsParallelRenderPasses
874#define GRHIParallelRHIExecuteChildWait GRHIGlobals.ParallelRHIExecuteChildWait
875#define GRHIParallelRHIExecuteParentWait GRHIGlobals.ParallelRHIExecuteParentWait
876#define GRHISupportsParallelRHIExecute GRHIGlobals.SupportsParallelRHIExecute
877#define GRHISupportsMSAADepthSampleAccess GRHIGlobals.SupportsMSAADepthSampleAccess
878#define GRHISupportsBackBufferWithCustomDepthStencil GRHIGlobals.SupportsBackBufferWithCustomDepthStencil
879#define GRHIIsHDREnabled GRHIGlobals.IsHDREnabled
880#define GRHISupportsHDROutput GRHIGlobals.SupportsHDROutput
881#define GRHIMaxDispatchThreadGroupsPerDimension GRHIGlobals.MaxDispatchThreadGroupsPerDimension
882#define GRHISupportsPipelineVariableRateShading GRHIGlobals.VariableRateShading.SupportsPipeline
883#define GRHISupportsLargerVariableRateShadingSizes GRHIGlobals.VariableRateShading.SupportsLargerSizes
884#define GRHISupportsAttachmentVariableRateShading GRHIGlobals.VariableRateShading.SupportsAttachment
885#define GRHISupportsComplexVariableRateShadingCombinerOps GRHIGlobals.VariableRateShading.SupportsComplexCombinerOps
886#define GRHISupportsVariableRateShadingAttachmentArrayTextures GRHIGlobals.VariableRateShading.SupportsAttachmentArrayTextures
887#define GRHIVariableRateShadingImageTileMaxWidth GRHIGlobals.VariableRateShading.ImageTileMaxWidth
888#define GRHIVariableRateShadingImageTileMaxHeight GRHIGlobals.VariableRateShading.ImageTileMaxHeight
889#define GRHIVariableRateShadingImageTileMinWidth GRHIGlobals.VariableRateShading.ImageTileMinWidth
890#define GRHIVariableRateShadingImageTileMinHeight GRHIGlobals.VariableRateShading.ImageTileMinHeight
891#define GRHIVariableRateShadingImageDataType GRHIGlobals.VariableRateShading.ImageDataType
892#define GRHIVariableRateShadingImageFormat GRHIGlobals.VariableRateShading.ImageFormat
893#define GRHISupportsLateVariableRateShadingUpdate GRHIGlobals.VariableRateShading.SupportsLateUpdate
894#define GRHIHDRDisplayOutputFormat GRHIGlobals.HDRDisplayOutputFormat
895#define GRHIPresentCounter GRHIGlobals.PresentCounter
896#define GRHISupportsArrayIndexFromAnyShader GRHIGlobals.SupportsArrayIndexFromAnyShader
897#define GRHISupportsPipelineFileCache GRHIGlobals.SupportsPipelineFileCache
898#define GRHISupportsPSOPrecaching GRHIGlobals.SupportsPSOPrecaching
899#define GRHISupportsStencilRefFromPixelShader GRHIGlobals.SupportsStencilRefFromPixelShader
900#define GRHISupportsRasterOrderViews GRHIGlobals.SupportsRasterOrderViews
901#define GRHISupportsConservativeRasterization GRHIGlobals.SupportsConservativeRasterization
902#define GRHISupportsShaderRootConstants GRHIGlobals.SupportsShaderRootConstants
903#define GRHISupportsShaderBundleDispatch GRHIGlobals.ShaderBundles.SupportsDispatch
904#define GRHISupportsShaderBundleWorkGraphDispatch GRHIGlobals.ShaderBundles.SupportsWorkGraphDispatch
905#define GRHISupportsShaderBundleParallel GRHIGlobals.ShaderBundles.SupportsParallel
906#define GRHISupportsMeshShadersTier0 GRHIGlobals.SupportsMeshShadersTier0
907#define GRHISupportsMeshShadersTier1 GRHIGlobals.SupportsMeshShadersTier1
908#define GRHISupportsShaderWorkGraphsTier1 GRHIGlobals.SupportsShaderWorkGraphsTier1
909#define GRHISupportsShaderTimestamp GRHIGlobals.SupportsShaderTimestamp
910#define GRHISupportsEfficientUploadOnResourceCreation GRHIGlobals.SupportsEfficientUploadOnResourceCreation
911#define GRHISupportsMapWriteNoOverwrite GRHIGlobals.SupportsMapWriteNoOverwrite
912#define GRHIDefaultMSAASampleOffsets GRHIGlobals.DefaultMSAASampleOffsets
913#define GRHISupportsAsyncPipelinePrecompile GRHIGlobals.SupportsAsyncPipelinePrecompile
914#define GRHIBindlessSupport GRHIGlobals.BindlessSupport
915#define GShaderPlatformForFeatureLevel GRHIGlobals.ShaderPlatformForFeatureLevel
916#define GRHIIsDebugLayerEnabled GRHIGlobals.IsDebugLayerEnabled
917#define GRHISupportsMSAAShaderResolve GRHIGlobals.SupportsMSAAShaderResolve
918#define GRHISupportsDepthStencilResolve GRHIGlobals.SupportsDepthStencilResolve
919#define GRHISupportsLossyFramebufferCompression GRHIGlobals.SupportsLossyFramebufferCompression
920#define GRHISupportsBindingTexArrayPerSlice GRHIGlobals.SupportsBindingTexArrayPerSlice
921#define GRHINeedsSRVGraphicsNonPixelWorkaround GRHIGlobals.NeedsSRVGraphicsNonPixelWorkaround
922
923// Utility Getters
924
929
934
939
944
949
954
959
965
967{
968 checkf(!IsRunningCookCommandlet(), TEXT("Calling GetFeatureLevelShaderPlatform while inside a cook commandlet is not correct, as it will return the cookers ShaderPlatform and not the ShaderPlatform you are cooking for"));
970}
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
FORCEINLINE bool IsRunningCookCommandlet()
Definition CoreGlobals.h:259
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define MAX_int32
Definition NumericLimits.h:25
EPixelFormat
Definition PixelFormat.h:16
@ PF_FloatRGBA
Definition PixelFormat.h:27
@ PF_Unknown
Definition PixelFormat.h:17
EVertexElementType
Definition RHIDefinitions.h:496
@ VET_MAX
Definition RHIDefinitions.h:518
ERequestedGPUCrash
Definition RHIDefinitions.h:1529
EVRSImageDataType
Definition RHIDefinitions.h:882
@ VRSImage_NotSupported
Definition RHIDefinitions.h:883
@ MAX_TEXTURE_MIP_COUNT
Definition RHIDefinitions.h:268
uint32 GetMax2DTextureDimension()
Definition RHIGlobals.h:935
uint32 GetMaxTextureSamplers()
Definition RHIGlobals.h:950
uint32 GetMaxCubeTextureDimension()
Definition RHIGlobals.h:940
constexpr float GProjectionSignY
Definition RHIGlobals.h:21
constexpr float GMinClipZ
Definition RHIGlobals.h:18
uint32 GetMaxWorkGroupInvocations()
Definition RHIGlobals.h:955
uint32 GetMaxTextureArrayLayers()
Definition RHIGlobals.h:945
EShaderPlatform GetFeatureLevelShaderPlatform_Checked(const FStaticFeatureLevel InFeatureLevel)
Definition RHIGlobals.h:966
EShaderPlatform GetFeatureLevelShaderPlatform(const FStaticFeatureLevel InFeatureLevel)
Definition RHIGlobals.h:961
RHI_API FRHIGlobals GRHIGlobals
Definition RHIGlobals.cpp:6
RHI_API uint32 GGPUFrameTime
Definition RHIGlobals.cpp:8
uint64 GetMaxConstantBufferByteSize()
Definition RHIGlobals.h:925
uint64 GetMaxComputeSharedMemory()
Definition RHIGlobals.h:930
EShaderPlatform
Definition RHIShaderPlatform.h:11
@ SP_NumPlatforms
Definition RHIShaderPlatform.h:55
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition RHIGlobals.h:25
FVertexElementTypeSupportInfo()
Definition RHIGlobals.h:27
bool IsSupported(EVertexElementType ElementType)
Definition RHIGlobals.h:28
void SetSupported(EVertexElementType ElementType, bool bIsSupported)
Definition RHIGlobals.h:29
Definition RHIGlobals.h:38
TRHIGlobal(const TValueType &InValue)
Definition RHIGlobals.h:41
TRHIGlobal()=default
TRHIGlobal & operator=(const TValueType &InValue)
Definition RHIGlobals.h:43
@ Num
Definition RHIFeatureLevel.h:54
@ false
Definition radaudio_common.h:23
Definition RHIGlobals.h:120
FString AdapterUserDriverVersion
Definition RHIGlobals.h:127
bool IsAMDPreGCNArchitecture
Definition RHIGlobals.h:134
uint32 VendorId
Definition RHIGlobals.h:137
uint32 DeviceId
Definition RHIGlobals.h:130
FString AdapterName
Definition RHIGlobals.h:125
FString AdapterInternalDriverVersion
Definition RHIGlobals.h:126
FString AdapterDriverDate
Definition RHIGlobals.h:128
bool AdapterDriverOnDenyList
Definition RHIGlobals.h:129
uint32 DeviceRevision
Definition RHIGlobals.h:131
Definition RHIGlobals.h:418
bool SupportsClusterOps
Definition RHIGlobals.h:444
bool Supported
Definition RHIGlobals.h:423
bool SupportsPSOAdditions
Definition RHIGlobals.h:432
bool SupportsAccelerationStructureCompaction
Definition RHIGlobals.h:465
uint32 ClusterAccelerationStructureAlignment
Definition RHIGlobals.h:477
bool SupportsLooseParamsInShaderRecord
Definition RHIGlobals.h:462
uint32 ClusterAccelerationStructureTemplateAlignment
Definition RHIGlobals.h:480
bool RequiresInlineRayTracingSBT
Definition RHIGlobals.h:453
uint32 ShaderTableAlignment
Definition RHIGlobals.h:486
bool SupportsSerializeAccelerationStructure
Definition RHIGlobals.h:468
bool SupportsShaders
Definition RHIGlobals.h:429
bool SupportsPersistentSBTs
Definition RHIGlobals.h:459
bool SupportsInlineRayTracing
Definition RHIGlobals.h:450
bool RequiresSeparateHitGroupContributionsBuffer
Definition RHIGlobals.h:471
uint32 ScratchBufferAlignment
Definition RHIGlobals.h:483
bool SupportsInlinedCallbacks
Definition RHIGlobals.h:456
bool SupportsDispatchIndirect
Definition RHIGlobals.h:435
uint32 AccelerationStructureAlignment
Definition RHIGlobals.h:474
bool SupportsAMDHitToken
Definition RHIGlobals.h:447
bool SupportsAsyncRayTraceDispatch
Definition RHIGlobals.h:441
uint32 InstanceDescriptorSize
Definition RHIGlobals.h:489
bool SupportsAsyncBuildAccelerationStructure
Definition RHIGlobals.h:438
Definition RHIGlobals.h:672
Definition RHIGlobals.h:616
bool SupportsWorkGraphGraphicsDispatch
Definition RHIGlobals.h:624
bool SupportsParallel
Definition RHIGlobals.h:627
bool SupportsDispatch
Definition RHIGlobals.h:618
bool RequiresSharedBindlessParameters
Definition RHIGlobals.h:630
bool SupportsWorkGraphDispatch
Definition RHIGlobals.h:621
Definition RHIGlobals.h:549
int32 ImageTileMinWidth
Definition RHIGlobals.h:572
bool SupportsAttachment
Definition RHIGlobals.h:557
bool SupportsLargerSizes
Definition RHIGlobals.h:554
int32 ImageTileMaxHeight
Definition RHIGlobals.h:569
EVRSImageDataType ImageDataType
Definition RHIGlobals.h:578
bool SupportsPipeline
Definition RHIGlobals.h:551
EPixelFormat ImageFormat
Definition RHIGlobals.h:581
int32 ImageTileMinHeight
Definition RHIGlobals.h:575
int32 ImageTileMaxWidth
Definition RHIGlobals.h:566
bool SupportsAttachmentArrayTextures
Definition RHIGlobals.h:563
bool SupportsLateUpdate
Definition RHIGlobals.h:584
bool SupportsComplexCombinerOps
Definition RHIGlobals.h:560
Definition RHIGlobals.h:88
TRHIGlobal< uint64 > MaxViewDimensionForTypedBuffer
Definition RHIGlobals.h:312
bool SupportsBaseVertexIndex
Definition RHIGlobals.h:409
TRHIGlobal< int64 > MaxConstantBufferByteSize
Definition RHIGlobals.h:318
TRHIGlobal< int32 > MaxShadowDepthBufferSizeX
Definition RHIGlobals.h:303
bool SupportsShaderExecutionReordering
Definition RHIGlobals.h:723
bool RHIThreadNeedsKicking
Definition RHIGlobals.h:207
bool SupportsDrawIndirect
Definition RHIGlobals.h:108
bool SupportsRasterOrderViews
Definition RHIGlobals.h:607
bool NeedsSRVGraphicsNonPixelWorkaround
Definition RHIGlobals.h:741
bool SupportsNative16BitOps
Definition RHIGlobals.h:508
bool SupportsAsyncPipelinePrecompile
Definition RHIGlobals.h:661
EPixelFormat HDRDisplayOutputFormat
Definition RHIGlobals.h:589
bool NeedsExtraTransitions
Definition RHIGlobals.h:726
bool SupportsRawViewsForAnyBuffer
Definition RHIGlobals.h:333
int32 MaxTextureArrayLayers
Definition RHIGlobals.h:342
bool SupportsVolumeTextureRendering
Definition RHIGlobals.h:216
EShaderPlatform ShaderPlatformForFeatureLevel[ERHIFeatureLevel::Num]
Definition RHIGlobals.h:702
bool SupportsGPUUsage
Definition RHIGlobals.h:177
bool ParallelRHIExecuteParentWait
Definition RHIGlobals.h:531
bool SupportsParallelRenderingTasksWithSeparateRHIThread
Definition RHIGlobals.h:204
bool IsHDREnabled
Definition RHIGlobals.h:540
struct FRHIGlobals::FVariableRateShading VariableRateShading
bool SupportsWideMRT
Definition RHIGlobals.h:240
bool NeedsExtraDeletionLatency
Definition RHIGlobals.h:285
bool SupportsDX12AtomicUInt64
Definition RHIGlobals.h:198
bool SupportLinearTextureVolumeFormat
Definition RHIGlobals.h:720
bool SupportsLossyFramebufferCompression
Definition RHIGlobals.h:735
TRHIGlobal< int32 > MaxCubeTextureDimensions
Definition RHIGlobals.h:327
int32 MaxTextureSamplers
Definition RHIGlobals.h:344
int32 DrawUPIndexCheckCount
Definition RHIGlobals.h:367
bool SupportsTextureViews
Definition RHIGlobals.h:273
bool IsDebugLayerEnabled
Definition RHIGlobals.h:705
bool SupportsExactOcclusionQueries
Definition RHIGlobals.h:213
TRHIGlobal< int32 > MaxComputeDispatchDimension
Definition RHIGlobals.h:291
bool SupportsUAVFormatAliasing
Definition RHIGlobals.h:270
bool SupportsParallelRenderPasses
Definition RHIGlobals.h:525
bool SupportsFirstInstance
Definition RHIGlobals.h:412
bool SupportsMultithreadedResources
Definition RHIGlobals.h:282
bool SupportsDepthStencilResolve
Definition RHIGlobals.h:717
bool DeviceIsIntegrated
Definition RHIGlobals.h:497
bool SupportsTexture3D
Definition RHIGlobals.h:228
bool SupportsQuadBufferStereo
Definition RHIGlobals.h:102
FName PreferredPreviewShaderCodeFormat
Definition RHIGlobals.h:744
volatile uint64 StreamingTextureMemorySizeInKB
Definition RHIGlobals.h:388
bool SupportsShaderFramebufferFetchProgrammableBlending
Definition RHIGlobals.h:159
bool SupportsEfficientAsyncCompute
Definition RHIGlobals.h:258
volatile uint64 NonStreamingTextureMemorySizeInKB
Definition RHIGlobals.h:391
ERequestedGPUCrash TriggerGPUCrash
Definition RHIGlobals.h:379
int32 PersistentThreadGroupCount
Definition RHIGlobals.h:96
bool SupportsRWTextureBuffers
Definition RHIGlobals.h:330
bool NeedsShaderUnbinds
Definition RHIGlobals.h:708
bool SupportsShaderRootConstants
Definition RHIGlobals.h:613
bool SupportsConservativeRasterization
Definition RHIGlobals.h:610
bool SupportsPixelLocalStorage
Definition RHIGlobals.h:162
bool SupportsDirectGPUMemoryLock
Definition RHIGlobals.h:276
bool SupportsMultiDrawIndirect
Definition RHIGlobals.h:111
FString GPUTraceFileName
Definition RHIGlobals.h:382
bool SupportsPrimitiveShaders
Definition RHIGlobals.h:192
bool SupportsDynamicResolution
Definition RHIGlobals.h:415
int32 PoolSizeVRAMPercentage
Definition RHIGlobals.h:397
bool SupportsQuadTopology
Definition RHIGlobals.h:186
bool SupportsMobileMultiView
Definition RHIGlobals.h:234
bool SupportsRenderDepthTargetableShaderResources
Definition RHIGlobals.h:105
bool SupportsShaderWorkGraphsTier1_1
Definition RHIGlobals.h:644
bool SupportsTimestampRenderQueries
Definition RHIGlobals.h:168
bool SupportsParallelRHIExecute
Definition RHIGlobals.h:520
bool SupportsEfficientUploadOnResourceCreation
Definition RHIGlobals.h:652
bool NeedsUnatlasedCSMDepthsWorkaround
Definition RHIGlobals.h:225
bool NeedsTransientDiscardStateTracking
Definition RHIGlobals.h:729
bool UsingNullRHI
Definition RHIGlobals.h:356
bool ForceNoDeletionLatencyForStreamingTextures
Definition RHIGlobals.h:288
bool SupportsAsyncTextureStreamOut
Definition RHIGlobals.h:339
volatile uint64 BufferMemorySize
Definition RHIGlobals.h:403
bool SupportsSeparateRenderTargetBlendState
Definition RHIGlobals.h:219
bool SupportsAtomicUInt64
Definition RHIGlobals.h:195
bool SupportsParallelOcclusionQueries
Definition RHIGlobals.h:264
bool NeedsTransientDiscardOnGraphicsWorkaround
Definition RHIGlobals.h:732
TRHIGlobal< bool > SupportsRenderTargetFormat_PF_G8
Definition RHIGlobals.h:147
int32 MaximumInFlightQueries
Definition RHIGlobals.h:210
struct FRHIGlobals::FShaderBundles ShaderBundles
bool RequiresRenderTargetForPixelShaderUAVs
Definition RHIGlobals.h:267
bool SupportsExplicitFMask
Definition RHIGlobals.h:249
bool SupportsPipelineStateSortKey
Definition RHIGlobals.h:201
bool SupportsUpdateFromBufferTexture
Definition RHIGlobals.h:300
bool SupportsRHIThread
Definition RHIGlobals.h:511
bool SupportsArrayIndexFromAnyShader
Definition RHIGlobals.h:595
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool bSupportsBindless
Definition RHIGlobals.h:669
bool UseTexture3DBulkData
Definition RHIGlobals.h:231
bool ParallelRHIExecuteChildWait
Definition RHIGlobals.h:528
uint64 PresentCounter
Definition RHIGlobals.h:592
bool SupportsRHIOnTaskThread
Definition RHIGlobals.h:514
TRHIGlobal< int32 > MaxTextureDimensions
Definition RHIGlobals.h:309
bool SupportsShaderFramebufferFetch
Definition RHIGlobals.h:153
bool LazyShaderCodeLoading
Definition RHIGlobals.h:294
int32 MaxSimultaneousUAVs
Definition RHIGlobals.h:350
bool SupportsMSAADepthSampleAccess
Definition RHIGlobals.h:534
int64 TexturePoolSize
Definition RHIGlobals.h:394
TRHIGlobal< int64 > MaxComputeSharedMemory
Definition RHIGlobals.h:321
bool TriggerGPUHitchProfile
Definition RHIGlobals.h:376
bool SupportsImageExternal
Definition RHIGlobals.h:237
bool SupportsBarycentricsSemantic
Definition RHIGlobals.h:711
FVertexElementTypeSupportInfo VertexElementTypeSupport
Definition RHIGlobals.h:370
bool SupportsDualSrcBlending
Definition RHIGlobals.h:222
TRHIGlobal< uint64 > MaxViewSizeBytesForNonTypedBuffer
Definition RHIGlobals.h:315
uint64 DemotedLocalMemorySize
Definition RHIGlobals.h:400
bool SupportsShaderTimestamp
Definition RHIGlobals.h:650
bool SupportsSeparateDepthStencilCopyAccess
Definition RHIGlobals.h:336
static constexpr int32 MinGuaranteedSimultaneousUAVs
Definition RHIGlobals.h:347
bool SupportsAsyncTextureCreation
Definition RHIGlobals.h:183
bool SupportsResummarizeHTile
Definition RHIGlobals.h:252
bool SupportsStencilRefFromPixelShader
Definition RHIGlobals.h:604
TRHIGlobal< int32 > MaxVolumeTextureDimensions
Definition RHIGlobals.h:324
TRHIGlobal< int32 > MaxWorkGroupInvocations
Definition RHIGlobals.h:353
bool SupportsMeshShadersTier1
Definition RHIGlobals.h:638
bool SupportsLazyShaderCodeLoading
Definition RHIGlobals.h:297
PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport BindlessSupport
Definition RHIGlobals.h:665
volatile uint64 UniformBufferMemorySize
Definition RHIGlobals.h:406
bool SupportsMultithreading
Definition RHIGlobals.h:114
bool SupportsBindingTexArrayPerSlice
Definition RHIGlobals.h:738
bool SupportsWaveOperations
Definition RHIGlobals.h:494
struct FRHIGlobals::FGpuInfo GpuInfo
bool SupportsGPUTimestampBubblesRemoval
Definition RHIGlobals.h:171
bool SupportsShaderWorkGraphsTier1
Definition RHIGlobals.h:641
int32 MaximumWaveSize
Definition RHIGlobals.h:505
bool HardwareHiddenSurfaceRemoval
Definition RHIGlobals.h:180
bool SupportsShaderMRTFramebufferFetch
Definition RHIGlobals.h:156
bool IsRHIInitialized
Definition RHIGlobals.h:93
RHI_API ~FRHIGlobals()
bool SupportsMSAAShaderResolve
Definition RHIGlobals.h:714
int32 MaxTextureMipCount
Definition RHIGlobals.h:99
bool SupportsShaderDepthStencilFetch
Definition RHIGlobals.h:165
bool SupportsRectTopology
Definition RHIGlobals.h:189
RHI_API FRHIGlobals()
Definition RHIGlobals.cpp:57
bool SupportsPipelineFileCache
Definition RHIGlobals.h:598
int32 DrawUPVertexCheckCount
Definition RHIGlobals.h:362
bool SupportsExplicitHTile
Definition RHIGlobals.h:246
bool SupportsDepthBoundsTest
Definition RHIGlobals.h:243
bool SupportsDepthUAV
Definition RHIGlobals.h:255
FVector2f DefaultMSAASampleOffsets[1+2+4+8+16]
Definition RHIGlobals.h:658
TRHIGlobal< bool > SupportsRenderTargetFormat_PF_FloatRGBA
Definition RHIGlobals.h:150
struct FRHIGlobals::FReservedResources ReservedResources
bool SupportsVertexShaderUAVs
Definition RHIGlobals.h:144
bool SupportsMapWriteNoOverwrite
Definition RHIGlobals.h:655
bool SupportsPSOPrecaching
Definition RHIGlobals.h:601
TRHIGlobal< int32 > MaxShadowDepthBufferSizeY
Definition RHIGlobals.h:306
bool SupportsBackBufferWithCustomDepthStencil
Definition RHIGlobals.h:537
FIntVector MaxDispatchThreadGroupsPerDimension
Definition RHIGlobals.h:546
bool SupportsTextureStreaming
Definition RHIGlobals.h:385
bool SupportsMeshShadersTier0
Definition RHIGlobals.h:635
bool SupportsAsyncGetRenderQueryResult
Definition RHIGlobals.h:117
bool TriggerGPUProfile
Definition RHIGlobals.h:373
bool SupportsPixelShaderUAVs
Definition RHIGlobals.h:141
bool SupportsAsyncComputeTransientAliasing
Definition RHIGlobals.h:261
struct FRHIGlobals::FRayTracing RayTracing
bool SupportsHDROutput
Definition RHIGlobals.h:543
bool SupportsMultithreadedShaderCreation
Definition RHIGlobals.h:279
bool SupportsFrameCyclesBubblesRemoval
Definition RHIGlobals.h:174
int32 MinimumWaveSize
Definition RHIGlobals.h:504
Definition AndroidStaticFeatureLevel.inl:12
Definition Optional.h:131
constexpr OptionalType & GetValue()
Definition Optional.h:443
static const TIntVector3 ZeroValue
Definition IntVector.h:45