UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ID3D12DynamicRHI.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "D3D12ThirdParty.h"
6#include "RHI.h"
8
14
16{
17 Graphics = 0,
18 Copy,
19};
20
22{
24
26 virtual bool RHIIsPixEnabled() const = 0;
27
33
37
41 virtual bool RHIIsResourcePlaced(FRHIBuffer* InBuffer) const = 0;
45 virtual bool RHIIsResourcePlaced(FRHITexture* InTexture) const = 0;
46
47 virtual D3D12_CPU_DESCRIPTOR_HANDLE RHIGetRenderTargetView(FRHITexture* InTexture, int32 InMipIndex = 0, int32 InArraySliceIndex = 0) const = 0;
48
50
51 UE_DEPRECATED (5.6, "RHITransitionResource without explicit Before and After states is deprecated. Please call RHICmdList.Transition() using ERHIAccess states to issue the transition, ERHIAccess::Unknown as Before state is supported.")
53
56
57 virtual void RHIVerifyResult(ID3D12Device* Device, HRESULT Result, const ANSICHAR* Code, const ANSICHAR* Filename, uint32 Line, FString Message = FString()) const = 0;
58
60
63};
64
69
75
76#if D3D12RHI_PLATFORM_HAS_CUSTOM_INTERFACE
77 #include "ID3D12PlatformDynamicRHI.h"
78#else
80
86#endif
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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::ANSICHAR ANSICHAR
An ANSI character. Normally a signed type.
Definition Platform.h:1131
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
FDynamicRHI * GDynamicRHI
Definition DynamicRHI.cpp:35
bool IsRHID3D12()
Definition ID3D12DynamicRHI.h:65
ID3D12PlatformDynamicRHI * GetID3D12PlatformDynamicRHI()
Definition ID3D12DynamicRHI.h:81
ID3D12DynamicRHI * GetID3D12DynamicRHI()
Definition ID3D12DynamicRHI.h:70
ED3D12RHIRunOnQueueType
Definition ID3D12DynamicRHI.h:16
EPixelFormat
Definition PixelFormat.h:16
ERHIInterfaceType
Definition RHIDefinitions.h:157
ETextureCreateFlags
Definition RHIDefinitions.h:1091
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition DynamicRHI.h:206
virtual ERHIInterfaceType GetInterfaceType() const
Definition DynamicRHI.h:224
Definition RHIResources.h:1581
Definition RHICommandList.h:455
Definition RHICommandList.h:3819
Definition RHIResources.h:54
Definition RHIResources.h:2153
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition RHIResources.h:246
Definition ID3D12DynamicRHI.h:10
uint32 NumDeviceNodes
Definition ID3D12DynamicRHI.h:12
DXGI_ADAPTER_DESC Desc
Definition ID3D12DynamicRHI.h:11
Definition ID3D12DynamicRHI.h:22
virtual uint32 RHIGetResourceDeviceIndex(FRHITexture *InTexture) const =0
virtual bool RHIIsResourcePlaced(FRHITexture *InTexture) const =0
virtual FTextureRHIRef RHICreateTextureCubeFromResource(EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D12Resource *Resource)=0
virtual void RHIFlushResourceBarriers(FRHICommandListBase &RHICmdList, uint32 InGPUIndex)=0
virtual void RHIWaitManualFence(FRHICommandList &RHICmdList, ID3D12Fence *Fence, uint64 Value)=0
virtual FTextureRHIRef RHICreateTexture2DArrayFromResource(EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D12Resource *Resource)=0
virtual void RHISignalManualFence(FRHICommandList &RHICmdList, ID3D12Fence *Fence, uint64 Value)=0
virtual void RHIUpdateResourceResidency(FRHICommandListBase &RHICmdList, uint32 InGPUIndex, FRHIResource *InResource)=0
virtual void RHITransitionResource(FRHICommandList &RHICmdList, FRHITexture *InTexture, D3D12_RESOURCE_STATES InState, uint32 InSubResource)=0
virtual ERHIInterfaceType GetInterfaceType() const override final
Definition ID3D12DynamicRHI.h:23
virtual void RHIFinishExternalComputeWork(FRHICommandListBase &ExecutingCmdList, uint32 InDeviceIndex, ID3D12GraphicsCommandList *InCommandList)=0
virtual uint32 RHIGetResourceDeviceIndex(FRHIBuffer *InBuffer) const =0
virtual int64 RHIGetResourceMemorySize(FRHITexture *InTexture) const =0
virtual FTextureRHIRef RHICreateTexture2DFromResource(EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D12Resource *Resource)=0
virtual uint32 RHIGetDeviceNodeMask(uint32 InIndex) const =0
virtual bool RHIIsResourcePlaced(FRHIBuffer *InBuffer) const =0
virtual void RHIVerifyResult(ID3D12Device *Device, HRESULT Result, const ANSICHAR *Code, const ANSICHAR *Filename, uint32 Line, FString Message=FString()) const =0
virtual D3D12_CPU_DESCRIPTOR_HANDLE RHIGetRenderTargetView(FRHITexture *InTexture, int32 InMipIndex=0, int32 InArraySliceIndex=0) const =0
virtual bool RHIIsPixEnabled() const =0
virtual ID3D12Resource * RHIGetResource(FRHIBuffer *InBuffer) const =0
virtual ID3D12GraphicsCommandList * RHIGetGraphicsCommandList(FRHICommandListBase &ExecutingCmdList, uint32 InDeviceIndex) const =0
virtual void RHIRunOnQueue(ED3D12RHIRunOnQueueType QueueType, TFunction< void(ID3D12CommandQueue *)> &&CodeToRun, bool bWaitForSubmission)=0
virtual int64 RHIGetResourceMemorySize(FRHIBuffer *InBuffer) const =0
virtual ID3D12Resource * RHIGetResource(FRHITexture *InTexture) const =0
virtual DXGI_FORMAT RHIGetSwapChainFormat(EPixelFormat InFormat) const =0
virtual ID3D12CommandQueue * RHIGetCommandQueue() const =0
virtual TArray< FD3D12MinimalAdapterDesc > RHIGetAdapterDescs() const =0
virtual ID3D12Device * RHIGetDevice(uint32 InIndex) const =0