14#if ENABLE_RHI_VALIDATION
21#define RHI_VALIDATION_CHECK(InExpression, InMessage) \
24 if(UNLIKELY(!(InExpression))) \
26 FValidationRHI::ReportValidationFailure(InMessage); \
45 auto GetBufferDesc = [&]() -> FString {
return FString::Printf(
TEXT(
"Buffer: %s, Size: %u, Stride: %u, Offset: %u, ArgSize: %u"), ArgumentBuffer->GetDebugName(), ArgumentBuffer->
GetSize(), ArgumentBuffer->
GetStride(), ArgumentOffset,
ArgumentSize); };
65 RHIName =
RHI->GetName();
66 RHIName +=
TEXT(
"_Validation");
75 check(
RHI->PixelFormatBlockBytes.Num() <= PixelFormatBlockBytes.Num());
93 return RHI->GetInterfaceType();
104 virtual void RHIEndFrame(
const FRHIEndFrameArgs& Args)
override final;
180 return RHI->RHICreateVertexDeclaration(Elements);
186 return RHI->RHICreatePixelShader(Code,
Hash);
192 return RHI->RHICreateVertexShader(Code,
Hash);
199 return RHI->RHICreateGeometryShader(Code,
Hash);
206 return RHI->RHICreateMeshShader(Code,
Hash);
213 return RHI->RHICreateAmplificationShader(Code,
Hash);
219 RHI->FlushPendingLogs();
225 return RHI->RHICreateComputeShader(Code,
Hash);
243 return RHI->RHICreateGPUFence(
Name);
248 RHI->RHIWriteGPUFence_TopOfPipe(RHICmdList,
FenceRHI);
255 RHI->RHIReleaseTransition(Transition);
267 return RHI->RHICreateStagingBuffer();
290 RHI->RHIUnlockStagingBuffer(StagingBuffer);
305 return RHI->LockStagingBuffer_RenderThread(RHICmdList, StagingBuffer, Fence,
Offset,
SizeRHI);
315 RHI->UnlockStagingBuffer_RenderThread(RHICmdList, StagingBuffer);
325 RHI->RHIUnmapStagingSurface_RenderThread(RHICmdList,
Texture, GPUIndex);
343#if PLATFORM_SUPPORTS_MESH_SHADERS && PLATFORM_USE_FALLBACK_PSO
411 check(UniformBufferRHI);
413 RHI->RHIUpdateUniformBuffer(RHICmdList, UniformBufferRHI, Contents);
423 return RHI->RHICreateBufferInitializer(RHICmdList, CreateDesc);
433 RHI->RHIUnlockBuffer(RHICmdList,
Buffer);
437 RHI->RHIUnlockBufferMGPU(RHICmdList,
Buffer, GPUIndex);
440#if ENABLE_LOW_LEVEL_MEM_TRACKER || UE_MEMORY_TRACE_ENABLED
443 RHI->RHIUpdateAllocationTags(RHICmdList,
Buffer);
461 return RHI->RHICreateResourceCollection(RHICmdList,
InMembers);
475 ensure(FirstMipIndex < Desc.NumMips);
477 return RHI->RHICalcTexturePlatformSize(Desc, FirstMipIndex);
504 return RHI->RHIGetTextureMemoryVisualizeData(TextureData, SizeX, SizeY,
Pitch, PixelSize);
527 CreateDesc.CheckValidity();
550 ensure(FMath::Max(SizeX, SizeY) >= (1u << (FMath::Max(1u, NumMips) - 1)));
570 return RHI->RHIComputeMemorySize(TextureRHI);
671 RHI->RHIUnmapStagingSurface(
Texture, GPUIndex);
677 RHI->RHIReadSurfaceFloatData(
Texture,
Rect, OutData, CubeFace, ArrayIndex, MipIndex);
694 return RHI->RHICreateRenderQuery(QueryType);
705 RHI->RHIBeginRenderQueryBatch_TopOfPipe(RHICmdList, QueryType);
710 RHI->RHIEndRenderQueryBatch_TopOfPipe(RHICmdList, QueryType);
726 return RHI->RHIGetViewportNextPresentGPUIndex(Viewport);
734 if (!
Texture->GetTrackerResource()->IsBarrierTrackingInitialized())
745 return RHI->RHIGetViewportBackBufferUAV(ViewportRHI);
761 check(DestTexture && SourceTexture);
763 check(SourceTexture->GetNativeResource() !=
nullptr);
764 RHI->RHIAliasTextureResources(DestTexture, SourceTexture);
769 check(SourceTexture);
770 return RHI->RHICreateAliasedTexture(SourceTexture);
782 RHI->RHIAdvanceFrameForGetViewportBackBuffer(Viewport,
bPresent);
787 RHI->RHIAcquireThreadOwnership();
792 RHI->RHIReleaseThreadOwnership();
799 RHI->RHIFlushResources();
813 RHI->RHIResizeViewport(Viewport, SizeX, SizeY, bIsFullscreen);
829 RHI->RHICheckViewportHDRStatus(Viewport);
834 RHI->RHIHandleDisplayChange();
839 virtual void RHITick(
float DeltaTime)
override final
841 RHI->RHITick(DeltaTime);
848 RHI->RHIBlockUntilGPUIdle();
854 RHI->RHIBeginSuspendRendering();
861 RHI->RHISuspendRendering();
867 RHI->RHIResumeRendering();
873 return RHI->RHIIsRenderingSuspended();
898 RHI->RHIGetSupportedResolution(Width, Height);
910 RHI->RHIVirtualTextureSetFirstMipInMemory(RHICmdList,
Texture, FirstMip);
921 RHI->RHIVirtualTextureSetFirstMipVisible(RHICmdList,
Texture, FirstMip);
930 return RHI->RHIGetNativeDevice();
939 return RHI->RHIGetNativePhysicalDevice();
948 return RHI->RHIGetNativeGraphicsQueue();
957 return RHI->RHIGetNativeComputeQueue();
966 return RHI->RHIGetNativeInstance();
975 return RHI->RHIGetNativeCommandBuffer();
982 return RHI->RHIGetUploadContext();
995 RHI->RHIProcessDeleteQueue();
1000 return RHI->RHIGetMinimumAlignmentForBufferBackedSRV(
Format);
1021 RHI->UnlockBuffer_BottomOfPipe(RHICmdList,
Buffer);
1026 return RHI->RHIBeginUpdateTexture3D(RHICmdList,
Texture, MipIndex, UpdateRegion);
1031 RHI->RHIEndUpdateTexture3D(RHICmdList, UpdateData);
1041 return RHI->RHICreateShaderLibrary_RenderThread(RHICmdList,
Platform, FilePath,
Name);
1046 RHI->RHIReadSurfaceFloatData_RenderThread(RHICmdList,
Texture,
Rect, OutData, CubeFace, ArrayIndex, MipIndex);
1056 RHI->RHISignalFlipEvent();
1061 return RHI->RHIGetPlatformTextureMaxSampleCount();
1082 return RHI->RHICreateRayTracingShader(Code,
Hash, ShaderFrequency);
1107 return RHI->RHIGetRayTracingGeometryOfflineMetadata(OfflineDataHeader);
1112 return RHI->RHICreateShaderBindingTable(RHICmdList,
Initializer);
1115#if !UE_BUILD_SHIPPING
1118 return RHI->RHISerializeAccelerationStructure(RHICmdList,
Scene, Path);
1125 return RHI->RHICreateShaderBundle(CreateInfo);
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
uint32 DepthHeight
Definition DynamicRHI.h:1286
FStagingBufferRHIRef RHICreateStagingBuffer()
Definition DynamicRHI.h:1140
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
ERHIAccess
Definition RHIAccess.h:11
EShaderFrequency
Definition RHIDefinitions.h:202
EUniformBufferUsage
Definition RHIDefinitions.h:536
@ SO_Keep
Definition RHIDefinitions.h:444
ECubeFace
Definition RHIDefinitions.h:525
EResourceLockMode
Definition RHIDefinitions.h:785
@ RLM_WriteOnly_NoOverwrite
Definition RHIDefinitions.h:788
@ CF_Always
Definition RHIDefinitions.h:414
EUniformBufferValidation
Definition RHIDefinitions.h:546
ERHIInterfaceType
Definition RHIDefinitions.h:157
ETextureCreateFlags
Definition RHIDefinitions.h:1091
ERenderQueryType
Definition RHIDefinitions.h:258
#define PLATFORM_DISPATCH_INDIRECT_ARGUMENT_BOUNDARY_SIZE
Definition RHIDefinitions.h:40
#define GRHIMaxDispatchThreadGroupsPerDimension
Definition RHIGlobals.h:881
#define GRHISupportsAsyncTextureCreation
Definition RHIGlobals.h:787
#define GRHISupportsMapWriteNoOverwrite
Definition RHIGlobals.h:911
ERHIPipeline
Definition RHIPipeline.h:13
EShaderPlatform GMaxRHIShaderPlatform
Definition RHI.cpp:1335
CORE_API bool IsInRHIThread()
Definition ThreadingBase.cpp:339
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition RHIResources.h:4820
Definition DynamicRHI.h:206
virtual void RHIEndRenderQueryBatch_TopOfPipe(FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
Definition DynamicRHI.h:650
virtual void RHIUpdateResourceCollection(FRHICommandListBase &RHICmdList, FRHIResourceCollection *InResourceCollection, uint32 InStartIndex, TConstArrayView< FRHIResourceCollectionMember > InMemberUpdates)
Definition DynamicRHI.h:534
virtual FShaderResourceViewRHIRef RHICreateShaderResourceView(class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc)=0
virtual FRayTracingShaderRHIRef RHICreateRayTracingShader(TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
Definition DynamicRHI.h:1022
virtual FGeometryShaderRHIRef RHICreateGeometryShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)=0
virtual void * RHIGetNativeDevice()=0
virtual RHI_API void RHIVirtualTextureSetFirstMipInMemory(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
Definition DynamicRHI.cpp:569
virtual FShaderBindingTableRHIRef RHICreateShaderBindingTable(FRHICommandListBase &RHICmdList, const FRayTracingShaderBindingTableInitializer &Initializer)
Definition DynamicRHI.h:1034
virtual void Shutdown()=0
virtual RHI_API void RHIBindDebugLabelName(FRHICommandListBase &RHICmdList, FRHITexture *Texture, const TCHAR *Name)
Definition DynamicRHI.cpp:900
virtual void RHIHandleDisplayChange()
Definition DynamicRHI.h:746
friend class FValidationRHI
Definition DynamicRHI.h:1055
virtual RHI_API void RHIUnlockBuffer(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer)
Definition RHICommandList.cpp:2099
virtual void RHIBeginRenderQueryBatch_TopOfPipe(FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
Definition DynamicRHI.h:649
virtual IRHITransientResourceAllocator * RHICreateTransientResourceAllocator()
Definition DynamicRHI.h:332
virtual FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState(const FGraphicsPipelineStateInitializer &Initializer)=0
virtual void RHISuspendRendering()
Definition DynamicRHI.h:761
virtual FTextureRHIRef RHIAsyncCreateTexture2D(uint32 SizeX, uint32 SizeY, uint8 Format, uint32 NumMips, ETextureCreateFlags Flags, ERHIAccess InResourceState, void **InitialMipData, uint32 NumInitialMips, const TCHAR *DebugName, FGraphEventRef &OutCompletionEvent)=0
void RHICloseTranslateChain(FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output, bool bShouldFinalize)
Definition DynamicRHI.h:907
virtual FGPUFenceRHIRef RHICreateGPUFence(const FName &Name)=0
virtual void RHIBeginSuspendRendering()
Definition DynamicRHI.h:757
virtual RHI_API void RHIWriteGPUFence_TopOfPipe(FRHICommandListBase &RHICmdList, FRHIGPUFence *FenceRHI)
Definition RHICommandList.cpp:2140
virtual void RHIReadSurfaceData(FRHITexture *Texture, FIntRect Rect, TArray< FColor > &OutData, FReadSurfaceDataFlags InFlags)=0
virtual void RHIGetTextureMemoryStats(FTextureMemoryStats &OutStats)=0
virtual void UnlockBuffer_BottomOfPipe(class FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer)
Definition DynamicRHI.h:971
virtual FVertexShaderRHIRef RHICreateVertexShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)=0
virtual RHI_API void RHIEndUpdateTexture3D(FRHICommandListBase &RHICmdList, FUpdateTexture3DData &UpdateData)
Definition RHICommandList.cpp:2242
virtual FRHIBufferInitializer RHICreateBufferInitializer(FRHICommandListBase &RHICmdList, const FRHIBufferCreateDesc &CreateDesc)=0
virtual FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV(FRHIViewport *ViewportRHI)
Definition DynamicRHI.h:669
virtual RHI_API void RHIVirtualTextureSetFirstMipVisible(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
Definition DynamicRHI.cpp:574
virtual void * RHIGetNativeCommandBuffer()
Definition DynamicRHI.h:849
virtual void RHITick(float DeltaTime)=0
virtual bool RHIIsRenderingSuspended()
Definition DynamicRHI.h:767
virtual void RHIReplaceResources(FRHICommandListBase &RHICmdList, TArray< FRHIResourceReplaceInfo > &&ReplaceInfos)=0
virtual FRayTracingSceneRHIRef RHICreateRayTracingScene(FRayTracingSceneInitializer Initializer)
Definition DynamicRHI.h:1016
virtual void RHIAcquireThreadOwnership()
Definition DynamicRHI.h:716
virtual FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize(const FRayTracingClusterOperationInitializer &Initializer)
Definition DynamicRHI.h:998
virtual FVertexDeclarationRHIRef RHICreateVertexDeclaration(const FVertexDeclarationElementList &Elements)=0
virtual void RHIReadSurfaceFloatData(FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex)=0
virtual FAmplificationShaderRHIRef RHICreateAmplificationShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)
Definition DynamicRHI.h:282
virtual FRHIResourceCollectionRef RHICreateResourceCollection(FRHICommandListBase &RHICmdList, TConstArrayView< FRHIResourceCollectionMember > InMembers)
Definition DynamicRHI.h:529
virtual ERHIInterfaceType GetInterfaceType() const
Definition DynamicRHI.h:224
virtual FTextureRHIRef RHIAsyncReallocateTexture2D(FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus)=0
virtual FPixelShaderRHIRef RHICreatePixelShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)=0
virtual RHI_API void RHIEndFrame_RenderThread(FRHICommandListImmediate &RHICmdList)
Definition DynamicRHI.cpp:463
virtual RHI_API void * RHILockBuffer(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
Definition RHICommandList.cpp:2064
virtual RHI_API FTextureReferenceRHIRef RHICreateTextureReference(FRHICommandListBase &RHICmdList, FRHITexture *InReferencedTexture)
Definition DynamicRHI.cpp:547
virtual FComputeShaderRHIRef RHICreateComputeShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)=0
virtual void RHISubmitCommandLists(FRHISubmitCommandListsArgs &&Args)=0
virtual RHI_API void RHIMapStagingSurface_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight)
Definition RHICommandList.cpp:2265
virtual RHI_API void UnlockStagingBuffer_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer)
Definition RHICommandList.cpp:2205
virtual RHI_API void * RHILockBufferMGPU(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
Definition DynamicRHI.cpp:823
virtual FRayTracingGeometryRHIRef RHICreateRayTracingGeometry(FRHICommandListBase &RHICmdList, const FRayTracingGeometryInitializer &Initializer)
Definition DynamicRHI.h:1010
virtual RHI_API void * LockStagingBuffer_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI)
Definition RHICommandList.cpp:2183
virtual void FlushPendingLogs()
Definition DynamicRHI.h:288
virtual FTextureRHIRef RHICreateAliasedTexture(FTextureRHIRef &SourceTexture)
Definition DynamicRHI.h:689
virtual void RHIBlockUntilGPUIdle()=0
virtual FRHIFlipDetails RHIWaitForFlip(double TimeoutInSeconds)
Definition DynamicRHI.h:980
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize(const FRayTracingGeometryInitializer &Initializer)
Definition DynamicRHI.h:992
virtual FBoundShaderStateRHIRef RHICreateBoundShaderState(FRHIVertexDeclaration *VertexDeclaration, FRHIVertexShader *VertexShader, FRHIPixelShader *PixelShader, FRHIGeometryShader *GeometryShader)=0
virtual FRHITextureInitializer RHICreateTextureInitializer(FRHICommandListBase &RHICmdList, const FRHITextureCreateDesc &CreateDesc)=0
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize(const FRayTracingSceneInitializer &Initializer)
Definition DynamicRHI.h:986
virtual RHI_API void * RHILockStagingBuffer(FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI)
Definition RHICommandList.cpp:2171
virtual bool RHIGetTextureMemoryVisualizeData(FColor *TextureData, int32 SizeX, int32 SizeY, int32 Pitch, int32 PixelSize)=0
virtual FRasterizerStateRHIRef RHICreateRasterizerState(const FRasterizerStateInitializerRHI &Initializer)=0
virtual RHI_API void RHIBeginRenderQuery_TopOfPipe(FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery)
Definition RHICommandList.cpp:2150
virtual void RHIUpdateFromBufferTexture2D(FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, FRHIBuffer *Buffer, uint32 BufferOffset)
Definition DynamicRHI.h:587
virtual void RHIMapStagingSurface(FRHITexture *Texture, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight, uint32 GPUIndex=0)=0
virtual void RHIEndFrame(const FRHIEndFrameArgs &Args)=0
virtual IRHIComputeContext * RHIGetParallelCommandContext(FRHIParallelRenderPassInfo const &ParallelRenderPass, FRHIGPUMask GPUMask)
Definition DynamicRHI.h:874
virtual void RHIUnmapStagingSurface(FRHITexture *Texture, uint32 GPUIndex=0)=0
virtual EPixelFormat RHIPreferredPixelFormatHint(EPixelFormat PreferredPixelFormat)
Definition DynamicRHI.h:738
virtual void RHICreateTransition(FRHITransition *Transition, const FRHITransitionCreateInfo &CreateInfo)
Definition DynamicRHI.h:321
virtual FDepthStencilStateRHIRef RHICreateDepthStencilState(const FDepthStencilStateInitializerRHI &Initializer)=0
virtual RHI_API void RHICheckViewportHDRStatus(FRHIViewport *Viewport)
Definition DynamicRHI.cpp:819
virtual bool RHIGetRenderQueryResult(FRHIRenderQuery *RenderQuery, uint64 &OutResult, bool bWait, uint32 GPUIndex=INDEX_NONE)=0
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex)
Definition RHICommandList.cpp:2299
virtual void RHIResumeRendering()
Definition DynamicRHI.h:764
virtual FRHIShaderLibraryRef RHICreateShaderLibrary(EShaderPlatform Platform, FString const &FilePath, FString const &Name)
Definition DynamicRHI.h:307
virtual FBlendStateRHIRef RHICreateBlendState(const FBlendStateInitializerRHI &Initializer)=0
virtual RHI_API FUpdateTexture3DData RHIBeginUpdateTexture3D(FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion)
Definition RHICommandList.cpp:2228
virtual RHI_API void RHIEndMultiUpdateTexture3D(FRHICommandListBase &RHICmdList, TArray< FUpdateTexture3DData > &UpdateDataArray)
Definition RHICommandList.cpp:2251
virtual void RHIReleaseTransition(FRHITransition *Transition)
Definition DynamicRHI.h:325
virtual void RHIGetDisplaysInformation(FDisplayInformationArray &OutDisplayInformation)
Definition DynamicRHI.h:695
virtual void RHIReleaseThreadOwnership()
Definition DynamicRHI.h:717
virtual void RHIRead3DSurfaceFloatData(FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData)=0
virtual FUnorderedAccessViewRHIRef RHICreateUnorderedAccessView(class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc)=0
virtual void RHIAliasTextureResources(FTextureRHIRef &DestTexture, FTextureRHIRef &SrcTexture)
Definition DynamicRHI.h:684
virtual FSamplerStateRHIRef RHICreateSamplerState(const FSamplerStateInitializerRHI &Initializer)=0
virtual FRenderQueryRHIRef RHICreateRenderQuery(ERenderQueryType QueryType)=0
virtual void RHISignalFlipEvent()
Definition DynamicRHI.h:981
virtual uint32 RHIGetViewportNextPresentGPUIndex(FRHIViewport *Viewport)
Definition DynamicRHI.h:660
virtual void RHIAdvanceFrameForGetViewportBackBuffer(FRHIViewport *Viewport, bool bPresent)=0
virtual void PostInit()
Definition DynamicRHI.h:217
virtual const TCHAR * GetName()=0
virtual RHI_API void RHIUnmapStagingSurface_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex)
Definition RHICommandList.cpp:2286
virtual void * RHIGetNativeInstance()=0
virtual void RHIUpdateTexture3D(FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData)=0
virtual FRHICalcTextureSizeResult RHICalcTexturePlatformSize(FRHITextureDesc const &Desc, uint32 FirstMipIndex)=0
virtual FRHILockTextureResult RHILockTexture(FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments)=0
virtual FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata(const FRayTracingGeometryOfflineDataHeader &OfflineDataHeader)
Definition DynamicRHI.h:1004
virtual void * LockBuffer_BottomOfPipe(class FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 SizeRHI, EResourceLockMode LockMode)
Definition DynamicRHI.h:964
virtual void RHISerializeAccelerationStructure(FRHICommandListImmediate &RHICmdList, FRHIRayTracingScene *Scene, const TCHAR *Path)
Definition DynamicRHI.h:1041
virtual void RHIUpdateTexture2D(FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)=0
virtual RHI_API FRHIShaderLibraryRef RHICreateShaderLibrary_RenderThread(class FRHICommandListImmediate &RHICmdList, EShaderPlatform Platform, FString FilePath, FString Name)
Definition RHICommandList.cpp:2259
virtual FMeshShaderRHIRef RHICreateMeshShader(TArrayView< const uint8 > Code, const FSHAHash &Hash)
Definition DynamicRHI.h:276
virtual void RHIUpdateUniformBuffer(FRHICommandListBase &RHICmdList, FRHIUniformBuffer *UniformBufferRHI, const void *Contents)=0
virtual RHI_API uint64 RHIGetMinimumAlignmentForBufferBackedSRV(EPixelFormat Format)
Definition DynamicRHI.cpp:579
virtual RHI_API FTextureRHIRef AsyncReallocateTexture2D_RenderThread(class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus)
Definition RHICommandList.cpp:2220
virtual RHI_API void RHIEndRenderQuery_TopOfPipe(FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery)
Definition RHICommandList.cpp:2160
virtual uint32 RHIGetHTilePlatformConfig(uint32 DepthWidth, uint32 DepthHeight) const
Definition DynamicRHI.h:674
virtual void RHIFlushResources()=0
virtual FDynamicRHI * GetNonValidationRHI()
Definition DynamicRHI.h:225
virtual void RHIGetSupportedResolution(uint32 &Width, uint32 &Height)=0
virtual void RHIFinalizeContext(FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output)=0
virtual uint16 RHIGetPlatformTextureMaxSampleCount()
Definition DynamicRHI.h:984
virtual IRHIPlatformCommandList * RHIFinalizeParallelContext(IRHIComputeContext *Context)
Definition DynamicRHI.h:917
virtual uint32 RHIComputeMemorySize(FRHITexture *TextureRHI)=0
virtual FUniformBufferRHIRef RHICreateUniformBuffer(const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation)=0
virtual FShaderBundleRHIRef RHICreateShaderBundle(const FShaderBundleCreateInfo &CreateInfo)
Definition DynamicRHI.h:1047
virtual void RHIProcessDeleteQueue()
Definition DynamicRHI.h:947
virtual void * RHIGetNativeGraphicsQueue()
Definition DynamicRHI.h:825
virtual void RHIUnlockTexture(FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments)=0
virtual FTextureRHIRef RHIGetViewportBackBuffer(FRHIViewport *Viewport)=0
virtual void RHIResizeViewport(FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen)=0
virtual RHI_API void RHIUnlockStagingBuffer(FRHIStagingBuffer *StagingBuffer)
Definition RHICommandList.cpp:2177
virtual void * RHIGetNativeComputeQueue()
Definition DynamicRHI.h:834
virtual IRHICommandContext * RHIGetDefaultContext()=0
virtual RHI_API void RHIUpdateTextureReference(FRHICommandListBase &RHICmdList, FRHITextureReference *TextureRef, FRHITexture *NewTexture)
Definition DynamicRHI.cpp:553
virtual FComputePipelineStateRHIRef RHICreateComputePipelineState(const FComputePipelineStateInitializer &Initializer)=0
virtual FRayTracingPipelineStateRHIRef RHICreateRayTracingPipelineState(const FRayTracingPipelineStateInitializer &Initializer)
Definition DynamicRHI.h:1028
virtual bool RHIGetAvailableResolutions(FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate)=0
virtual RHI_API void RHIUnlockBufferMGPU(FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex)
Definition DynamicRHI.cpp:830
TArray< uint32 > PixelFormatBlockBytes
Definition DynamicRHI.h:1054
virtual void * RHIGetNativePhysicalDevice()
Definition DynamicRHI.h:815
virtual FViewportRHIRef RHICreateViewport(void *WindowHandle, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat)=0
Type
Definition RHIResources.h:412
@ DepthWrite
Definition RHIResources.h:417
@ StencilWrite
Definition RHIResources.h:421
@ StencilRead
Definition RHIResources.h:420
@ DepthNop_StencilNop
Definition RHIResources.h:425
@ DepthRead
Definition RHIResources.h:416
Definition RHIResources.h:4572
Definition NameTypes.h:617
Definition RHIResources.h:966
Definition RHIResources.h:1581
EBufferUsageFlags GetUsage() const
Definition RHIResources.h:1607
uint32 GetStride() const
Definition RHIResources.h:1601
uint32 GetSize() const
Definition RHIResources.h:1595
Definition RHICommandList.h:455
Definition RHIResources.h:2387
Definition RHIResources.h:978
Definition RHIResources.h:960
Definition RHIResources.h:972
Definition RHIResources.h:3755
Definition RHIResources.h:2444
Definition RHIResourceCollection.h:46
Definition RHIResources.h:3981
Definition RHITextureReference.h:8
Definition RHIResources.h:2153
Definition RHIResources.h:3294
Definition RHIResources.h:725
Definition RHIResources.h:954
Definition RHIResources.h:1265
Definition RHIResources.h:2515
Definition RHIResources.h:5023
Definition SecureHash.h:226
Definition ThreadSafeCounter.h:14
Definition RHIContext.h:693
Definition RHIContext.h:257
Definition RHITransientResourceAllocator.h:536
Definition RHIContext.h:573
Definition RHI.Build.cs:8
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition RHIPipeline.h:55
void ValidateIndirectArgsBuffer(uint32 IndirectArgsBufferSize, uint32 IndirectArgOffset)
Definition RenderGraphUtils.h:438
State
Definition PacketHandler.h:88
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
Definition RHIResources.h:1417
Definition RHIBufferInitializer.h:12
Definition DynamicRHI.h:120
Definition DynamicRHI.h:49
Definition DynamicRHI.h:149
Definition DynamicRHI.h:198
Definition RHIResources.h:5548
Definition RHIResources.h:1938
Definition RHIResources.h:1689
Definition RHITextureInitializer.h:50
Definition RHITransition.h:382
Definition RHITransition.h:475
Definition RHIResources.h:2648
Definition RHIResources.h:3693
Definition RHIResources.h:3842
Definition RHIResources.h:3761
Definition RHIResources.h:3496
Definition RHIResources.h:3669
Definition RHIResources.h:3635
Definition RHIResources.h:3910
Definition RHICommandList.h:220
Definition RHITypes.h:127
Definition RHITypes.h:155
Definition LinuxPlatformSplash.cpp:43