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

Go to the source code of this file.

Classes

struct  FRHIFlipDetails
 
struct  FShaderResourceViewInitializer
 
struct  FRawBufferShaderResourceViewInitializer
 
class  FDefaultRHIRenderQueryPool
 
struct  FRHICalcTextureSizeResult
 
struct  FRHILockedTextureDesc
 
struct  FRHILockTextureArgs
 
struct  FRHILockTextureResult
 
class  FDynamicRHI
 
struct  FDynamicRHI::FRHIEndFrameArgs
 
struct  FDynamicRHI::FRHIFinalizeContextArgs
 
struct  FDynamicRHI::FRHISubmitCommandListsArgs
 
class  FDynamicRHIPSOFallback
 
struct  FRHIGPUUsageFractions
 
class  IDynamicRHIModule
 
struct  FScopedRHIThreadOwnership
 

Typedefs

typedef TArray< FScreenResolutionRHIFScreenResolutionArray
 
using FDisplayInformationArray = TArray< FDisplayInformation >
 
typedef FRHIGPUUsageFractions(* RHIGetGPUUsageType) (uint32)
 

Functions

ERHIInterfaceType RHIGetInterfaceType ()
 
template<typename TRHI >
TRHICastDynamicRHI (FDynamicRHI *InDynamicRHI)
 
template<typename TRHI >
TRHIGetDynamicRHI ()
 
FPixelShaderRHIRef RHICreatePixelShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FVertexShaderRHIRef RHICreateVertexShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FMeshShaderRHIRef RHICreateMeshShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FAmplificationShaderRHIRef RHICreateAmplificationShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FGeometryShaderRHIRef RHICreateGeometryShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FComputeShaderRHIRef RHICreateComputeShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
FWorkGraphShaderRHIRef RHICreateWorkGraphShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
FGPUFenceRHIRef RHICreateGPUFence (const FName &Name)
 
FStagingBufferRHIRef RHICreateStagingBuffer ()
 
FSamplerStateRHIRef RHICreateSamplerState (const FSamplerStateInitializerRHI &Initializer)
 
FRasterizerStateRHIRef RHICreateRasterizerState (const FRasterizerStateInitializerRHI &Initializer)
 
FDepthStencilStateRHIRef RHICreateDepthStencilState (const FDepthStencilStateInitializerRHI &Initializer)
 
FBlendStateRHIRef RHICreateBlendState (const FBlendStateInitializerRHI &Initializer)
 
FBoundShaderStateRHIRef RHICreateBoundShaderState (FRHIVertexDeclaration *VertexDeclaration, FRHIVertexShader *VertexShader, FRHIPixelShader *PixelShader, FRHIGeometryShader *GeometryShader)
 
FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer)
 
FVertexDeclarationRHIRef RHICreateVertexDeclaration (const FVertexDeclarationElementList &Elements)
 
FComputePipelineStateRHIRef RHICreateComputePipelineState (FRHIComputeShader *ComputeShader)
 
FComputePipelineStateRHIRef RHICreateComputePipelineState (const FComputePipelineStateInitializer &Initializer)
 
TRefCountPtr< FRHIWorkGraphPipelineStateRHICreateWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer)
 
FRenderQueryRHIRef RHICreateRenderQuery (ERenderQueryType QueryType)
 
TRefCountPtr< FRHIRayTracingPipelineStateRHICreateRayTracingPipelineState (const FRayTracingPipelineStateInitializer &Initializer)
 
FUniformBufferLayoutRHIRef RHICreateUniformBufferLayout (const FRHIUniformBufferLayoutInitializer &Initializer)
 
FUniformBufferRHIRef RHICreateUniformBuffer (const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation=EUniformBufferValidation::ValidateResources)
 
FRHICalcTextureSizeResult RHICalcTexturePlatformSize (FRHITextureDesc const &Desc, uint32 FirstMipIndex=0)
 
uint64 RHIGetMinimumAlignmentForBufferBackedSRV (EPixelFormat Format)
 
void RHIGetTextureMemoryStats (FTextureMemoryStats &OutStats)
 
uint32 RHIComputeMemorySize (FRHITexture *TextureRHI)
 
bool RHIGetRenderQueryResult (FRHIRenderQuery *RenderQuery, uint64 &OutResult, bool bWait, uint32 GPUIndex=INDEX_NONE)
 
uint32 RHIGetViewportNextPresentGPUIndex (FRHIViewport *Viewport)
 
FTextureRHIRef RHIGetViewportBackBuffer (FRHIViewport *Viewport)
 
FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV (FRHIViewport *Viewport)
 
 UE_DEPRECATED (5.7, "RHIGetHTilePlatformConfig(uint32,uint32) has been deprecated. Please use RHIGetHTilePlatformConfig(const FRHITextureDesc&) instead.") inline uint32 RHIGetHTilePlatformConfig(uint32 DepthWidth
 
uint32 RHIGetHTilePlatformConfig (const FRHITextureDesc &DepthDesc)
 
void RHIAdvanceFrameForGetViewportBackBuffer (FRHIViewport *Viewport)
 
RHI_API uint32 RHIGetGPUFrameCycles (uint32 GPUIndex=0)
 
FViewportRHIRef RHICreateViewport (void *WindowHandle, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat)
 
void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat)
 
EColorSpaceAndEOTF RHIGetColorSpace (FRHIViewport *Viewport)
 
void RHICheckViewportHDRStatus (FRHIViewport *Viewport)
 
void RHIHandleDisplayChange ()
 
void RHITick (float DeltaTime)
 
void RHIBeginSuspendRendering ()
 
void RHISuspendRendering ()
 
void RHIResumeRendering ()
 
bool RHIGetAvailableResolutions (FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate)
 
void RHIGetSupportedResolution (uint32 &Width, uint32 &Height)
 
class IRHICommandContextRHIGetDefaultContext ()
 
RHI_API FRenderQueryPoolRHIRef RHICreateRenderQueryPool (ERenderQueryType QueryType, uint32 NumQueries=UINT32_MAX)
 
RHI_API FRHITransitionRHICreateTransition (const FRHITransitionCreateInfo &CreateInfo)
 
void RHIReleaseTransition (FRHITransition *Transition)
 
IRHITransientResourceAllocatorRHICreateTransientResourceAllocator ()
 
void RHIGetDisplaysInformation (FDisplayInformationArray &OutDisplayInformation)
 
uint64 RHIComputeStatePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer)
 
uint64 RHIComputePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer)
 
bool RHIMatchPrecachePSOInitializers (const FGraphicsPipelineStateInitializer &LHS, const FGraphicsPipelineStateInitializer &RHS)
 
FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize (const FRayTracingSceneInitializer &Initializer)
 
FRayTracingSceneRHIRef RHICreateRayTracingScene (FRayTracingSceneInitializer Initializer)
 
FRayTracingShaderRHIRef RHICreateRayTracingShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
FShaderBundleRHIRef RHICreateShaderBundle (const FShaderBundleCreateInfo &CreateInfo)
 
void appDefragmentTexturePool ()
 
bool appIsPoolTexture (FRHITexture *TextureRHI)
 
void appDumpTextureMemoryStats (const TCHAR *)
 
FDynamicRHIPlatformCreateDynamicRHI ()
 
RHI_API const TCHARGetSelectedDynamicRHIModuleName (bool bCleanup=true)
 

Variables

RHI_API FDynamicRHIGDynamicRHI
 
uint32 DepthHeight
 
RHI_API RHIGetGPUUsageType RHIGetGPUUsage
 
RHI_API bool GDynamicRHIFailedToInitializeAdvancedPlatform
 

Typedef Documentation

◆ FDisplayInformationArray

◆ FScreenResolutionArray

◆ RHIGetGPUUsageType

typedef FRHIGPUUsageFractions(* RHIGetGPUUsageType) (uint32)

Get how much the GPU is getting used.

Requires GRHISupportsGPUUsage=true before use.

Function Documentation

◆ appDefragmentTexturePool()

void appDefragmentTexturePool ( )
inline

Defragment the texture pool.

◆ appDumpTextureMemoryStats()

void appDumpTextureMemoryStats ( const TCHAR )
inline

Log the current texture memory stats.

Parameters
MessageThis text will be included in the log

◆ appIsPoolTexture()

bool appIsPoolTexture ( FRHITexture TextureRHI)
inline

Checks if the texture data is allocated within the texture pool or not.

◆ CastDynamicRHI()

template<typename TRHI >
TRHI * CastDynamicRHI ( FDynamicRHI InDynamicRHI)
inline

◆ GetDynamicRHI()

template<typename TRHI >
TRHI * GetDynamicRHI ( )
inline

◆ GetSelectedDynamicRHIModuleName()

RHI_API const TCHAR * GetSelectedDynamicRHIModuleName ( bool  bCleanup = true)
extern

◆ PlatformCreateDynamicRHI()

FDynamicRHI * PlatformCreateDynamicRHI ( )

Each platform that utilizes dynamic RHIs should implement this function Called to create the instance of the dynamic RHI.

◆ RHIAdvanceFrameForGetViewportBackBuffer()

void RHIAdvanceFrameForGetViewportBackBuffer ( FRHIViewport Viewport)
inline

◆ RHIBeginSuspendRendering()

void RHIBeginSuspendRendering ( )
inline

◆ RHICalcRayTracingSceneSize()

FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize ( const FRayTracingSceneInitializer Initializer)
inline

◆ RHICalcTexturePlatformSize()

