UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FD3D11DynamicRHI Class Reference

#include <D3D11RHIPrivate.h>

+ Inheritance diagram for FD3D11DynamicRHI:

Classes

struct  FProfiler
 
struct  FTimestampCalibration
 

Public Types

typedef TMap< FD3D11LockedKey, FD3D11LockedDataFD3D11LockTracker
 
- Public Types inherited from FDynamicRHI
using FRHICalcTextureSizeResult = ::FRHICalcTextureSizeResult
 

Public Member Functions

D3D11RHI_API FD3D11DynamicRHI (IDXGIFactory1 *InDXGIFactory1, D3D_FEATURE_LEVEL InFeatureLevel, const FD3D11Adapter &InAdapter)
 
virtual D3D11RHI_API ~FD3D11DynamicRHI ()
 
virtual D3D11RHI_API void InitD3DDevice ()
 
virtual D3D11RHI_API void Init () override
 
virtual D3D11RHI_API void Shutdown () override
 
virtual const TCHARGetName () override
 
virtual D3D11RHI_API void FlushPendingLogs () override
 
template<EShaderFrequency ShaderFrequency>
void BindUniformBuffer (uint32 BufferIndex, FRHIUniformBuffer *BufferRHI)
 
template<typename TRHIShader >
void ApplyStaticUniformBuffers (TRHIShader *Shader)
 
template<EShaderFrequency ShaderFrequency>
void SetShaderParametersCommon (FD3D11ConstantBuffer *StageConstantBuffer, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters)
 
template<EShaderFrequency ShaderFrequency>
void SetShaderUnbindsCommon (TConstArrayView< FRHIShaderParameterUnbind > InUnbinds)
 
D3D11RHI_API bool GetQueryData (ID3D11Query *Query, void *Data, SIZE_T DataSize, bool bTimestamp, bool bWait, bool bStallRHIThread)
 
virtual D3D11RHI_API FSamplerStateRHIRef RHICreateSamplerState (const FSamplerStateInitializerRHI &Initializer) final override
 
virtual D3D11RHI_API FRasterizerStateRHIRef RHICreateRasterizerState (const FRasterizerStateInitializerRHI &Initializer) final override
 
virtual D3D11RHI_API FDepthStencilStateRHIRef RHICreateDepthStencilState (const FDepthStencilStateInitializerRHI &Initializer) final override
 
virtual D3D11RHI_API FBlendStateRHIRef RHICreateBlendState (const FBlendStateInitializerRHI &Initializer) final override
 
virtual D3D11RHI_API FVertexDeclarationRHIRef RHICreateVertexDeclaration (const FVertexDeclarationElementList &Elements) final override
 
virtual D3D11RHI_API FPixelShaderRHIRef RHICreatePixelShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual D3D11RHI_API FVertexShaderRHIRef RHICreateVertexShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual D3D11RHI_API FGeometryShaderRHIRef RHICreateGeometryShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual D3D11RHI_API FComputeShaderRHIRef RHICreateComputeShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual D3D11RHI_API FStagingBufferRHIRef RHICreateStagingBuffer () final override
 
virtual D3D11RHI_API void RHICopyToStagingBuffer (FRHIBuffer *SourceBuffer, FRHIStagingBuffer *DestinationStagingBuffer, uint32 Offset, uint32 NumBytes) final override
 
virtual D3D11RHI_API FGPUFenceRHIRef RHICreateGPUFence (const FName &Name) final override
 
virtual D3D11RHI_API void RHIWriteGPUFence_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIGPUFence *FenceRHI) final override
 
virtual D3D11RHI_API void RHIWriteGPUFence (FRHIGPUFence *Fence) final override
 
virtual D3D11RHI_API voidRHILockStagingBuffer (FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI) final override
 
virtual D3D11RHI_API void RHIUnlockStagingBuffer (FRHIStagingBuffer *StagingBuffer) final override
 
virtual D3D11RHI_API FBoundShaderStateRHIRef RHICreateBoundShaderState (FRHIVertexDeclaration *VertexDeclaration, FRHIVertexShader *VertexShader, FRHIPixelShader *PixelShader, FRHIGeometryShader *GeometryShader) final override
 
virtual D3D11RHI_API FUniformBufferRHIRef RHICreateUniformBuffer (const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation) final override
 
virtual D3D11RHI_API void RHIUpdateUniformBuffer (FRHICommandListBase &RHICmdList, FRHIUniformBuffer *UniformBufferRHI, const void *Contents) final override
 
D3D11RHI_API FD3D11BufferBeginCreateBufferInternal (const FRHIBufferCreateDesc &CreateDesc)
 
D3D11RHI_API void FinalizeCreateBufferInternal (FD3D11Buffer *Buffer, TConstArrayView< uint8 > InitialData)
 
D3D11RHI_API FD3D11BufferCreateBufferInternal (const FRHIBufferCreateDesc &CreateDesc, TConstArrayView< uint8 > InitialData)
 
virtual D3D11RHI_API FRHIBufferInitializer RHICreateBufferInitializer (FRHICommandListBase &RHICmdList, const FRHIBufferCreateDesc &CreateDesc) final override
 
virtual D3D11RHI_API void RHIReplaceResources (FRHICommandListBase &RHICmdList, TArray< FRHIResourceReplaceInfo > &&ReplaceInfos) final override
 
virtual D3D11RHI_API voidLockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode) final override
 
virtual D3D11RHI_API void UnlockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer) final override
 
virtual D3D11RHI_API FRHICalcTextureSizeResult RHICalcTexturePlatformSize (FRHITextureDesc const &Desc, uint32 FirstMipIndex) final override
 
virtual D3D11RHI_API void RHIGetTextureMemoryStats (FTextureMemoryStats &OutStats) final override
 
virtual D3D11RHI_API bool RHIGetTextureMemoryVisualizeData (FColor *TextureData, int32 SizeX, int32 SizeY, int32 Pitch, int32 PixelSize) final override
 
D3D11RHI_API FD3D11TextureBeginCreateTextureInternal (const FRHITextureCreateDesc &CreateDesc)
 
D3D11RHI_API void FinalizeCreateTexture2DInternal (FD3D11Texture *Texture, TConstArrayView< D3D11_SUBRESOURCE_DATA > InitialData)
 
D3D11RHI_API void FinalizeCreateTexture3DInternal (FD3D11Texture *Texture, TConstArrayView< D3D11_SUBRESOURCE_DATA > InitialData)
 
D3D11RHI_API FD3D11TextureFinalizeCreateTextureInternal (FD3D11Texture *Texture, const FRHITextureDesc &InDesc, TConstArrayView< uint8 > InitialData)
 
D3D11RHI_API FD3D11TextureCreateTextureInternal (const FRHITextureCreateDesc &CreateDesc, TConstArrayView< uint8 > InitialData)
 
virtual D3D11RHI_API FRHITextureInitializer RHICreateTextureInitializer (FRHICommandListBase &RHICmdList, const FRHITextureCreateDesc &CreateDesc) final override
 
virtual D3D11RHI_API FTextureRHIRef RHIAsyncCreateTexture2D (uint32 SizeX, uint32 SizeY, uint8 Format, uint32 NumMips, ETextureCreateFlags Flags, ERHIAccess InResourceState, void **InitialMipData, uint32 NumInitialMips, const TCHAR *DebugName, FGraphEventRef &OutCompletionEvent) final override
 
virtual D3D11RHI_API uint32 RHIComputeMemorySize (FRHITexture *TextureRHI) final override
 
virtual D3D11RHI_API void RHIAsyncCopyTexture2DCopy (FRHITexture *NewTexture2DRHI, FRHITexture *Texture2DRHI, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus)
 
virtual D3D11RHI_API FTextureRHIRef RHIAsyncReallocateTexture2D (FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) final override
 
virtual D3D11RHI_API FRHILockTextureResult RHILockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual D3D11RHI_API void RHIUnlockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual D3D11RHI_API void RHIUpdateTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData) final override
 
virtual D3D11RHI_API void RHIUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData) final override
 
virtual D3D11RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHITexture *Texture, const TCHAR *Name) final override
 
virtual D3D11RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, const TCHAR *Name) final override
 
virtual D3D11RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIUnorderedAccessView *UnorderedAccessViewRHI, const TCHAR *Name) final override
 
virtual D3D11RHI_API void RHIReadSurfaceData (FRHITexture *Texture, FIntRect Rect, TArray< FColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual D3D11RHI_API void RHIReadSurfaceData (FRHITexture *TextureRHI, FIntRect InRect, TArray< FLinearColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual D3D11RHI_API void RHIMapStagingSurface (FRHITexture *Texture, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight, uint32 GPUIndex=0) final override
 
virtual D3D11RHI_API void RHIUnmapStagingSurface (FRHITexture *Texture, uint32 GPUIndex=0) final override
 
virtual D3D11RHI_API void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex) final override
 
virtual D3D11RHI_API void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData) final override
 
virtual D3D11RHI_API FRenderQueryRHIRef RHICreateRenderQuery (ERenderQueryType QueryType) final override
 
virtual D3D11RHI_API bool RHIGetRenderQueryResult (FRHIRenderQuery *RenderQuery, uint64 &OutResult, bool bWait, uint32 GPUIndex=INDEX_NONE) final override
 
virtual D3D11RHI_API FTextureRHIRef RHIGetViewportBackBuffer (FRHIViewport *Viewport) final override
 
virtual D3D11RHI_API void RHIAliasTextureResources (FTextureRHIRef &DestTexture, FTextureRHIRef &SrcTexture) final override
 
virtual D3D11RHI_API FTextureRHIRef RHICreateAliasedTexture (FTextureRHIRef &SourceTexture) final override
 
virtual D3D11RHI_API void RHIAdvanceFrameForGetViewportBackBuffer (FRHIViewport *Viewport, bool bPresent) final override
 
virtual D3D11RHI_API void RHIFlushResources () final override
 
virtual D3D11RHI_API FViewportRHIRef RHICreateViewport (void *WindowHandle, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat) override
 
virtual D3D11RHI_API void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen) final override
 
virtual D3D11RHI_API void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat) final override
 
virtual D3D11RHI_API void RHIHandleDisplayChange () final override
 
virtual D3D11RHI_API void RHITick (float DeltaTime) final override
 
virtual D3D11RHI_API void RHIBlockUntilGPUIdle () final override
 
virtual D3D11RHI_API bool RHIGetAvailableResolutions (FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate) final override
 
virtual D3D11RHI_API void RHIGetSupportedResolution (uint32 &Width, uint32 &Height) final override
 
virtual D3D11RHI_API voidRHIGetNativeDevice () final override
 
virtual D3D11RHI_API voidRHIGetNativeInstance () final override
 
virtual D3D11RHI_API voidRHIGetNativeCommandBuffer () final override
 
virtual D3D11RHI_API class IRHICommandContextRHIGetDefaultContext () final override
 
virtual D3D11RHI_API IRHIComputeContextRHIGetCommandContext (ERHIPipeline Pipeline, FRHIGPUMask GPUMask) final override
 
virtual D3D11RHI_API void RHIFinalizeContext (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output) final override
 
virtual D3D11RHI_API void RHISubmitCommandLists (FRHISubmitCommandListsArgs &&Args) final override
 
virtual D3D11RHI_API FShaderResourceViewRHIRef RHICreateShaderResourceView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual D3D11RHI_API FUnorderedAccessViewRHIRef RHICreateUnorderedAccessView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual D3D11RHI_API void RHISetComputeShader (FRHIComputeShader *ComputeShader) final override
 
virtual D3D11RHI_API void RHIDispatchComputeShader (uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) final override
 
