UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHI.cpp File Reference

Namespaces

namespace  UE
 
namespace  UE::RHI
 

Macros

#define RHIRESOURCE_NUM_FRAMES_TO_EXPIRE   3
 
#define ValidateResourceDesc(expr, format, ...)
 

Functions

 IMPLEMENT_MODULE (FDefaultModuleImpl, RHI)
 
 DEFINE_LOG_CATEGORY (LogRHI)
 
 CSV_DEFINE_CATEGORY (RHI, true)
 
 CSV_DEFINE_CATEGORY (DrawCall, true)
 
 IMPLEMENT_TYPE_LAYOUT (FRHIUniformBufferLayoutInitializer)
 
 IMPLEMENT_TYPE_LAYOUT (FRHIUniformBufferResourceInitializer)
 
uint32 GetTypeHash (const FSamplerStateInitializerRHI &Initializer)
 
bool operator== (const FSamplerStateInitializerRHI &A, const FSamplerStateInitializerRHI &B)
 
uint32 GetTypeHash (const FRasterizerStateInitializerRHI &Initializer)
 
bool operator== (const FRasterizerStateInitializerRHI &A, const FRasterizerStateInitializerRHI &B)
 
uint32 GetTypeHash (const FDepthStencilStateInitializerRHI &Initializer)
 
bool operator== (const FDepthStencilStateInitializerRHI &A, const FDepthStencilStateInitializerRHI &B)
 
uint32 GetTypeHash (const FBlendStateInitializerRHI &Initializer)
 
bool operator== (const FBlendStateInitializerRHI &A, const FBlendStateInitializerRHI &B)
 
uint32 GetTypeHash (const FBlendStateInitializerRHI::FRenderTarget &Initializer)
 
bool operator== (const FBlendStateInitializerRHI::FRenderTarget &A, const FBlendStateInitializerRHI::FRenderTarget &B)
 
bool RHIGetShaderPlatformConfigurationInt (int32 &OutSetting, FConfigCacheIni *Config, EShaderPlatform Platform, const TCHAR *SettingName)
 
bool RHIGetShaderPlatformConfigurationString (FString &OutSetting, FConfigCacheIni *Config, EShaderPlatform Platform, const TCHAR *SettingName)
 
TOptional< ERHIBindlessConfigurationRHIGetForcedBindlessConfiguration ()
 
ERHIBindlessConfiguration RHIParseBindlessConfiguration (EShaderPlatform Platform, const FString &ConfigSettingString, const FString &CVarSettingString)
 
ERHIBindlessConfiguration RHIGetRuntimeBindlessConfiguration (EShaderPlatform Platform)
 
bool IsRHIDeviceAMD ()
 
bool IsRHIDeviceIntel ()
 
bool IsRHIDeviceNVIDIA ()
 
bool IsRHIDeviceQualcomm ()
 
bool IsRHIDeviceApple ()
 
uint32 RHIGetMetalShaderLanguageVersion (const FStaticShaderPlatform Platform)
 
void RHISetMobilePreviewFeatureLevel (ERHIFeatureLevel::Type MobilePreviewFeatureLevel)
 
bool RHIGetPreviewFeatureLevel (ERHIFeatureLevel::Type &PreviewFeatureLevelOUT)
 
EPixelFormat RHIPreferredPixelFormatHint (EPixelFormat PreferredPixelFormat)
 
int32 RHIGetPreferredClearUAVRectPSResourceType (const FStaticShaderPlatform Platform)
 
RHI_API bool RHISupportsVolumeTextureRendering (const FStaticShaderPlatform Platform)
 
FRHIPanicEventRHIGetPanicDelegate ()
 
int32 CalculateMSAASampleArrayIndex (int32 NumSamples, int32 SampleIndex)
 
void RHIInitDefaultPixelFormatCapabilities ()
 
SIZE_T CalculateImageBytes (uint32 SizeX, uint32 SizeY, uint32 SizeZ, uint8 Format)
 
RHI_API bool UE::RHI::UseGPUCrashDebugging ()
 
RHI_API bool UE::RHI::ShouldEnableGPUCrashFeature (IConsoleVariable &CVar, TCHAR const *CommandLineSwitch)
 