FRHICalcTextureSizeResult RHICalcTexturePlatformSize ( FRHITextureDesc const &  Desc,
uint32  FirstMipIndex = 0 
)
inline

◆ RHICheckViewportHDRStatus()

void RHICheckViewportHDRStatus ( FRHIViewport Viewport)
inline

◆ RHIComputeMemorySize()

uint32 RHIComputeMemorySize ( FRHITexture TextureRHI)
inline

◆ RHIComputePrecachePSOHash()

uint64 RHIComputePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
inline

◆ RHIComputeStatePrecachePSOHash()

uint64 RHIComputeStatePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
inline

◆ RHICreateAmplificationShader()

FAmplificationShaderRHIRef RHICreateAmplificationShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreateBlendState()

FBlendStateRHIRef RHICreateBlendState ( const FBlendStateInitializerRHI Initializer)
inline

◆ RHICreateBoundShaderState()

FBoundShaderStateRHIRef RHICreateBoundShaderState ( FRHIVertexDeclaration VertexDeclaration,
FRHIVertexShader VertexShader,
FRHIPixelShader PixelShader,
FRHIGeometryShader GeometryShader 
)
inline

◆ RHICreateComputePipelineState() [1/2]

FComputePipelineStateRHIRef RHICreateComputePipelineState ( const FComputePipelineStateInitializer Initializer)
inline

◆ RHICreateComputePipelineState() [2/2]

FComputePipelineStateRHIRef RHICreateComputePipelineState ( FRHIComputeShader ComputeShader)
inline

◆ RHICreateComputeShader()

FComputeShaderRHIRef RHICreateComputeShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreateDepthStencilState()

FDepthStencilStateRHIRef RHICreateDepthStencilState ( const FDepthStencilStateInitializerRHI Initializer)
inline

◆ RHICreateGeometryShader()

FGeometryShaderRHIRef RHICreateGeometryShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreateGPUFence()

FGPUFenceRHIRef RHICreateGPUFence ( const FName Name)
inline

◆ RHICreateGraphicsPipelineState()

FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState ( const FGraphicsPipelineStateInitializer Initializer)
inline

Before using this directly go through PipelineStateCache::GetAndOrCreateGraphicsPipelineState()

◆ RHICreateMeshShader()

FMeshShaderRHIRef RHICreateMeshShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreatePixelShader()

FPixelShaderRHIRef RHICreatePixelShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreateRasterizerState()

FRasterizerStateRHIRef RHICreateRasterizerState ( const FRasterizerStateInitializerRHI Initializer)
inline

◆ RHICreateRayTracingPipelineState()

TRefCountPtr< FRHIRayTracingPipelineState > RHICreateRayTracingPipelineState ( const FRayTracingPipelineStateInitializer Initializer)
inline

◆ RHICreateRayTracingScene()

FRayTracingSceneRHIRef RHICreateRayTracingScene ( FRayTracingSceneInitializer  Initializer)
inline

◆ RHICreateRayTracingShader()

FRayTracingShaderRHIRef RHICreateRayTracingShader ( TArrayView< const uint8 Code,
const FSHAHash Hash,
EShaderFrequency  ShaderFrequency 
)
inline

◆ RHICreateRenderQuery()

FRenderQueryRHIRef RHICreateRenderQuery ( ERenderQueryType  QueryType)
inline

◆ RHICreateRenderQueryPool()

RHI_API FRenderQueryPoolRHIRef RHICreateRenderQueryPool ( ERenderQueryType  QueryType,
uint32  NumQueries = UINT32_MAX 
)

◆ RHICreateSamplerState()

FSamplerStateRHIRef RHICreateSamplerState ( const FSamplerStateInitializerRHI Initializer)
inline

◆ RHICreateShaderBundle()

FShaderBundleRHIRef RHICreateShaderBundle ( const FShaderBundleCreateInfo CreateInfo)
inline

◆ RHICreateStagingBuffer()

FStagingBufferRHIRef RHICreateStagingBuffer ( )
inline

◆ RHICreateTransientResourceAllocator()

IRHITransientResourceAllocator * RHICreateTransientResourceAllocator ( )
inline

◆ RHICreateTransition()

RHI_API FRHITransition * RHICreateTransition ( const FRHITransitionCreateInfo CreateInfo)

◆ RHICreateUniformBuffer()

FUniformBufferRHIRef RHICreateUniformBuffer ( const void Contents,
const FRHIUniformBufferLayout Layout,
EUniformBufferUsage  Usage,
EUniformBufferValidation  Validation = EUniformBufferValidation::ValidateResources 
)
inline

◆ RHICreateUniformBufferLayout()

FUniformBufferLayoutRHIRef RHICreateUniformBufferLayout ( const FRHIUniformBufferLayoutInitializer Initializer)
inline

◆ RHICreateVertexDeclaration()