virtual D3D11RHI_API void RHIDispatchIndirectComputeShader (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual D3D11RHI_API void RHIBeginUAVOverlap () final override
 
virtual D3D11RHI_API void RHIEndUAVOverlap () final override
 
virtual D3D11RHI_API void RHISetMultipleViewports (uint32 Count, const FViewportBounds *Data) final override
 
virtual D3D11RHI_API void RHIClearUAVFloat (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FVector4f &Values) final override
 
virtual D3D11RHI_API void RHIClearUAVUint (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FUintVector4 &Values) final override
 
virtual D3D11RHI_API void RHICopyTexture (FRHITexture *SourceTexture, FRHITexture *DestTexture, const FRHICopyTextureInfo &CopyInfo) final override
 
virtual D3D11RHI_API void RHICopyBufferRegion (FRHIBuffer *DestBuffer, uint64 DstOffset, FRHIBuffer *SourceBuffer, uint64 SrcOffset, uint64 NumBytes) final override
 
virtual D3D11RHI_API void RHICreateTransition (FRHITransition *Transition, const FRHITransitionCreateInfo &CreateInfo) final override
 
virtual D3D11RHI_API void RHIReleaseTransition (FRHITransition *Transition) final override
 
virtual D3D11RHI_API void RHIBeginTransitions (TArrayView< const FRHITransition * > Transitions) override final
 
virtual D3D11RHI_API void RHIEndTransitions (TArrayView< const FRHITransition * > Transitions) override final
 
virtual D3D11RHI_API void RHIEndRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery) override final
 
virtual D3D11RHI_API void RHIBeginRenderQuery (FRHIRenderQuery *RenderQuery) final override
 
virtual D3D11RHI_API void RHIEndRenderQuery (FRHIRenderQuery *RenderQuery) final override
 
virtual D3D11RHI_API void RHIEndDrawingViewport (FRHIViewport *Viewport, bool bPresent, bool bLockToVsync) final override
 
virtual D3D11RHI_API void RHIEndFrame (const FRHIEndFrameArgs &Args) final override
 
virtual D3D11RHI_API void RHISetStreamSource (uint32 StreamIndex, FRHIBuffer *VertexBuffer, uint32 Offset) final override
 
virtual D3D11RHI_API void RHISetRasterizerState (FRHIRasterizerState *NewState) final override
 
virtual D3D11RHI_API void RHISetViewport (float MinX, float MinY, float MinZ, float MaxX, float MaxY, float MaxZ) final override
 
virtual D3D11RHI_API void RHISetStereoViewport (float LeftMinX, float RightMinX, float LeftMinY, float RightMinY, float MinZ, float LeftMaxX, float RightMaxX, float LeftMaxY, float RightMaxY, float MaxZ) override
 
virtual D3D11RHI_API void RHISetScissorRect (bool bEnable, uint32 MinX, uint32 MinY, uint32 MaxX, uint32 MaxY) final override
 
virtual D3D11RHI_API void RHISetBoundShaderState (FRHIBoundShaderState *BoundShaderState) final override
 
virtual D3D11RHI_API void RHISetGraphicsPipelineState (FRHIGraphicsPipelineState *GraphicsState, uint32 StencilRef, bool bApplyAdditionalState) final override
 
virtual D3D11RHI_API void RHISetStaticUniformBuffers (const FUniformBufferStaticBindings &InUniformBuffers) final override
 
virtual D3D11RHI_API void RHISetStaticUniformBuffer (FUniformBufferStaticSlot Slot, FRHIUniformBuffer *Buffer) final override
 
virtual D3D11RHI_API void RHISetShaderParameters (FRHIComputeShader *Shader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters) final override
 
virtual D3D11RHI_API void RHISetShaderParameters (FRHIGraphicsShader *Shader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters) final override
 
virtual D3D11RHI_API void RHISetShaderUnbinds (FRHIComputeShader *Shader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds) final override
 
virtual D3D11RHI_API void RHISetShaderUnbinds (FRHIGraphicsShader *Shader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds) final override
 
virtual D3D11RHI_API void RHISetDepthStencilState (FRHIDepthStencilState *NewState, uint32 StencilRef) final override
 
virtual D3D11RHI_API void RHISetStencilRef (uint32 StencilRef) final override
 
virtual D3D11RHI_API void RHISetBlendState (FRHIBlendState *NewState, const FLinearColor &BlendFactor) final override
 
virtual D3D11RHI_API void RHISetBlendFactor (const FLinearColor &BlendFactor) final override
 
D3D11RHI_API void SetRenderTargets (uint32 NumSimultaneousRenderTargets, const FRHIRenderTargetView *NewRenderTargets, const FRHIDepthRenderTargetView *NewDepthStencilTarget)
 
D3D11RHI_API void InternalSetUAVCS (uint32 BindIndex, FD3D11UnorderedAccessView *UnorderedAccessViewRHI)
 
D3D11RHI_API void InternalSetUAVVSPS (uint32 BindIndex, FD3D11UnorderedAccessView *UnorderedAccessViewRHI)
 
D3D11RHI_API void SetRenderTargetsAndClear (const FRHISetRenderTargetsInfo &RenderTargetsInfo)
 
virtual D3D11RHI_API void RHIDrawPrimitive (uint32 BaseVertexIndex, uint32 NumPrimitives, uint32 NumInstances) final override
 
virtual D3D11RHI_API void RHIDrawPrimitiveIndirect (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual D3D11RHI_API void RHIDrawIndexedIndirect (FRHIBuffer *IndexBufferRHI, FRHIBuffer *ArgumentsBufferRHI, int32 DrawArgumentsIndex, uint32 NumInstances) final override
 
virtual D3D11RHI_API void RHIDrawIndexedPrimitive (FRHIBuffer *IndexBuffer, int32 BaseVertexIndex, uint32 FirstInstance, uint32 NumVertices, uint32 StartIndex, uint32 NumPrimitives, uint32 NumInstances) final override
 
virtual D3D11RHI_API void RHIDrawIndexedPrimitiveIndirect (FRHIBuffer *IndexBuffer, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual void RHIEnableDepthBoundsTest (bool bEnable) final override
 
virtual void RHISetDepthBounds (float MinDepth, float MaxDepth) final override
 
D3D11RHI_API void PollQueryResults ()
 
D3D11RHI_API bool PollQueryResultsForEndFrame (FD3D11RenderQuery *Query)
 
virtual D3D11RHI_API FTextureRHIRef AsyncReallocateTexture2D_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) final override
 
virtual D3D11RHI_API void RHIEndUpdateTexture3D (FRHICommandListBase &RHICmdList, FUpdateTexture3DData &UpdateData) final override
 
virtual D3D11RHI_API void RHIBeginRenderPass (const FRHIRenderPassInfo &InInfo, const TCHAR *InName) final override
 
virtual D3D11RHI_API void RHIEndRenderPass () final override
 
D3D11RHI_API void ResolveTexture (UE::RHICore::FResolveTextureInfo Info)
 
virtual D3D11RHI_API ID3D11DeviceRHIGetDevice () const final override
 
virtual D3D11RHI_API ID3D11DeviceContextRHIGetDeviceContext () const final override
 
virtual D3D11RHI_API IDXGIAdapterRHIGetAdapter () const final override
 
virtual D3D11RHI_API IDXGISwapChainRHIGetSwapChain (FRHIViewport *InViewport) const final override
 
virtual D3D11RHI_API DXGI_FORMAT RHIGetSwapChainFormat (EPixelFormat InFormat) const final override
 
virtual D3D11RHI_API FTextureRHIRef RHICreateTexture2DFromResource (EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D11Texture2D *Resource) final override
 
virtual D3D11RHI_API FTextureRHIRef RHICreateTexture2DArrayFromResource (EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &, ID3D11Texture2D *Resource) final override
 
virtual D3D11RHI_API FTextureRHIRef RHICreateTextureCubeFromResource (EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D11Texture2D *Resource) final override
 
virtual D3D11RHI_API ID3D11BufferRHIGetResource (FRHIBuffer *InBuffer) const final override
 
virtual D3D11RHI_API ID3D11ResourceRHIGetResource (FRHITexture *InTexture) const final override
 
virtual D3D11RHI_API int64 RHIGetResourceMemorySize (FRHITexture *InTexture) const final override
 
virtual D3D11RHI_API ID3D11RenderTargetViewRHIGetRenderTargetView (FRHITexture *InTexture, int32 InMipIndex=0, int32 InArraySliceIndex=-1) const final override
 
virtual D3D11RHI_API ID3D11ShaderResourceViewRHIGetShaderResourceView (FRHITexture *InTexture) const final override
 
virtual D3D11RHI_API void RHIRegisterWork (uint32 NumPrimitives) final override
 
virtual D3D11RHI_API void RHIVerifyResult (ID3D11Device *Device, HRESULT Result, const ANSICHAR *Code, const ANSICHAR *Filename, uint32 Line) const final override
 
virtual D3D11RHI_API void RHIGetDisplaysInformation (FDisplayInformationArray &OutDisplayInformation) final override
 
ID3D11DeviceGetDevice () const
 
FD3D11DeviceContextGetDeviceContext () const
 
IDXGIFactory1GetFactory () const
 
void AddLockedData (const FD3D11LockedKey &Key, const FD3D11LockedData &LockedData)
 
bool RemoveLockedData (const FD3D11LockedKey &Key, FD3D11LockedData &OutLockedData)
 
D3D11RHI_API bool IsQuadBufferStereoEnabled ()
 
D3D11RHI_API void DisableQuadBufferStereo ()
 
void BeginRecursiveCommand ()
 
template<EShaderFrequency ShaderFrequency>
void SetShaderResourceView (FD3D11ViewableResource *Resource, ID3D11ShaderResourceView *SRV, int32 ResourceIndex)
 
D3D11RHI_API void ClearState ()
 
D3D11RHI_API void ConditionalClearShaderResource (FD3D11ViewableResource *Resource, bool bCheckBoundInputAssembler)
 
D3D11RHI_API void ClearAllShaderResources ()
 
D3D11RHI_API EPixelFormat GetDisplayFormat (EPixelFormat InPixelFormat) const
 
FD3D11StateCacheGetStateCache ()
 
D3D11RHI_API TOptional< FTimestampCalibrationCalibrateTimers ()
 
void RegisterGPUWork (uint32 NumPrimitives=0, uint32 NumVertices=0)
 
void RegisterGPUDispatch (FIntVector GroupCount)
 
const FD3D11AdapterGetAdapter () const
 
template<class ShaderType >
void SetResourcesFromTables (const ShaderType *RESTRICT Shader)
 
- Public Member Functions inherited from ID3D11DynamicRHI
virtual ERHIInterfaceType GetInterfaceType () const override final
 
- Public Member Functions inherited from FDynamicRHIPSOFallback
virtual FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer) override
 
virtual FComputePipelineStateRHIRef RHICreateComputePipelineState (const FComputePipelineStateInitializer &Initializer) override
 
- Public Member Functions inherited from FDynamicRHI
virtual RHI_API ~FDynamicRHI ()
 
virtual void PostInit ()
 
virtual FDynamicRHIGetNonValidationRHI ()
 
void InitPixelFormatInfo (const TArray< uint32 > &PixelFormatBlockBytesIn)
 
virtual RHI_API void RHIEndFrame_RenderThread (FRHICommandListImmediate &RHICmdList)
 
virtual FMeshShaderRHIRef RHICreateMeshShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
virtual FAmplificationShaderRHIRef RHICreateAmplificationShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
virtual FWorkGraphShaderRHIRef RHICreateWorkGraphShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
virtual FRHIShaderLibraryRef RHICreateShaderLibrary (EShaderPlatform Platform, FString const &FilePath, FString const &Name)
 
virtual IRHITransientResourceAllocatorRHICreateTransientResourceAllocator ()
 
virtual RHI_API voidLockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI)
 
virtual RHI_API void UnlockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer)
 
virtual FWorkGraphPipelineStateRHIRef RHICreateWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer)
 
virtual RHI_API voidRHILockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
 
virtual RHI_API voidRHILockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
 
virtual RHI_API void RHIUnlockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer)
 
virtual RHI_API void RHIUnlockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex)
 
virtual RHI_API void RHIUpdateTextureReference (FRHICommandListBase &RHICmdList, FRHITextureReference *TextureRef, FRHITexture *NewTexture)
 
virtual RHI_API uint64 RHIGetMinimumAlignmentForBufferBackedSRV (EPixelFormat Format)
 