RHI_API bool UE::RHI::UseGPUCrashBreadcrumbs ()
 
RHI_API void UE::RHI::CopySharedMips (FRHICommandList &RHICmdList, FRHITexture *SrcTexture, FRHITexture *DstTexture)
 
RHI_API void UE::RHI::CopySharedMips_AssumeSRVMaskState (FRHICommandList &RHICmdList, FRHITexture *SrcTexture, FRHITexture *DstTexture)
 

Variables

FString GRHIBindlessConfiguration = TEXT("Disabled")
 
ERHIAccess GRHIMergeableAccessMask = ERHIAccess::ReadOnlyMask | ERHIAccess::UAVMask
 
ERHIAccess GRHIMultiPipelineMergeableAccessMask = ERHIAccess::ReadOnlyExclusiveMask
 
ERHIAccess GRHIMultiSubresourceDiscardIntermediateAccess = ERHIAccess::SRVCompute
 
EShaderPlatform GMaxRHIShaderPlatform = SP_PCD3D_SM5
 
ERHIFeatureLevel::Type GMaxRHIFeatureLevel = ERHIFeatureLevel::SM5
 

Macro Definition Documentation

◆ RHIRESOURCE_NUM_FRAMES_TO_EXPIRE

#define RHIRESOURCE_NUM_FRAMES_TO_EXPIRE   3

◆ ValidateResourceDesc

#define ValidateResourceDesc (   expr,
  format,
  ... 
)
Value:
if (bFatal) \
{ \
checkf(expr, format, ##__VA_ARGS__); \
} \
else if (!(expr)) \
{ \
return false;\
} \
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

Function Documentation

◆ CalculateImageBytes()

SIZE_T CalculateImageBytes ( uint32  SizeX,
uint32  SizeY,
uint32  SizeZ,
uint8  Format 
)

Returns the memory required to store an image in the given pixel format (EPixelFormat). Use GPixelFormats[Format].Get2D/3DImageSizeInBytes instead, unless you need PF_A1.

◆ CalculateMSAASampleArrayIndex()

int32 CalculateMSAASampleArrayIndex ( int32  NumSamples,
int32  SampleIndex 
)

◆ CSV_DEFINE_CATEGORY() [1/2]

CSV_DEFINE_CATEGORY ( DrawCall  ,
true   
)

◆ CSV_DEFINE_CATEGORY() [2/2]

CSV_DEFINE_CATEGORY ( RHI  ,
true   
)

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogRHI  )

RHI Logging.

◆ GetTypeHash() [1/5]

uint32 GetTypeHash ( const FBlendStateInitializerRHI Initializer)

◆ GetTypeHash() [2/5]

uint32 GetTypeHash ( const FBlendStateInitializerRHI::FRenderTarget Initializer)

◆ GetTypeHash() [3/5]

uint32 GetTypeHash ( const FDepthStencilStateInitializerRHI Initializer)

◆ GetTypeHash() [4/5]

uint32 GetTypeHash ( const FRasterizerStateInitializerRHI Initializer)

◆ GetTypeHash() [5/5]

uint32 GetTypeHash ( const FSamplerStateInitializerRHI Initializer)

◆ IMPLEMENT_MODULE()

IMPLEMENT_MODULE ( FDefaultModuleImpl  ,
RHI   
)

◆ IMPLEMENT_TYPE_LAYOUT() [1/2]

IMPLEMENT_TYPE_LAYOUT ( FRHIUniformBufferLayoutInitializer  )

◆ IMPLEMENT_TYPE_LAYOUT() [2/2]

IMPLEMENT_TYPE_LAYOUT ( FRHIUniformBufferResourceInitializer  )

◆ IsRHIDeviceAMD()

bool IsRHIDeviceAMD ( )

RHI configuration settings. RHI capabilities.

◆ IsRHIDeviceApple()

bool IsRHIDeviceApple ( )

◆ IsRHIDeviceIntel()

bool IsRHIDeviceIntel ( )

◆ IsRHIDeviceNVIDIA()

bool IsRHIDeviceNVIDIA ( )

◆ IsRHIDeviceQualcomm()

bool IsRHIDeviceQualcomm ( )