FVertexDeclarationRHIRef RHICreateVertexDeclaration ( const FVertexDeclarationElementList Elements)
inline

Before using this directly go through PipelineStateCache::GetOrCreateVertexDeclaration()

◆ RHICreateVertexShader()

FVertexShaderRHIRef RHICreateVertexShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
inline

◆ RHICreateViewport()

FViewportRHIRef RHICreateViewport ( void WindowHandle,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
inline

◆ RHICreateWorkGraphPipelineState()

TRefCountPtr< FRHIWorkGraphPipelineState > RHICreateWorkGraphPipelineState ( const FWorkGraphPipelineStateInitializer Initializer)
inline

◆ RHICreateWorkGraphShader()

FWorkGraphShaderRHIRef RHICreateWorkGraphShader ( TArrayView< const uint8 Code,
const FSHAHash Hash,
EShaderFrequency  ShaderFrequency 
)
inline

◆ RHIGetAvailableResolutions()

bool RHIGetAvailableResolutions ( FScreenResolutionArray Resolutions,
bool  bIgnoreRefreshRate 
)
inline

◆ RHIGetColorSpace()

EColorSpaceAndEOTF RHIGetColorSpace ( FRHIViewport Viewport)
inline

◆ RHIGetDefaultContext()

class IRHICommandContext * RHIGetDefaultContext ( )
inline

◆ RHIGetDisplaysInformation()

void RHIGetDisplaysInformation ( FDisplayInformationArray OutDisplayInformation)
inline

◆ RHIGetGPUFrameCycles()

RHI_API uint32 RHIGetGPUFrameCycles ( uint32  GPUIndex = 0)

◆ RHIGetHTilePlatformConfig()

uint32 RHIGetHTilePlatformConfig ( const FRHITextureDesc DepthDesc)
inline

◆ RHIGetInterfaceType()

ERHIInterfaceType RHIGetInterfaceType ( )
inline

◆ RHIGetMinimumAlignmentForBufferBackedSRV()

uint64 RHIGetMinimumAlignmentForBufferBackedSRV ( EPixelFormat  Format)
inline

◆ RHIGetRenderQueryResult()

bool RHIGetRenderQueryResult ( FRHIRenderQuery RenderQuery,
uint64 OutResult,
bool  bWait,
uint32  GPUIndex = INDEX_NONE 
)
inline

◆ RHIGetSupportedResolution()

void RHIGetSupportedResolution ( uint32 Width,
uint32 Height 
)
inline

◆ RHIGetTextureMemoryStats()

void RHIGetTextureMemoryStats ( FTextureMemoryStats OutStats)
inline

◆ RHIGetViewportBackBuffer()

FTextureRHIRef RHIGetViewportBackBuffer ( FRHIViewport Viewport)
inline

◆ RHIGetViewportBackBufferUAV()

FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV ( FRHIViewport Viewport)
inline

◆ RHIGetViewportNextPresentGPUIndex()

uint32 RHIGetViewportNextPresentGPUIndex ( FRHIViewport Viewport)
inline

◆ RHIHandleDisplayChange()

void RHIHandleDisplayChange ( )
inline

◆ RHIMatchPrecachePSOInitializers()

bool RHIMatchPrecachePSOInitializers ( const FGraphicsPipelineStateInitializer LHS,
const FGraphicsPipelineStateInitializer RHS 
)
inline

◆ RHIReleaseTransition()

void RHIReleaseTransition ( FRHITransition Transition)
inline

◆ RHIResizeViewport()

void RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
inline

◆ RHIResumeRendering()

void RHIResumeRendering ( )
inline

◆ RHISuspendRendering()

void RHISuspendRendering ( )
inline

◆ RHITick()

void RHITick ( float  DeltaTime)
inline

◆ UE_DEPRECATED()

UE_DEPRECATED ( 5.  7,
"RHIGetHTilePlatformConfig(uint32,uint32) has been deprecated. Please use RHIGetHTilePlatformConfig(const FRHITextureDesc&) instead."   
)

Variable Documentation

◆ DepthHeight

uint32 DepthHeight
Initial value:
{
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 DepthHeight
Definition DynamicRHI.h:1286
RHI_API FDynamicRHI * GDynamicRHI
Definition DynamicRHI.cpp:35
virtual uint32 RHIGetHTilePlatformConfig(uint32 DepthWidth, uint32 DepthHeight) const
Definition DynamicRHI.h:674

◆ GDynamicRHI

RHI_API FDynamicRHI* GDynamicRHI
extern

A global pointer to the dynamically bound RHI implementation.

◆ GDynamicRHIFailedToInitializeAdvancedPlatform

RHI_API bool GDynamicRHIFailedToInitializeAdvancedPlatform
extern

◆ RHIGetGPUUsage

RHI_API RHIGetGPUUsageType RHIGetGPUUsage
extern