virtual RHI_API FTextureReferenceRHIRef RHICreateTextureReference (FRHICommandListBase &RHICmdList, FRHITexture *InReferencedTexture)
 
virtual FRHIResourceCollectionRef RHICreateResourceCollection (FRHICommandListBase &RHICmdList, TConstArrayView< FRHIResourceCollectionMember > InMembers)
 
virtual void RHIUpdateResourceCollection (FRHICommandListBase &RHICmdList, FRHIResourceCollection *InResourceCollection, uint32 InStartIndex, TConstArrayView< FRHIResourceCollectionMember > InMemberUpdates)
 
virtual void RHIUpdateFromBufferTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, FRHIBuffer *Buffer, uint32 BufferOffset)
 
virtual RHI_API void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual RHI_API void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual void RHIBeginRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
 
virtual void RHIEndRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
 
virtual RHI_API void RHIBeginRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery)
 
virtual uint32 RHIGetViewportNextPresentGPUIndex (FRHIViewport *Viewport)
 
virtual FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV (FRHIViewport *ViewportRHI)
 
virtual uint32 RHIGetHTilePlatformConfig (uint32 DepthWidth, uint32 DepthHeight) const
 
virtual uint32 RHIGetHTilePlatformConfig (const FRHITextureDesc &DepthDesc) const
 
virtual RHI_API uint64 RHIComputeStatePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer)
 
virtual RHI_API uint64 RHIComputePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer)
 
virtual RHI_API bool RHIMatchPrecachePSOInitializers (const FGraphicsPipelineStateInitializer &LHS, const FGraphicsPipelineStateInitializer &RHS)
 
virtual void RHIAcquireThreadOwnership ()
 
virtual void RHIReleaseThreadOwnership ()
 
virtual EPixelFormat RHIPreferredPixelFormatHint (EPixelFormat PreferredPixelFormat)
 
virtual RHI_API void RHICheckViewportHDRStatus (FRHIViewport *Viewport)
 
virtual void RHIBeginSuspendRendering ()
 
virtual void RHISuspendRendering ()
 
virtual void RHIResumeRendering ()
 
virtual bool RHIIsRenderingSuspended ()
 
virtual RHI_API void RHIVirtualTextureSetFirstMipInMemory (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual RHI_API void RHIVirtualTextureSetFirstMipVisible (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual voidRHIGetNativePhysicalDevice ()
 
virtual voidRHIGetNativeGraphicsQueue ()
 
virtual voidRHIGetNativeComputeQueue ()
 
virtual IRHIComputeContextRHIGetParallelCommandContext (FRHIParallelRenderPassInfo const &ParallelRenderPass, FRHIGPUMask GPUMask)
 
virtual IRHIUploadContextRHIGetUploadContext ()
 
void RHICloseTranslateChain (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output, bool bShouldFinalize)
 
virtual IRHIPlatformCommandListRHIFinalizeParallelContext (IRHIComputeContext *Context)
 
virtual void RHIProcessDeleteQueue ()
 
virtual RHI_API FUpdateTexture3DData RHIBeginUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion)
 
virtual RHI_API void RHIEndMultiUpdateTexture3D (FRHICommandListBase &RHICmdList, TArray< FUpdateTexture3DData > &UpdateDataArray)
 
virtual RHI_API FRHIShaderLibraryRef RHICreateShaderLibrary_RenderThread (class FRHICommandListImmediate &RHICmdList, EShaderPlatform Platform, FString FilePath, FString Name)
 
virtual RHI_API void RHIMapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight)
 
virtual RHI_API void RHIUnmapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags Flags)
 
virtual FRHIFlipDetails RHIWaitForFlip (double TimeoutInSeconds)
 
virtual void RHISignalFlipEvent ()
 
virtual uint16 RHIGetPlatformTextureMaxSampleCount ()
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize (const FRayTracingSceneInitializer &Initializer)
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize (const FRayTracingGeometryInitializer &Initializer)
 
virtual FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize (const FRayTracingClusterOperationInitializer &Initializer)
 
virtual FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata (const FRayTracingGeometryOfflineDataHeader &OfflineDataHeader)
 
virtual FRayTracingGeometryRHIRef RHICreateRayTracingGeometry (FRHICommandListBase &RHICmdList, const FRayTracingGeometryInitializer &Initializer)
 
virtual FRayTracingSceneRHIRef RHICreateRayTracingScene (FRayTracingSceneInitializer Initializer)
 
virtual FRayTracingShaderRHIRef RHICreateRayTracingShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
virtual FRayTracingPipelineStateRHIRef RHICreateRayTracingPipelineState (const FRayTracingPipelineStateInitializer &Initializer)
 
virtual FShaderBindingTableRHIRef RHICreateShaderBindingTable (FRHICommandListBase &RHICmdList, const FRayTracingShaderBindingTableInitializer &Initializer)
 
virtual void RHISerializeAccelerationStructure (FRHICommandListImmediate &RHICmdList, FRHIRayTracingScene *Scene, const TCHAR *Path)
 
virtual FShaderBundleRHIRef RHICreateShaderBundle (const FShaderBundleCreateInfo &CreateInfo)
 
- Public Member Functions inherited from IRHICommandContextPSOFallback
virtual void RHISetComputePipelineState (FRHIComputePipelineState *ComputePipelineState)
 
- Public Member Functions inherited from IRHICommandContext
virtual ~IRHICommandContext ()
 
virtual ERHIPipeline GetPipeline () const override
 
virtual void RHIResummarizeHTile (FRHITexture *DepthTexture)
 