◆ operator==() [1/5]

bool operator== ( const FBlendStateInitializerRHI A,
const FBlendStateInitializerRHI B 
)

◆ operator==() [2/5]

◆ operator==() [3/5]

bool operator== ( const FDepthStencilStateInitializerRHI A,
const FDepthStencilStateInitializerRHI B 
)

◆ operator==() [4/5]

bool operator== ( const FRasterizerStateInitializerRHI A,
const FRasterizerStateInitializerRHI B 
)

◆ operator==() [5/5]

bool operator== ( const FSamplerStateInitializerRHI A,
const FSamplerStateInitializerRHI B 
)

◆ RHIGetForcedBindlessConfiguration()

TOptional< ERHIBindlessConfiguration > RHIGetForcedBindlessConfiguration ( )

◆ RHIGetMetalShaderLanguageVersion()

uint32 RHIGetMetalShaderLanguageVersion ( const FStaticShaderPlatform  Platform)

◆ RHIGetPanicDelegate()

FRHIPanicEvent & RHIGetPanicDelegate ( )

◆ RHIGetPreferredClearUAVRectPSResourceType()

int32 RHIGetPreferredClearUAVRectPSResourceType ( const FStaticShaderPlatform  Platform)

◆ RHIGetPreviewFeatureLevel()

bool RHIGetPreviewFeatureLevel ( ERHIFeatureLevel::Type PreviewFeatureLevelOUT)

◆ RHIGetRuntimeBindlessConfiguration()

ERHIBindlessConfiguration RHIGetRuntimeBindlessConfiguration ( EShaderPlatform  Platform)

◆ RHIGetShaderPlatformConfigurationInt()

bool RHIGetShaderPlatformConfigurationInt ( int32 OutSetting,
FConfigCacheIni Config,
EShaderPlatform  Platform,
const TCHAR SettingName 
)

◆ RHIGetShaderPlatformConfigurationString()

bool RHIGetShaderPlatformConfigurationString ( FString &  OutSetting,
FConfigCacheIni Config,
EShaderPlatform  Platform,
const TCHAR SettingName 
)

◆ RHIInitDefaultPixelFormatCapabilities()

void RHIInitDefaultPixelFormatCapabilities ( )

Initialize the 'best guess' pixel format capabilities. Platform formats and support must be filled out before calling this.

◆ RHIParseBindlessConfiguration()

ERHIBindlessConfiguration RHIParseBindlessConfiguration ( EShaderPlatform  Platform,
const FString &  ConfigSettingString,
const FString &  CVarSettingString 
)

◆ RHIPreferredPixelFormatHint()

EPixelFormat RHIPreferredPixelFormatHint ( EPixelFormat  PreferredPixelFormat)

◆ RHISetMobilePreviewFeatureLevel()

void RHISetMobilePreviewFeatureLevel ( ERHIFeatureLevel::Type  MobilePreviewFeatureLevel)

Set runtime selection of mobile feature level preview.

◆ RHISupportsVolumeTextureRendering()

RHI_API bool RHISupportsVolumeTextureRendering ( const FStaticShaderPlatform  Platform)

Variable Documentation

◆ GMaxRHIFeatureLevel

The maximum feature level supported on this machine

◆ GMaxRHIShaderPlatform

EShaderPlatform GMaxRHIShaderPlatform = SP_PCD3D_SM5

◆ GRHIBindlessConfiguration

FString GRHIBindlessConfiguration = TEXT("Disabled")

◆ GRHIMergeableAccessMask

Mask of states which are allowed to be considered for state merging.

◆ GRHIMultiPipelineMergeableAccessMask

ERHIAccess GRHIMultiPipelineMergeableAccessMask = ERHIAccess::ReadOnlyExclusiveMask

Mask of states which are allowed to be considered for multi-pipeline state merging. This should be a subset of GRHIMergeableAccessMask.

◆ GRHIMultiSubresourceDiscardIntermediateAccess

ERHIAccess GRHIMultiSubresourceDiscardIntermediateAccess = ERHIAccess::SRVCompute

[NeedsTransientDiscardStateTracking] State to use as an intermediate state when transitioning to discard and the resource has differing prior states per subresource.