void RHISetBatchedShaderParameters (FRHIGraphicsShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHIMultiDrawIndexedPrimitiveIndirect (FRHIBuffer *IndexBuffer, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset, FRHIBuffer *CountBuffer, uint32 CountBuffeOffset, uint32 MaxDrawArguments)
 
virtual void RHIDispatchMeshShader (uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ)
 
virtual void RHIDispatchIndirectMeshShader (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
virtual void RHIGpuHangCommandListCorruption ()
 
virtual void RHISetShadingRate (EVRSShadingRate ShadingRate, EVRSRateCombiner Combiner)
 
virtual void RHIBeginParallelRenderPass (TSharedPtr< FRHIParallelRenderPassInfo > InInfo, const TCHAR *InName)
 
virtual void RHIEndParallelRenderPass ()
 
virtual void RHINextSubpass ()
 
virtual void RHIClearShaderBindingTable (FRHIShaderBindingTable *SBT)
 
virtual void RHISetBindingsOnShaderBindingTable (FRHIShaderBindingTable *SBT, FRHIRayTracingPipelineState *Pipeline, uint32 NumBindings, const FRayTracingLocalShaderBindings *Bindings, ERayTracingBindingType BindingType)
 
virtual void RHICommitShaderBindingTable (FRHIShaderBindingTable *SBT, FRHIBuffer *InlineBindingDataBuffer)
 
virtual void RHISetShaderParameters (FRHIComputeShader *ComputeShader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters)=0
 
void RHISetBatchedShaderParameters (FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHISetShaderUnbinds (FRHIComputeShader *ComputeShader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds)
 
- Public Member Functions inherited from IRHIComputeContext
virtual ~IRHIComputeContext ()
 
virtual void RHIRayTraceDispatch (FRHIRayTracingPipelineState *RayTracingPipelineState, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, uint32 Width, uint32 Height)
 
virtual void RHIRayTraceDispatchIndirect (FRHIRayTracingPipelineState *RayTracingPipelineState, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
virtual void RHISetAsyncComputeBudget (EAsyncComputeBudget Budget)
 
virtual void RHISetComputeBudget (ESyncComputeBudget Budget)
 
virtual void RHISetShaderRootConstants (const FUint32Vector4 &Constants)
 
virtual void RHIDispatchComputeShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleComputeDispatch > Dispatches, bool bEmulated)
 
virtual void RHIDispatchGraphicsShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, const FRHIShaderBundleGraphicsState &BundleState, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleGraphicsDispatch > Dispatches, bool bEmulated)
 
virtual void RHIBeginUAVOverlap (TConstArrayView< FRHIUnorderedAccessView * > UAVs)
 
virtual void RHIEndUAVOverlap (TConstArrayView< FRHIUnorderedAccessView * > UAVs)
 
void RHISetBatchedShaderParameters (FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHISetUniformBufferDynamicOffset (FUniformBufferStaticSlot Slot, uint32 Offset)
 
virtual void RHISetGPUMask (FRHIGPUMask GPUMask)
 
virtual FRHIGPUMask RHIGetGPUMask () const
 
virtual void RHIExecuteMultiIndirectClusterOperation (const FRayTracingClusterOperationParams &Params)
 
virtual void RHIBuildAccelerationStructures (TConstArrayView< FRayTracingGeometryBuildParams > Params, const FRHIBufferRange &ScratchBufferRange)
 
virtual void RHIBuildAccelerationStructures (TConstArrayView< FRayTracingSceneBuildParams > Params)
 
virtual void RHIBindAccelerationStructureMemory (FRHIRayTracingScene *Scene, FRHIBuffer *Buffer, uint32 BufferOffset)
 
IRHIComputeContextGetLowestLevelContext ()
 
IRHIComputeContext const & GetHighestLevelContext () const
 
IRHIComputeContextGetHighestLevelContext ()
 
void SetTrackedAccess (const FRHITrackedAccessInfo &Info)
 
ERHIAccess GetTrackedAccess (const FRHIViewableResource *Resource) const
 
ERHIPipeline GetTrackedPipelines (const FRHIViewableResource *Resource) const
 
virtual void RHIPostExternalCommandsReset ()
 
FRHICommandListBaseGetExecutingCommandList () const
 
virtual void SetExecutingCommandList (FRHICommandListBase *InCmdList)
 

Static Public Member Functions

static FD3D11DynamicRHIGet ()
 
template<typename TRHIType >
static FORCEINLINE TD3D11ResourceTraits< TRHIType >::TConcreteType * ResourceCast (TRHIType *Resource)
 
static FD3D11TextureResourceCast (FRHITexture *Texture)
 
- Static Public Member Functions inherited from FDynamicRHI
static RHI_API void EnableIdealGPUCaptureOptions (bool bEnable)
 

Protected Types

enum  { MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE = 14 }
 

Protected Member Functions

D3D11RHI_API FD3D11TextureCreateTextureFromResource (bool bTextureArray, bool bCubeTexture, EPixelFormat Format, ETextureCreateFlags TexCreateFlags, const FClearValueBinding &ClearValueBinding, ID3D11Texture2D *TextureResource)
 
D3D11RHI_API void InitConstantBuffers ()
 
virtual D3D11RHI_API void CommitNonComputeShaderConstants ()
 
virtual D3D11RHI_API void CommitComputeShaderConstants ()
 
template<class ShaderType >
void SetResourcesFromTables (const ShaderType *RESTRICT)
 
D3D11RHI_API void CommitGraphicsResourceTables ()
 
D3D11RHI_API void CommitComputeResourceTables (FD3D11ComputeShader *ComputeShader)
 
D3D11RHI_API void ValidateExclusiveDepthStencilAccess (FExclusiveDepthStencil Src) const
 
D3D11RHI_API void GetBestSupportedMSAASetting (DXGI_FORMAT PlatformFormat, uint32 MSAACount, uint32 &OutBestMSAACount, uint32 &OutMSAAQualityLevels)
 
D3D11RHI_API void SetupAfterDeviceCreation ()
 
D3D11RHI_API void UpdateMSAASettings ()
 
D3D11RHI_API uint32 GetMaxMSAAQuality (uint32 SampleCount)
 
D3D11RHI_API void CommitRenderTargetsAndUAVs ()
 
D3D11RHI_API void CommitRenderTargets (bool bClearUAVS)
 
D3D11RHI_API void CommitUAVs ()
 
virtual D3D11RHI_API void CleanupD3DDevice ()
 
D3D11RHI_API void ReleasePooledUniformBuffers ()
 
D3D11RHI_API TRefCountPtr< ID3D11Texture2DGetStagingTexture (FRHITexture *TextureRHI, FIntRect InRect, FIntRect &OutRect, FReadSurfaceDataFlags InFlags)
 
D3D11RHI_API void ReadSurfaceDataNoMSAARaw (FRHITexture *TextureRHI, FIntRect Rect, TArray< uint8 > &OutData, FReadSurfaceDataFlags InFlags)
 
D3D11RHI_API void ReadSurfaceDataMSAARaw (FRHITexture *TextureRHI, FIntRect Rect, TArray< uint8 > &OutData, FReadSurfaceDataFlags InFlags)
 
D3D11RHI_API void EnableUAVOverlap ()
 
D3D11RHI_API void DisableUAVOverlap ()
 
D3D11RHI_API bool SetupDisplayHDRMetaData ()
 
D3D11RHI_API void UpdateMemoryStats ()
 

Static Protected Member Functions

template<typename TPixelShader >
static void ResolveTextureUsingShader (FD3D11DynamicRHI *const This, FD3D11Texture *const SourceTexture, FD3D11Texture *const DestTexture, ID3D11RenderTargetView *const DestTextureRTV, ID3D11DepthStencilView *const DestTextureDSV, D3D11_TEXTURE2D_DESC const &ResolveTargetDesc, FResolveRect const &SourceRect, FResolveRect const &DestRect, typename TPixelShader::FParameter const PixelShaderParameter)
 

Protected Attributes

TRefCountPtr< IDXGIFactory1DXGIFactory1
 
bool bDXGISupportsHDR
 
TRefCountPtr< FD3D11DeviceContextDirect3DDeviceIMContext
 
TRefCountPtr< ID3DUserDefinedAnnotationDirect3DDeviceIMAnnotation
 
TRefCountPtr< FD3D11DeviceDirect3DDevice
 
FD3D11StateCache StateCache
 
FD3D11LockTracker LockTracker
 
FCriticalSection LockTrackerCS
 
TArray< FD3D11Viewport * > Viewports
 
D3D_FEATURE_LEVEL FeatureLevel
 
AGSContextAmdAgsContext
 
uint32 AvailableMSAAQualities [DX_MAX_MSAA_COUNT+1]
 
voidZeroBuffer
 
uint32 ZeroBufferSize
 
bool bCurrentDepthStencilStateIsReadOnly
 
EPrimitiveType PrimitiveType
 
TRefCountPtr< ID3D11RenderTargetViewCurrentRenderTargets [D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]
 
TRefCountPtr< FD3D11UnorderedAccessViewCurrentUAVs [D3D11_PS_CS_UAV_REGISTER_COUNT]
 
ID3D11UnorderedAccessViewUAVBound [D3D11_PS_CS_UAV_REGISTER_COUNT]
 
uint32 UAVBindFirst
 
uint32 UAVBindCount
 
uint32 UAVSChanged
 
uint32 CurrentRTVOverlapMask
 
uint32 CurrentUAVMask
 
TRefCountPtr< ID3D11DepthStencilViewCurrentDepthStencilTarget
 
TRefCountPtr< FD3D11TextureCurrentDepthTexture
 
FD3D11ViewableResourceCurrentResourcesBoundAsSRVs [SF_NumStandardFrequencies][D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT]
 
FD3D11ViewableResourceCurrentResourcesBoundAsVBs [D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
 
FD3D11ViewableResourceCurrentResourceBoundAsIB
 
int32 MaxBoundShaderResourcesIndex [SF_NumStandardFrequencies]
 
int32 MaxBoundVertexBufferIndex
 
uint32 NumSimultaneousRenderTargets
 
uint32 NumUAVs
 
uint32 PresentCounter
 
struct { 
 
   FD3D11RenderQuery *   First = nullptr 
 
   FD3D11RenderQuery *   Last = nullptr 
 
ActiveQueries 
 
struct FD3D11DynamicRHI::FProfiler Profiler
 
TOptional< FTimestampCalibrationTimestampCalibration
 
FRHIUniformBufferBoundUniformBuffers [SF_NumStandardFrequencies][MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE]
 
uint16 DirtyUniformBuffers [SF_NumStandardFrequencies]
 
TArray< FRHIUniformBuffer * > StaticUniformBuffers
 
FExclusiveDepthStencil CurrentDSVAccessType
 
bool bDiscardSharedConstants
 
TRefCountPtr< FD3D11ConstantBufferVSConstantBuffer
 
TRefCountPtr< FD3D11ConstantBufferPSConstantBuffer
 
TRefCountPtr< FD3D11ConstantBufferGSConstantBuffer
 
TRefCountPtr< FD3D11ConstantBufferCSConstantBuffer
 
TGlobalResource< TBoundShaderStateHistory< 10000 > > BoundShaderStateHistory
 
FComputeShaderRHIRef CurrentComputeShader
 
FDisplayInformationArray DisplayList
 
HANDLE ExceptionHandlerHandle = INVALID_HANDLE_VALUE
 
bool bRenderDoc = false
 
FD3DGPUProfiler GPUProfilingData
 
FD3D11Adapter Adapter
 
bool bUAVOverlapEnabled = false
 
- Protected Attributes inherited from FDynamicRHI
TArray< uint32PixelFormatBlockBytes
 
- Protected Attributes inherited from IRHICommandContext
FRHIRenderPassInfo RenderPassInfo
 
- Protected Attributes inherited from IRHIComputeContext
UE::RHI::GPUProfiler::FEvent::FStats StatEvent {}
 

Friends

class FD3D11Viewport
 
class FD3D11RenderQuery
 
struct FD3DGPUProfiler
 

Detailed Description

The interface which is implemented by the dynamically bound RHI.

Member Typedef Documentation

◆ FD3D11LockTracker

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected

D3D11 defines a maximum of 14 constant buffers per shader stage.

Enumerator
MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE 

Constructor & Destructor Documentation

◆ FD3D11DynamicRHI()

FD3D11DynamicRHI::FD3D11DynamicRHI ( IDXGIFactory1 InDXGIFactory1,
D3D_FEATURE_LEVEL  InFeatureLevel,
const FD3D11Adapter InAdapter 
)

Initialization constructor.

◆ ~FD3D11DynamicRHI()

FD3D11DynamicRHI::~FD3D11DynamicRHI ( )
virtual

Destructor

Member Function Documentation

◆ AddLockedData()

void FD3D11DynamicRHI::AddLockedData ( const FD3D11LockedKey Key,
const FD3D11LockedData LockedData 
)
inline

◆ ApplyStaticUniformBuffers()

template<typename TRHIShader >
void FD3D11DynamicRHI::ApplyStaticUniformBuffers ( TRHIShader Shader)

◆ AsyncReallocateTexture2D_RenderThread()

FTextureRHIRef FD3D11DynamicRHI::AsyncReallocateTexture2D_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ BeginCreateBufferInternal()

FD3D11Buffer * FD3D11DynamicRHI::BeginCreateBufferInternal ( const FRHIBufferCreateDesc CreateDesc)

◆ BeginCreateTextureInternal()

FD3D11Texture * FD3D11DynamicRHI::BeginCreateTextureInternal ( const FRHITextureCreateDesc CreateDesc)

◆ BeginRecursiveCommand()

void FD3D11DynamicRHI::BeginRecursiveCommand ( )
inline

◆ BindUniformBuffer()

template<EShaderFrequency ShaderFrequency>
void FD3D11DynamicRHI::BindUniformBuffer ( uint32  BufferIndex,
FRHIUniformBuffer BufferRHI 
)

◆ CalibrateTimers()

TOptional< FD3D11DynamicRHI::FTimestampCalibration > FD3D11DynamicRHI::CalibrateTimers ( )

◆ CleanupD3DDevice()

void FD3D11DynamicRHI::CleanupD3DDevice ( )
protectedvirtual

Cleanup the D3D device. This function must be called from the main game thread.

◆ ClearAllShaderResources()

void FD3D11DynamicRHI::ClearAllShaderResources ( )

◆ ClearState()

void FD3D11DynamicRHI::ClearState ( )

◆ CommitComputeResourceTables()

void FD3D11DynamicRHI::CommitComputeResourceTables ( FD3D11ComputeShader ComputeShader)
protected

◆ CommitComputeShaderConstants()

void FD3D11DynamicRHI::CommitComputeShaderConstants ( )
protectedvirtual

needs to be called before each dispatch call

◆ CommitGraphicsResourceTables()

void FD3D11DynamicRHI::CommitGraphicsResourceTables ( )
protected

◆ CommitNonComputeShaderConstants()

void FD3D11DynamicRHI::CommitNonComputeShaderConstants ( )
protectedvirtual

needs to be called before each draw call

◆ CommitRenderTargets()

void FD3D11DynamicRHI::CommitRenderTargets ( bool  bClearUAVS)
protected

◆ CommitRenderTargetsAndUAVs()

void FD3D11DynamicRHI::CommitRenderTargetsAndUAVs ( )
protected

◆ CommitUAVs()

void FD3D11DynamicRHI::CommitUAVs ( )
protected

◆ ConditionalClearShaderResource()

void FD3D11DynamicRHI::ConditionalClearShaderResource ( FD3D11ViewableResource Resource,
bool  bCheckBoundInputAssembler 
)

◆ CreateBufferInternal()

FD3D11Buffer * FD3D11DynamicRHI::CreateBufferInternal ( const FRHIBufferCreateDesc CreateDesc,
TConstArrayView< uint8 InitialData 
)

◆ CreateTextureFromResource()

FD3D11Texture * FD3D11DynamicRHI::CreateTextureFromResource ( bool  bTextureArray,
bool  bCubeTexture,
EPixelFormat  Format,
ETextureCreateFlags  TexCreateFlags,
const FClearValueBinding ClearValueBinding,
ID3D11Texture2D TextureResource 
)
protected

◆ CreateTextureInternal()

FD3D11Texture * FD3D11DynamicRHI::CreateTextureInternal ( const FRHITextureCreateDesc CreateDesc,
TConstArrayView< uint8 InitialData 
)

◆ DisableQuadBufferStereo()

void FD3D11DynamicRHI::DisableQuadBufferStereo ( )

◆ DisableUAVOverlap()

void FD3D11DynamicRHI::DisableUAVOverlap ( )
protected

◆ EnableUAVOverlap()

void FD3D11DynamicRHI::EnableUAVOverlap ( )
protected

◆ FinalizeCreateBufferInternal()

void FD3D11DynamicRHI::FinalizeCreateBufferInternal ( FD3D11Buffer Buffer,
TConstArrayView< uint8 InitialData 
)

◆ FinalizeCreateTexture2DInternal()

void FD3D11DynamicRHI::FinalizeCreateTexture2DInternal ( FD3D11Texture Texture,
TConstArrayView< D3D11_SUBRESOURCE_DATA InitialData 
)

◆ FinalizeCreateTexture3DInternal()

void FD3D11DynamicRHI::FinalizeCreateTexture3DInternal ( FD3D11Texture Texture,
TConstArrayView< D3D11_SUBRESOURCE_DATA InitialData 
)

◆ FinalizeCreateTextureInternal()

FD3D11Texture * FD3D11DynamicRHI::FinalizeCreateTextureInternal ( FD3D11Texture Texture,
const FRHITextureDesc InDesc,
TConstArrayView< uint8 InitialData 
)

◆ FlushPendingLogs()

void FD3D11DynamicRHI::FlushPendingLogs ( )
overridevirtual

Reimplemented from FDynamicRHI.

◆ Get()

static FD3D11DynamicRHI & FD3D11DynamicRHI::Get ( )
inlinestatic

◆ GetAdapter()

const FD3D11Adapter & FD3D11DynamicRHI::GetAdapter ( ) const
inline

◆ GetBestSupportedMSAASetting()

void FD3D11DynamicRHI::GetBestSupportedMSAASetting ( DXGI_FORMAT  PlatformFormat,
uint32  MSAACount,
uint32 OutBestMSAACount,
uint32 OutMSAAQualityLevels 
)
protected

Gets the best supported MSAA settings from the provided MSAA count to check against.

Parameters
PlatformFormatThe format of the texture being created
MSAACountThe MSAA count to check against.
OutBestMSAACountThe best MSAA count that is suppored. Could be smaller than MSAACount if it is not supported
OutMSAAQualityLevelsThe number MSAA quality levels for the best msaa count supported

◆ GetDevice()

ID3D11Device * FD3D11DynamicRHI::GetDevice ( ) const
inline

◆ GetDeviceContext()

FD3D11DeviceContext * FD3D11DynamicRHI::GetDeviceContext ( ) const
inline

◆ GetDisplayFormat()

EPixelFormat FD3D11DynamicRHI::GetDisplayFormat ( EPixelFormat  InPixelFormat) const

◆ GetFactory()

IDXGIFactory1 * FD3D11DynamicRHI::GetFactory ( ) const
inline

◆ GetMaxMSAAQuality()

uint32 FD3D11DynamicRHI::GetMaxMSAAQuality ( uint32  SampleCount)
protected

◆ GetName()

virtual const TCHAR * FD3D11DynamicRHI::GetName ( )
inlineoverridevirtual

Implements FDynamicRHI.

◆ GetQueryData()

bool FD3D11DynamicRHI::GetQueryData ( ID3D11Query Query,
void Data,
SIZE_T  DataSize,
bool  bTimestamp,
bool  bWait,
bool  bStallRHIThread 
)

Reads a D3D query's data into the provided buffer.

Parameters
Query- The D3D query to read data from.
Data- The buffer to read the data into.
DataSize- The size of the buffer.
QueryTypee.g. RQT_Occlusion or RQT_AbsoluteTime
bWait- If true, it will wait for the query to finish.
bStallRHIThread- if true, stall RHIT before accessing immediate context
Returns
true if the query finished.

◆ GetStagingTexture()

TRefCountPtr< ID3D11Texture2D > FD3D11DynamicRHI::GetStagingTexture ( FRHITexture TextureRHI,
FIntRect  InRect,
FIntRect OutRect,
FReadSurfaceDataFlags  InFlags 
)
protected

Returns a pointer to a texture resource that can be used for CPU reads. Note: the returned resource could be the original texture or a new temporary texture.

Parameters
TextureRHI- Source texture to create a staging texture from.
InRect- rectangle to 'stage'.
StagingRectOUT- parameter is filled with the rectangle to read from the returned texture.
Returns
The CPU readable Texture object.

◆ GetStateCache()

FD3D11StateCache & FD3D11DynamicRHI::GetStateCache ( )
inline

◆ Init()

void FD3D11DynamicRHI::Init ( )
overridevirtual

Initializes the RHI; separate from IDynamicRHIModule::CreateRHI so that GDynamicRHI is set when it is called.

Implements FDynamicRHI.

◆ InitConstantBuffers()

void FD3D11DynamicRHI::InitConstantBuffers ( )
protected

Initializes the constant buffers. Called once at RHI initialization time.

◆ InitD3DDevice()

void FD3D11DynamicRHI::InitD3DDevice ( )
virtual

If it hasn't been initialized yet, initializes the D3D device.

◆ InternalSetUAVCS()

void FD3D11DynamicRHI::InternalSetUAVCS ( uint32  BindIndex,
FD3D11UnorderedAccessView UnorderedAccessViewRHI 
)

◆ InternalSetUAVVSPS()

void FD3D11DynamicRHI::InternalSetUAVVSPS ( uint32  BindIndex,
FD3D11UnorderedAccessView UnorderedAccessViewRHI 
)

◆ IsQuadBufferStereoEnabled()

bool FD3D11DynamicRHI::IsQuadBufferStereoEnabled ( )

◆ LockBuffer_BottomOfPipe()

void * FD3D11DynamicRHI::LockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer,
uint32  Offset,
uint32  Size,
EResourceLockMode  LockMode 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ PollQueryResults()

void FD3D11DynamicRHI::PollQueryResults ( )

◆ PollQueryResultsForEndFrame()

bool FD3D11DynamicRHI::PollQueryResultsForEndFrame ( FD3D11RenderQuery Query)

◆ ReadSurfaceDataMSAARaw()

void FD3D11DynamicRHI::ReadSurfaceDataMSAARaw ( FRHITexture TextureRHI,
FIntRect  Rect,
TArray< uint8 > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
protected

◆ ReadSurfaceDataNoMSAARaw()

void FD3D11DynamicRHI::ReadSurfaceDataNoMSAARaw ( FRHITexture TextureRHI,
FIntRect  Rect,
TArray< uint8 > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
protected

◆ RegisterGPUDispatch()

void FD3D11DynamicRHI::RegisterGPUDispatch ( FIntVector  GroupCount)
inline

◆ RegisterGPUWork()

void FD3D11DynamicRHI::RegisterGPUWork ( uint32  NumPrimitives = 0,
uint32  NumVertices = 0 
)
inline

◆ ReleasePooledUniformBuffers()

void FD3D11DynamicRHI::ReleasePooledUniformBuffers ( )
protected

◆ RemoveLockedData()

bool FD3D11DynamicRHI::RemoveLockedData ( const FD3D11LockedKey Key,
FD3D11LockedData OutLockedData 
)
inline

◆ ResolveTexture()

void FD3D11DynamicRHI::ResolveTexture ( UE::RHICore::FResolveTextureInfo  Info)

◆ ResolveTextureUsingShader()

template<typename TPixelShader >
void FD3D11DynamicRHI::ResolveTextureUsingShader ( FD3D11DynamicRHI *const  This,
FD3D11Texture *const  SourceTexture,
FD3D11Texture *const  DestTexture,
ID3D11RenderTargetView *const  DestTextureRTV,
ID3D11DepthStencilView *const  DestTextureDSV,
D3D11_TEXTURE2D_DESC const &  ResolveTargetDesc,
FResolveRect const &  SourceRect,
FResolveRect const &  DestRect,
typename TPixelShader::FParameter const  PixelShaderParameter 
)
staticprotected

◆ ResourceCast() [1/2]

static FD3D11Texture * FD3D11DynamicRHI::ResourceCast ( FRHITexture Texture)
inlinestatic

◆ ResourceCast() [2/2]

template<typename TRHIType >
static FORCEINLINE TD3D11ResourceTraits< TRHIType >::TConcreteType * FD3D11DynamicRHI::ResourceCast ( TRHIType Resource)
inlinestatic

◆ RHIAdvanceFrameForGetViewportBackBuffer()

void FD3D11DynamicRHI::RHIAdvanceFrameForGetViewportBackBuffer ( FRHIViewport Viewport,
bool  bPresent 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIAliasTextureResources()

void FD3D11DynamicRHI::RHIAliasTextureResources ( FTextureRHIRef DestTexture,
FTextureRHIRef SrcTexture 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIAsyncCopyTexture2DCopy()

void FD3D11DynamicRHI::RHIAsyncCopyTexture2DCopy ( FRHITexture NewTexture2DRHI,
FRHITexture Texture2DRHI,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
virtual

◆ RHIAsyncCreateTexture2D()

FTextureRHIRef FD3D11DynamicRHI::RHIAsyncCreateTexture2D ( uint32  SizeX,
uint32  SizeY,
uint8  Format,
uint32  NumMips,
ETextureCreateFlags  Flags,
ERHIAccess  InResourceState,
void **  InitialMipData,
uint32  NumInitialMips,
const TCHAR DebugName,
FGraphEventRef OutCompletionEvent 
)
finaloverridevirtual

Thread-safe function that can be used to create a texture outside of the rendering thread. This function can ONLY be called if GRHISupportsAsyncTextureCreation is true. Cannot create rendertargets with this method.

Parameters
SizeX- width of the texture to create
SizeY- height of the texture to create
Format- EPixelFormat texture format
NumMips- number of mips to generate or 0 for full mip pyramid
Flags- ETextureCreateFlags creation flags
InitialMipData- pointers to mip data with which to create the texture
NumInitialMips- how many mips are provided in InitialMipData
OutCompletionEvent- An event signaled on operation completion. Can return null. Operation can still be pending after function returns (e.g. initial data upload in-flight)
Returns
a reference to a 2D texture resource

Implements FDynamicRHI.

◆ RHIAsyncReallocateTexture2D()

FTextureRHIRef FD3D11DynamicRHI::RHIAsyncReallocateTexture2D ( FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Starts an asynchronous texture reallocation. It may complete immediately if the reallocation could be performed without any reshuffling of texture memory, or if there isn't enough memory. The specified status counter will be decremented by 1 when the reallocation is complete (success or failure).

Returns a new reference to the texture, which will represent the new mip count when the reallocation is complete. RHIFinalizeAsyncReallocateTexture2D() must be called to complete the reallocation.

Parameters
Texture2D- Texture to reallocate
NewMipCount- New number of mip-levels
NewSizeX- New width, in pixels
NewSizeY- New height, in pixels
RequestStatus- Will be decremented by 1 when the reallocation is complete (success or failure).
Returns
- New reference to the texture, or an invalid reference upon failure

Implements FDynamicRHI.

◆ RHIBeginRenderPass()

void FD3D11DynamicRHI::RHIBeginRenderPass ( const FRHIRenderPassInfo InInfo,
const TCHAR InName 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIBeginRenderQuery()

void FD3D11DynamicRHI::RHIBeginRenderQuery ( FRHIRenderQuery RenderQuery)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIBeginTransitions()

void FD3D11DynamicRHI::RHIBeginTransitions ( TArrayView< const FRHITransition * >  Transitions)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHIBeginUAVOverlap()

void FD3D11DynamicRHI::RHIBeginUAVOverlap ( )
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHIBindDebugLabelName() [1/3]

void FD3D11DynamicRHI::RHIBindDebugLabelName ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer,
const TCHAR Name 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBindDebugLabelName() [2/3]

void FD3D11DynamicRHI::RHIBindDebugLabelName ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
const TCHAR Name 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBindDebugLabelName() [3/3]

void FD3D11DynamicRHI::RHIBindDebugLabelName ( FRHICommandListBase RHICmdList,
FRHIUnorderedAccessView UnorderedAccessViewRHI,
const TCHAR Name 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBlockUntilGPUIdle()

void FD3D11DynamicRHI::RHIBlockUntilGPUIdle ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICalcTexturePlatformSize()

FDynamicRHI::FRHICalcTextureSizeResult FD3D11DynamicRHI::RHICalcTexturePlatformSize ( FRHITextureDesc const &  Desc,
uint32  FirstMipIndex 
)
finaloverridevirtual

Computes the total GPU memory a texture resource with the specified parameters will occupy on the current RHI platform. Also returns the required alignment for the resource.

Parameters
Desc- The texture descriptor (width, height, format etc)
FirstMipIndex- The index of the most detailed mip to consider in the memory size calculation.
Returns
- The computed size and alignment of the platform texture resource.

Implements FDynamicRHI.

◆ RHIClearUAVFloat()

void FD3D11DynamicRHI::RHIClearUAVFloat ( FRHIUnorderedAccessView UnorderedAccessViewRHI,
const FVector4f Values 
)
finaloverridevirtual

Clears a UAV to the multi-channel floating point value provided. Should only be called on UAVs with a floating point format, or on structured buffers. Structured buffers are treated as a regular R32_UINT buffer during the clear operation, and the Values.X component is copied directly into the buffer without any format conversion. (Y,Z,W) of Values is ignored. Typed floating point buffers undergo standard format conversion during the write operation. The conversion is determined by the format of the UAV.

Parameters
UnorderedAccessViewRHIThe UAV to clear.
ValuesThe values to clear the UAV to, one component per channel (XYZW = RGBA). Channels not supported by the UAV are ignored.

Implements IRHIComputeContext.

◆ RHIClearUAVUint()

void FD3D11DynamicRHI::RHIClearUAVUint ( FRHIUnorderedAccessView UnorderedAccessViewRHI,
const FUintVector4 Values 
)
finaloverridevirtual

Clears a UAV to the multi-component unsigned integer value provided. Should only be called on UAVs with an integer format, or on structured buffers. Structured buffers are treated as a regular R32_UINT buffer during the clear operation, and the Values.X component is copied directly into the buffer without any format conversion. (Y,Z,W) of Values is ignored. Typed integer buffers undergo standard format conversion during the write operation. The conversion is determined by the format of the UAV.

Parameters
UnorderedAccessViewRHIThe UAV to clear.
ValuesThe values to clear the UAV to, one component per channel (XYZW = RGBA). Channels not supported by the UAV are ignored.

Implements IRHIComputeContext.

◆ RHIComputeMemorySize()

uint32 FD3D11DynamicRHI::RHIComputeMemorySize ( FRHITexture TextureRHI)
finaloverridevirtual

Computes the size in memory required by a given texture.

Parameters
TextureRHI- Texture we want to know the size of, 0 is safely ignored
Returns
- Size in Bytes

Implements FDynamicRHI.

◆ RHICopyBufferRegion()

void FD3D11DynamicRHI::RHICopyBufferRegion ( FRHIBuffer DestBuffer,
uint64  DstOffset,
FRHIBuffer SourceBuffer,
uint64  SrcOffset,
uint64  NumBytes 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHICopyTexture()

void FD3D11DynamicRHI::RHICopyTexture ( FRHITexture SourceTexture,
FRHITexture DestTexture,
const FRHICopyTextureInfo CopyInfo 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHICopyToStagingBuffer()

void FD3D11DynamicRHI::RHICopyToStagingBuffer ( FRHIBuffer SourceBufferRHI,
FRHIStagingBuffer DestinationStagingBufferRHI,
uint32  InOffset,
uint32  InNumBytes 
)
finaloverridevirtual

Performs a copy of the data in 'SourceBuffer' to 'DestinationStagingBuffer.' This will occur inline on the GPU timeline. This is a mechanism to perform nonblocking readback of a buffer at a point in time.

Parameters
SourceBufferThe source vertex buffer that will be inlined copied.
DestinationStagingBufferThe the host-visible destination buffer
OffsetThe start of the data in 'SourceBuffer'
NumBytesThe number of bytes to copy out of 'SourceBuffer'

Reimplemented from IRHIComputeContext.

◆ RHICreateAliasedTexture()

FTextureRHIRef FD3D11DynamicRHI::RHICreateAliasedTexture ( FTextureRHIRef SourceTexture)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateBlendState()

FBlendStateRHIRef FD3D11DynamicRHI::RHICreateBlendState ( const FBlendStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateBoundShaderState()

FBoundShaderStateRHIRef FD3D11DynamicRHI::RHICreateBoundShaderState ( FRHIVertexDeclaration VertexDeclarationRHI,
FRHIVertexShader VertexShaderRHI,
FRHIPixelShader PixelShaderRHI,
FRHIGeometryShader GeometryShaderRHI 
)
finaloverridevirtual

Creates a bound shader state instance which encapsulates a decl, vertex shader, and pixel shader

Parameters
VertexDeclaration- existing vertex decl
StreamStrides- optional stream strides
VertexShader- existing vertex shader
PixelShader- existing pixel shader
GeometryShader- existing geometry shader

Implements FDynamicRHI.

◆ RHICreateBufferInitializer()

FRHIBufferInitializer FD3D11DynamicRHI::RHICreateBufferInitializer ( FRHICommandListBase RHICmdList,
const FRHIBufferCreateDesc CreateDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateComputeShader()

FComputeShaderRHIRef FD3D11DynamicRHI::RHICreateComputeShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateDepthStencilState()

FDepthStencilStateRHIRef FD3D11DynamicRHI::RHICreateDepthStencilState ( const FDepthStencilStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGeometryShader()

FGeometryShaderRHIRef FD3D11DynamicRHI::RHICreateGeometryShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGPUFence()

FGPUFenceRHIRef FD3D11DynamicRHI::RHICreateGPUFence ( const FName Name)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreatePixelShader()

FPixelShaderRHIRef FD3D11DynamicRHI::RHICreatePixelShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRasterizerState()

FRasterizerStateRHIRef FD3D11DynamicRHI::RHICreateRasterizerState ( const FRasterizerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRenderQuery()

FRenderQueryRHIRef FD3D11DynamicRHI::RHICreateRenderQuery ( ERenderQueryType  QueryType)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateSamplerState()

FSamplerStateRHIRef FD3D11DynamicRHI::RHICreateSamplerState ( const FSamplerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateShaderResourceView()

FShaderResourceViewRHIRef FD3D11DynamicRHI::RHICreateShaderResourceView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateStagingBuffer()

FStagingBufferRHIRef FD3D11DynamicRHI::RHICreateStagingBuffer ( )
finaloverridevirtual

Creates a staging buffer, which is memory visible to the cpu without any locking.

Returns
The new staging-buffer.

Reimplemented from FDynamicRHI.

◆ RHICreateTexture2DArrayFromResource()

FTextureRHIRef FD3D11DynamicRHI::RHICreateTexture2DArrayFromResource ( EPixelFormat  Format,
ETextureCreateFlags  TexCreateFlags,
const FClearValueBinding ClearValueBinding,
ID3D11Texture2D Resource 
)
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHICreateTexture2DFromResource()

FTextureRHIRef FD3D11DynamicRHI::RHICreateTexture2DFromResource ( EPixelFormat  Format,
ETextureCreateFlags  TexCreateFlags,
const FClearValueBinding ClearValueBinding,
ID3D11Texture2D Resource 
)
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHICreateTextureCubeFromResource()

FTextureRHIRef FD3D11DynamicRHI::RHICreateTextureCubeFromResource ( EPixelFormat  Format,
ETextureCreateFlags  TexCreateFlags,
const FClearValueBinding ClearValueBinding,
ID3D11Texture2D Resource 
)
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHICreateTextureInitializer()

FRHITextureInitializer FD3D11DynamicRHI::RHICreateTextureInitializer ( FRHICommandListBase RHICmdList,
const FRHITextureCreateDesc CreateDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateTransition()

void FD3D11DynamicRHI::RHICreateTransition ( FRHITransition Transition,
const FRHITransitionCreateInfo CreateInfo 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateUniformBuffer()

FUniformBufferRHIRef FD3D11DynamicRHI::RHICreateUniformBuffer ( const void Contents,
const FRHIUniformBufferLayout Layout,
EUniformBufferUsage  Usage,
EUniformBufferValidation  Validation 
)
finaloverridevirtual

Creates a uniform buffer. The contents of the uniform buffer are provided in a parameter, and are immutable. CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. Thus is need not be threadsafe on platforms that do not support or aren't using an RHIThread

Parameters
Contents- A pointer to a memory block of size NumBytes that is copied into the new uniform buffer.
NumBytes- The number of bytes the uniform buffer should contain.
Returns
The new uniform buffer.

Implements FDynamicRHI.

◆ RHICreateUnorderedAccessView()

FUnorderedAccessViewRHIRef FD3D11DynamicRHI::RHICreateUnorderedAccessView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexDeclaration()

FVertexDeclarationRHIRef FD3D11DynamicRHI::RHICreateVertexDeclaration ( const FVertexDeclarationElementList Elements)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexShader()

FVertexShaderRHIRef FD3D11DynamicRHI::RHICreateVertexShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateViewport()

FViewportRHIRef FD3D11DynamicRHI::RHICreateViewport ( void WindowHandle,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
overridevirtual

Implements FDynamicRHI.

◆ RHIDispatchComputeShader()

void FD3D11DynamicRHI::RHIDispatchComputeShader ( uint32  ThreadGroupCountX,
uint32  ThreadGroupCountY,
uint32  ThreadGroupCountZ 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDispatchIndirectComputeShader()

void FD3D11DynamicRHI::RHIDispatchIndirectComputeShader ( FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedIndirect()

void FD3D11DynamicRHI::RHIDrawIndexedIndirect ( FRHIBuffer IndexBufferRHI,
FRHIBuffer ArgumentsBufferRHI,
int32  DrawArgumentsIndex,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedPrimitive()

void FD3D11DynamicRHI::RHIDrawIndexedPrimitive ( FRHIBuffer IndexBuffer,
int32  BaseVertexIndex,
uint32  FirstInstance,
uint32  NumVertices,
uint32  StartIndex,
uint32  NumPrimitives,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedPrimitiveIndirect()

void FD3D11DynamicRHI::RHIDrawIndexedPrimitiveIndirect ( FRHIBuffer IndexBuffer,
FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawPrimitive()

void FD3D11DynamicRHI::RHIDrawPrimitive ( uint32  BaseVertexIndex,
uint32  NumPrimitives,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawPrimitiveIndirect()

void FD3D11DynamicRHI::RHIDrawPrimitiveIndirect ( FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEnableDepthBoundsTest()

virtual void FD3D11DynamicRHI::RHIEnableDepthBoundsTest ( bool  bEnable)
inlinefinaloverridevirtual

◆ RHIEndDrawingViewport()

void FD3D11DynamicRHI::RHIEndDrawingViewport ( FRHIViewport Viewport,
bool  bPresent,
bool  bLockToVsync 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndFrame()

void FD3D11DynamicRHI::RHIEndFrame ( const FRHIEndFrameArgs Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIEndRenderPass()

void FD3D11DynamicRHI::RHIEndRenderPass ( )
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndRenderQuery()

void FD3D11DynamicRHI::RHIEndRenderQuery ( FRHIRenderQuery RenderQuery)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndRenderQuery_TopOfPipe()

void FD3D11DynamicRHI::RHIEndRenderQuery_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIRenderQuery RenderQuery 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIEndTransitions()

void FD3D11DynamicRHI::RHIEndTransitions ( TArrayView< const FRHITransition * >  Transitions)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHIEndUAVOverlap()

void FD3D11DynamicRHI::RHIEndUAVOverlap ( )
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHIEndUpdateTexture3D()

void FD3D11DynamicRHI::RHIEndUpdateTexture3D ( FRHICommandListBase RHICmdList,
FUpdateTexture3DData UpdateData 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIFinalizeContext()

void FD3D11DynamicRHI::RHIFinalizeContext ( FRHIFinalizeContextArgs &&  Args,
TRHIPipelineArray< IRHIPlatformCommandList * > &  Output 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIFlushResources()

void FD3D11DynamicRHI::RHIFlushResources ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetAdapter()

IDXGIAdapter * FD3D11DynamicRHI::RHIGetAdapter ( ) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetAvailableResolutions()

bool FD3D11DynamicRHI::RHIGetAvailableResolutions ( FScreenResolutionArray Resolutions,
bool  bIgnoreRefreshRate 
)
finaloverridevirtual

Retrieve available screen resolutions.

Parameters
ResolutionsTArray<FScreenResolutionRHI> parameter that will be filled in.
bIgnoreRefreshRateIf true, ignore refresh rates.
Returns
bool true if successfully filled the array

Implements FDynamicRHI.

◆ RHIGetCommandContext()

IRHIComputeContext * FD3D11DynamicRHI::RHIGetCommandContext ( ERHIPipeline  Pipeline,
FRHIGPUMask  GPUMask 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetDefaultContext()

IRHICommandContext * FD3D11DynamicRHI::RHIGetDefaultContext ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetDevice()

ID3D11Device * FD3D11DynamicRHI::RHIGetDevice ( ) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetDeviceContext()

ID3D11DeviceContext * FD3D11DynamicRHI::RHIGetDeviceContext ( ) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetDisplaysInformation()

void FD3D11DynamicRHI::RHIGetDisplaysInformation ( FDisplayInformationArray OutDisplayInformation)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIGetNativeCommandBuffer()

void * FD3D11DynamicRHI::RHIGetNativeCommandBuffer ( )
finaloverridevirtual

Provides access to the native command buffer. Generally this should be avoided but is useful for third party plugins.

Reimplemented from FDynamicRHI.

◆ RHIGetNativeDevice()

void * FD3D11DynamicRHI::RHIGetNativeDevice ( )
finaloverridevirtual

Provides access to the native device. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetNativeInstance()

void * FD3D11DynamicRHI::RHIGetNativeInstance ( )
finaloverridevirtual

Provides access to the native instance. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetRenderQueryResult()

bool FD3D11DynamicRHI::RHIGetRenderQueryResult ( FRHIRenderQuery RenderQuery,
uint64 OutResult,
bool  bWait,
uint32  GPUIndex = INDEX_NONE 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetRenderTargetView()

ID3D11RenderTargetView * FD3D11DynamicRHI::RHIGetRenderTargetView ( FRHITexture InTexture,
int32  InMipIndex = 0,
int32  InArraySliceIndex = -1 
) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetResource() [1/2]

ID3D11Buffer * FD3D11DynamicRHI::RHIGetResource ( FRHIBuffer InBuffer) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetResource() [2/2]

ID3D11Resource * FD3D11DynamicRHI::RHIGetResource ( FRHITexture InTexture) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetResourceMemorySize()

int64 FD3D11DynamicRHI::RHIGetResourceMemorySize ( FRHITexture InTexture) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetShaderResourceView()

ID3D11ShaderResourceView * FD3D11DynamicRHI::RHIGetShaderResourceView ( FRHITexture InTexture) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetSupportedResolution()

void FD3D11DynamicRHI::RHIGetSupportedResolution ( uint32 Width,
uint32 Height 
)
finaloverridevirtual

Returns a supported screen resolution that most closely matches the input.

Parameters
Width- Input: Desired resolution width in pixels. Output: A width that the platform supports.
Height- Input: Desired resolution height in pixels. Output: A height that the platform supports.

Implements FDynamicRHI.

◆ RHIGetSwapChain()

IDXGISwapChain * FD3D11DynamicRHI::RHIGetSwapChain ( FRHIViewport InViewport) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetSwapChainFormat()

DXGI_FORMAT FD3D11DynamicRHI::RHIGetSwapChainFormat ( EPixelFormat  InFormat) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIGetTextureMemoryStats()

void FD3D11DynamicRHI::RHIGetTextureMemoryStats ( FTextureMemoryStats OutStats)
finaloverridevirtual

Retrieves texture memory stats. safe to call on the main thread

Implements FDynamicRHI.

◆ RHIGetTextureMemoryVisualizeData()

bool FD3D11DynamicRHI::RHIGetTextureMemoryVisualizeData ( FColor TextureData,
int32  SizeX,
int32  SizeY,
int32  Pitch,
int32  PixelSize 
)
finaloverridevirtual

Fills a texture with to visualize the texture pool memory.

Parameters
TextureDataStart address
SizeXNumber of pixels along X
SizeYNumber of pixels along Y
PitchNumber of bytes between each row
PixelSizeNumber of bytes each pixel represents
Returns
true if successful, false otherwise

Implements FDynamicRHI.

◆ RHIGetViewportBackBuffer()

FTextureRHIRef FD3D11DynamicRHI::RHIGetViewportBackBuffer ( FRHIViewport Viewport)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIHandleDisplayChange()

void FD3D11DynamicRHI::RHIHandleDisplayChange ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHILockStagingBuffer()

void * FD3D11DynamicRHI::RHILockStagingBuffer ( FRHIStagingBuffer StagingBuffer,
FRHIGPUFence Fence,
uint32  Offset,
uint32  SizeRHI 
)
finaloverridevirtual

Lock a staging buffer to read contents on the CPU that were written by the GPU, without having to stall. @discussion This function requires that you have issued an CopyToStagingBuffer invocation and verified that the FRHIGPUFence has been signaled before calling.

Parameters
StagingBufferThe buffer to lock.
FenceAn optional fence synchronized with the last buffer update.
OffsetThe offset in the buffer to return.
SizeRHIThe length of the region in the buffer to lock.
Returns
A pointer to the data starting at 'Offset' and of length 'SizeRHI' from 'StagingBuffer', or nullptr when there is an error.

Reimplemented from FDynamicRHI.

◆ RHILockTexture()

FRHILockTextureResult FD3D11DynamicRHI::RHILockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIMapStagingSurface()

void FD3D11DynamicRHI::RHIMapStagingSurface ( FRHITexture Texture,
FRHIGPUFence Fence,
void *&  OutData,
int32 OutWidth,
int32 OutHeight,
uint32  GPUIndex = 0 
)
finaloverridevirtual

Implemented by the platform to read directly from the texture. Useful for getting the last back buffer content after a crash. As the RHIReadSurfaceData implementation will copy the texture's content to a new temporary buffer, that won't work for an unknown crash state. Watch out for OutData to be 0 (can happen on DXGI_ERROR_DEVICE_REMOVED), don't call RHIUnmapStagingSurface in that case.

Implements FDynamicRHI.

◆ RHIRead3DSurfaceFloatData()

void FD3D11DynamicRHI::RHIRead3DSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
FIntPoint  ZMinMax,
TArray< FFloat16Color > &  OutData 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [1/2]

void FD3D11DynamicRHI::RHIReadSurfaceData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reads the contents of a texture to an output buffer (non MSAA and MSAA) and returns it as a FColor array. If the format or texture type is unsupported the OutData array will be size 0

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [2/2]

void FD3D11DynamicRHI::RHIReadSurfaceData ( FRHITexture TextureRHI,
FIntRect  InRect,
TArray< FLinearColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReadSurfaceFloatData()

void FD3D11DynamicRHI::RHIReadSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FFloat16Color > &  OutData,
ECubeFace  CubeFace,
int32  ArrayIndex,
int32  MipIndex 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIRegisterWork()

void FD3D11DynamicRHI::RHIRegisterWork ( uint32  NumPrimitives)
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIReleaseTransition()

void FD3D11DynamicRHI::RHIReleaseTransition ( FRHITransition Transition)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReplaceResources()

void FD3D11DynamicRHI::RHIReplaceResources ( FRHICommandListBase RHICmdList,
TArray< FRHIResourceReplaceInfo > &&  ReplaceInfos 
)
finaloverridevirtual

Transfer metadata and underlying resource from src to dest and release any resource owned by dest.

Parameters
DestBuffer- the buffer to update
SrcBuffer- don't use after call. If null, will release any resource owned by DestBuffer

Implements FDynamicRHI.

◆ RHIResizeViewport() [1/2]

void FD3D11DynamicRHI::RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIResizeViewport() [2/2]

void FD3D11DynamicRHI::RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHISetBlendFactor()

void FD3D11DynamicRHI::RHISetBlendFactor ( const FLinearColor BlendFactor)
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetBlendState()

void FD3D11DynamicRHI::RHISetBlendState ( FRHIBlendState NewState,
const FLinearColor BlendFactor 
)
finaloverridevirtual

◆ RHISetBoundShaderState()

void FD3D11DynamicRHI::RHISetBoundShaderState ( FRHIBoundShaderState BoundShaderStateRHI)
finaloverridevirtual

Set bound shader state. This will set the vertex decl/shader, and pixel shader

Parameters
BoundShaderState- state resource

Implements IRHICommandContextPSOFallback.

◆ RHISetComputeShader()

void FD3D11DynamicRHI::RHISetComputeShader ( FRHIComputeShader ComputeShader)
finaloverridevirtual

◆ RHISetDepthBounds()

virtual void FD3D11DynamicRHI::RHISetDepthBounds ( float  MinDepth,
float  MaxDepth 
)
inlinefinaloverridevirtual

Sets Depth Bounds range with the given min/max depth.

Parameters
MinDepthThe minimum depth for depth bounds test
MaxDepthThe maximum depth for depth bounds test. The valid values for fMinDepth and fMaxDepth are such that 0 <= fMinDepth <= fMaxDepth <= 1

Implements IRHICommandContext.

◆ RHISetDepthStencilState()

void FD3D11DynamicRHI::RHISetDepthStencilState ( FRHIDepthStencilState NewState,
uint32  StencilRef 
)
finaloverridevirtual

◆ RHISetGraphicsPipelineState()

void FD3D11DynamicRHI::RHISetGraphicsPipelineState ( FRHIGraphicsPipelineState GraphicsState,
uint32  StencilRef,
bool  bApplyAdditionalState 
)
finaloverridevirtual

This will set most relevant pipeline state. Legacy APIs are expected to set corresponding disjoint state as well.

Parameters
GraphicsShaderState- the graphics pipeline state

Reimplemented from IRHICommandContextPSOFallback.

◆ RHISetMultipleViewports()

void FD3D11DynamicRHI::RHISetMultipleViewports ( uint32  Count,
const FViewportBounds Data 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetRasterizerState()

void FD3D11DynamicRHI::RHISetRasterizerState ( FRHIRasterizerState NewState)
finaloverridevirtual

◆ RHISetScissorRect()

void FD3D11DynamicRHI::RHISetScissorRect ( bool  bEnable,
uint32  MinX,
uint32  MinY,
uint32  MaxX,
uint32  MaxY 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetShaderParameters() [1/2]

void FD3D11DynamicRHI::RHISetShaderParameters ( FRHIComputeShader Shader,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters,
TConstArrayView< FRHIShaderParameterResource InBindlessParameters 
)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetShaderParameters() [2/2]

void FD3D11DynamicRHI::RHISetShaderParameters ( FRHIGraphicsShader Shader,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters,
TConstArrayView< FRHIShaderParameterResource InBindlessParameters 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetShaderUnbinds() [1/2]

void FD3D11DynamicRHI::RHISetShaderUnbinds ( FRHIComputeShader Shader,
TConstArrayView< FRHIShaderParameterUnbind InUnbinds 
)
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHISetShaderUnbinds() [2/2]

void FD3D11DynamicRHI::RHISetShaderUnbinds ( FRHIGraphicsShader Shader,
TConstArrayView< FRHIShaderParameterUnbind InUnbinds 
)
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetStaticUniformBuffer()

void FD3D11DynamicRHI::RHISetStaticUniformBuffer ( FUniformBufferStaticSlot  Slot,
FRHIUniformBuffer Buffer 
)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetStaticUniformBuffers()

void FD3D11DynamicRHI::RHISetStaticUniformBuffers ( const FUniformBufferStaticBindings InUniformBuffers)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetStencilRef()

void FD3D11DynamicRHI::RHISetStencilRef ( uint32  StencilRef)
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetStereoViewport()

void FD3D11DynamicRHI::RHISetStereoViewport ( float  LeftMinX,
float  RightMinX,
float  LeftMinY,
float  RightMinY,
float  MinZ,
float  LeftMaxX,
float  RightMaxX,
float  LeftMaxY,
float  RightMaxY,
float  MaxZ 
)
overridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetStreamSource()

void FD3D11DynamicRHI::RHISetStreamSource ( uint32  StreamIndex,
FRHIBuffer VertexBuffer,
uint32  Offset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetViewport()

void FD3D11DynamicRHI::RHISetViewport ( float  MinX,
float  MinY,
float  MinZ,
float  MaxX,
float  MaxY,
float  MaxZ 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISubmitCommandLists()

void FD3D11DynamicRHI::RHISubmitCommandLists ( FRHISubmitCommandListsArgs &&  Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHITick()

void FD3D11DynamicRHI::RHITick ( float  DeltaTime)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnlockStagingBuffer()

void FD3D11DynamicRHI::RHIUnlockStagingBuffer ( FRHIStagingBuffer StagingBuffer)
finaloverridevirtual

Unlock a staging buffer previously locked with RHILockStagingBuffer.

Parameters
StagingBufferThe buffer that was previously locked.

Reimplemented from FDynamicRHI.

◆ RHIUnlockTexture()

void FD3D11DynamicRHI::RHIUnlockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnmapStagingSurface()

void FD3D11DynamicRHI::RHIUnmapStagingSurface ( FRHITexture Texture,
uint32  GPUIndex = 0 
)
finaloverridevirtual

call after a succesful RHIMapStagingSurface() call

Implements FDynamicRHI.

◆ RHIUpdateTexture2D()

void FD3D11DynamicRHI::RHIUpdateTexture2D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)
finaloverridevirtual

Updates a region of a 2D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourcePitch- size in bytes of each row of the source image
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateTexture3D()

void FD3D11DynamicRHI::RHIUpdateTexture3D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion,
uint32  SourceRowPitch,
uint32  SourceDepthPitch,
const uint8 SourceData 
)
finaloverridevirtual

Updates a region of a 3D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourceRowPitch- size in bytes of each row of the source image, usually Bpp * SizeX
SourceDepthPitch- size in bytes of each depth slice of the source image, usually Bpp * SizeX * SizeY
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateUniformBuffer()

void FD3D11DynamicRHI::RHIUpdateUniformBuffer ( FRHICommandListBase RHICmdList,
FRHIUniformBuffer UniformBufferRHI,
const void Contents 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIVerifyResult()

void FD3D11DynamicRHI::RHIVerifyResult ( ID3D11Device Device,
HRESULT  Result,
const ANSICHAR Code,
const ANSICHAR Filename,
uint32  Line 
) const
finaloverridevirtual

Implements ID3D11DynamicRHI.

◆ RHIWriteGPUFence()

void FD3D11DynamicRHI::RHIWriteGPUFence ( FRHIGPUFence FenceRHI)
finaloverridevirtual

Write the fence in the GPU timeline. The fence can then be tested on the CPU to know if the previous GPU commands are completed.

Parameters
Fence

Reimplemented from IRHIComputeContext.

◆ RHIWriteGPUFence_TopOfPipe()

void FD3D11DynamicRHI::RHIWriteGPUFence_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIGPUFence FenceRHI 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ SetRenderTargets()

void FD3D11DynamicRHI::SetRenderTargets ( uint32  NumSimultaneousRenderTargets,
const FRHIRenderTargetView NewRenderTargets,
const FRHIDepthRenderTargetView NewDepthStencilTarget 
)

◆ SetRenderTargetsAndClear()

void FD3D11DynamicRHI::SetRenderTargetsAndClear ( const FRHISetRenderTargetsInfo RenderTargetsInfo)

◆ SetResourcesFromTables() [1/2]

template<class ShaderType >
void FD3D11DynamicRHI::SetResourcesFromTables ( const ShaderType *RESTRICT  Shader)

◆ SetResourcesFromTables() [2/2]

template<class ShaderType >
void FD3D11DynamicRHI::SetResourcesFromTables ( const ShaderType *  RESTRICT)
protected

◆ SetShaderParametersCommon()

template<EShaderFrequency ShaderFrequency>
void FD3D11DynamicRHI::SetShaderParametersCommon ( FD3D11ConstantBuffer StageConstantBuffer,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters 
)

◆ SetShaderResourceView()

template<EShaderFrequency ShaderFrequency>
void FD3D11DynamicRHI::SetShaderResourceView ( FD3D11ViewableResource Resource,
ID3D11ShaderResourceView SRV,
int32  ResourceIndex 
)
inline

◆ SetShaderUnbindsCommon()

template<EShaderFrequency ShaderFrequency>
void FD3D11DynamicRHI::SetShaderUnbindsCommon ( TConstArrayView< FRHIShaderParameterUnbind InUnbinds)

◆ SetupAfterDeviceCreation()

void FD3D11DynamicRHI::SetupAfterDeviceCreation ( )
protected

◆ SetupDisplayHDRMetaData()

bool FD3D11DynamicRHI::SetupDisplayHDRMetaData ( )
protected

◆ Shutdown()

void FD3D11DynamicRHI::Shutdown ( )
overridevirtual

Shutdown the RHI; handle shutdown and resource destruction before the RHI's actual destructor is called (so that all resources of the RHI are still available for shutdown).

Implements FDynamicRHI.

◆ UnlockBuffer_BottomOfPipe()

void FD3D11DynamicRHI::UnlockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ UpdateMemoryStats()

void FD3D11DynamicRHI::UpdateMemoryStats ( )
protected

◆ UpdateMSAASettings()

void FD3D11DynamicRHI::UpdateMSAASettings ( )
protected

◆ ValidateExclusiveDepthStencilAccess()

void FD3D11DynamicRHI::ValidateExclusiveDepthStencilAccess ( FExclusiveDepthStencil  Src) const
protected

Friends And Related Symbol Documentation

◆ FD3D11RenderQuery

friend class FD3D11RenderQuery
friend

◆ FD3D11Viewport

friend class FD3D11Viewport
friend

◆ FD3DGPUProfiler

Member Data Documentation

◆ [struct]

struct { ... } FD3D11DynamicRHI::ActiveQueries

◆ Adapter

FD3D11Adapter FD3D11DynamicRHI::Adapter
protected

◆ AmdAgsContext

AGSContext* FD3D11DynamicRHI::AmdAgsContext
protected

The context for the AMD AGS utility library. AGSContext does not implement AddRef/Release. Just use a bare pointer.

◆ AvailableMSAAQualities

uint32 FD3D11DynamicRHI::AvailableMSAAQualities[DX_MAX_MSAA_COUNT+1]
protected

◆ bCurrentDepthStencilStateIsReadOnly

bool FD3D11DynamicRHI::bCurrentDepthStencilStateIsReadOnly
protected

◆ bDiscardSharedConstants

bool FD3D11DynamicRHI::bDiscardSharedConstants
protected

When a new shader is set, we discard all old constants set for the previous shader.

◆ bDXGISupportsHDR

bool FD3D11DynamicRHI::bDXGISupportsHDR
protected

◆ BoundShaderStateHistory

TGlobalResource< TBoundShaderStateHistory<10000> > FD3D11DynamicRHI::BoundShaderStateHistory
protected

A history of the most recently used bound shader states, used to keep transient bound shader states from being recreated for each use.

◆ BoundUniformBuffers

FRHIUniformBuffer* FD3D11DynamicRHI::BoundUniformBuffers[SF_NumStandardFrequencies][MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE]
protected

Track the currently bound uniform buffers.

◆ bRenderDoc

bool FD3D11DynamicRHI::bRenderDoc = false
protected

◆ bUAVOverlapEnabled

bool FD3D11DynamicRHI::bUAVOverlapEnabled = false
protected

◆ CSConstantBuffer

TRefCountPtr<FD3D11ConstantBuffer> FD3D11DynamicRHI::CSConstantBuffer
protected

◆ CurrentComputeShader

FComputeShaderRHIRef FD3D11DynamicRHI::CurrentComputeShader
protected

◆ CurrentDepthStencilTarget

TRefCountPtr<ID3D11DepthStencilView> FD3D11DynamicRHI::CurrentDepthStencilTarget
protected

◆ CurrentDepthTexture

TRefCountPtr<FD3D11Texture> FD3D11DynamicRHI::CurrentDepthTexture
protected

◆ CurrentDSVAccessType

FExclusiveDepthStencil FD3D11DynamicRHI::CurrentDSVAccessType
protected

Tracks the current depth stencil access type.

◆ CurrentRenderTargets

TRefCountPtr<ID3D11RenderTargetView> FD3D11DynamicRHI::CurrentRenderTargets[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]
protected

◆ CurrentResourceBoundAsIB

FD3D11ViewableResource* FD3D11DynamicRHI::CurrentResourceBoundAsIB
protected

◆ CurrentResourcesBoundAsSRVs

FD3D11ViewableResource* FD3D11DynamicRHI::CurrentResourcesBoundAsSRVs[SF_NumStandardFrequencies][D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT]
protected

◆ CurrentResourcesBoundAsVBs

FD3D11ViewableResource* FD3D11DynamicRHI::CurrentResourcesBoundAsVBs[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
protected

◆ CurrentRTVOverlapMask

uint32 FD3D11DynamicRHI::CurrentRTVOverlapMask
protected

◆ CurrentUAVMask

uint32 FD3D11DynamicRHI::CurrentUAVMask
protected

◆ CurrentUAVs

TRefCountPtr<FD3D11UnorderedAccessView> FD3D11DynamicRHI::CurrentUAVs[D3D11_PS_CS_UAV_REGISTER_COUNT]
protected

◆ Direct3DDevice

TRefCountPtr<FD3D11Device> FD3D11DynamicRHI::Direct3DDevice
protected

The global D3D device's immediate context

◆ Direct3DDeviceIMAnnotation

TRefCountPtr<ID3DUserDefinedAnnotation> FD3D11DynamicRHI::Direct3DDeviceIMAnnotation
protected

◆ Direct3DDeviceIMContext

TRefCountPtr<FD3D11DeviceContext> FD3D11DynamicRHI::Direct3DDeviceIMContext
protected

The global D3D device's immediate context

◆ DirtyUniformBuffers

uint16 FD3D11DynamicRHI::DirtyUniformBuffers[SF_NumStandardFrequencies]
protected

Bit array to track which uniform buffers have changed since the last draw call.

◆ DisplayList

FDisplayInformationArray FD3D11DynamicRHI::DisplayList
protected

◆ DXGIFactory1

TRefCountPtr<IDXGIFactory1> FD3D11DynamicRHI::DXGIFactory1
protected

The global D3D interface.

◆ ExceptionHandlerHandle

HANDLE FD3D11DynamicRHI::ExceptionHandlerHandle = INVALID_HANDLE_VALUE
protected

◆ FeatureLevel

D3D_FEATURE_LEVEL FD3D11DynamicRHI::FeatureLevel
protected

The feature level of the device.

◆ First

FD3D11RenderQuery* FD3D11DynamicRHI::First = nullptr

◆ GPUProfilingData

FD3DGPUProfiler FD3D11DynamicRHI::GPUProfilingData
protected

◆ GSConstantBuffer

TRefCountPtr<FD3D11ConstantBuffer> FD3D11DynamicRHI::GSConstantBuffer
protected

◆ Last

FD3D11RenderQuery* FD3D11DynamicRHI::Last = nullptr

◆ LockTracker

FD3D11LockTracker FD3D11DynamicRHI::LockTracker
protected

Tracks outstanding locks on each thread

◆ LockTrackerCS

FCriticalSection FD3D11DynamicRHI::LockTrackerCS
protected

◆ MaxBoundShaderResourcesIndex

int32 FD3D11DynamicRHI::MaxBoundShaderResourcesIndex[SF_NumStandardFrequencies]
protected

◆ MaxBoundVertexBufferIndex

int32 FD3D11DynamicRHI::MaxBoundVertexBufferIndex
protected

◆ NumSimultaneousRenderTargets

uint32 FD3D11DynamicRHI::NumSimultaneousRenderTargets
protected

◆ NumUAVs

uint32 FD3D11DynamicRHI::NumUAVs
protected

◆ PresentCounter

uint32 FD3D11DynamicRHI::PresentCounter
protected

Internal frame counter that just counts calls to Present

◆ PrimitiveType

EPrimitiveType FD3D11DynamicRHI::PrimitiveType
protected

◆ Profiler

struct FD3D11DynamicRHI::FProfiler FD3D11DynamicRHI::Profiler
protected

◆ PSConstantBuffer

TRefCountPtr<FD3D11ConstantBuffer> FD3D11DynamicRHI::PSConstantBuffer
protected

◆ StateCache

FD3D11StateCache FD3D11DynamicRHI::StateCache
protected

◆ StaticUniformBuffers

TArray<FRHIUniformBuffer*> FD3D11DynamicRHI::StaticUniformBuffers
protected

◆ TimestampCalibration

TOptional<FTimestampCalibration> FD3D11DynamicRHI::TimestampCalibration
protected

◆ UAVBindCount

uint32 FD3D11DynamicRHI::UAVBindCount
protected

◆ UAVBindFirst

uint32 FD3D11DynamicRHI::UAVBindFirst
protected

◆ UAVBound

ID3D11UnorderedAccessView* FD3D11DynamicRHI::UAVBound[D3D11_PS_CS_UAV_REGISTER_COUNT]
protected

◆ UAVSChanged

uint32 FD3D11DynamicRHI::UAVSChanged
protected

◆ Viewports

TArray<FD3D11Viewport*> FD3D11DynamicRHI::Viewports
protected

A list of all viewport RHIs that have been created.

◆ VSConstantBuffer

TRefCountPtr<FD3D11ConstantBuffer> FD3D11DynamicRHI::VSConstantBuffer
protected

A list of all D3D constant buffers RHIs that have been created.

◆ ZeroBuffer

void* FD3D11DynamicRHI::ZeroBuffer
protected

A buffer in system memory containing all zeroes of the specified size.

◆ ZeroBufferSize

uint32 FD3D11DynamicRHI::ZeroBufferSize
protected

The documentation for this class was generated from the following files: