5#include "Containers/Array.h"
19#include "Misc/Optional.h"
34#include "Templates/Invoke.h"
40#include <initializer_list>
185 std::initializer_list<FRDGResourceRef>
ExcludeList);
192 std::initializer_list<FRDGResourceRef>
ExcludeList);
194template <
typename TShaderClass>
199 std::initializer_list<FRDGResourceRef>
ExcludeList = {})
210template <
typename TShaderClass>
214 std::initializer_list<FRDGResourceRef>
ExcludeList = {})
220template <
typename TShaderClassA,
typename TShaderClassB,
typename TPassParameterStruct>
225 std::initializer_list<FRDGResourceRef>
ExcludeList = {})
227 static_assert(std::is_same_v<typename TShaderClassA::FParameters, TPassParameterStruct>,
"First shader FParameter type must match pass parameters.");
228 static_assert(std::is_same_v<typename TShaderClassB::FParameters, TPassParameterStruct>,
"Second shader FParameter type must match pass parameters.");
318 return !(*
this ==
Other);
331UE_DEPRECATED(5.3,
"CreateTextureMSAA with one name is deprecated, prease provide separate name for the multisampled texture")
346 static constexpr int32 kGolden2DGroupSize = 8;
390 static constexpr int32 WrappedGroupStride = 128;
444 TEXT(
"Indirect parameters buffer for compute shader indirect dispatch at byte offset %d doesn't have enough room for one element."),
446#if PLATFORM_DISPATCH_INDIRECT_ARGUMENT_BOUNDARY_SIZE != 0
460 template<
typename TShaderClass>
465 const typename TShaderClass::FParameters& Parameters)
472 template<
typename TShaderClass>
476 const typename TShaderClass::FParameters& Parameters)
482 template<
typename TShaderClass>
490 template<
typename TShaderClass>
495 const typename TShaderClass::FParameters& Parameters,
505 template<
typename TShaderClass>
509 const typename TShaderClass::FParameters& Parameters,
517 template<
typename TShaderClass>
521 const typename TShaderClass::FParameters& Parameters,
533 template<
typename TShaderClass>
537 const typename TShaderClass::FParameters& Parameters,
549 template<
typename TShaderClass>
556 typename TShaderClass::FParameters* Parameters,
580 template<
typename TShaderClass>
587 typename TShaderClass::FParameters* Parameters,
612 template<
typename TShaderClass>
618 typename TShaderClass::FParameters* Parameters,
625 template <
typename TShaderClass>
630 typename TShaderClass::FParameters* Parameters,
637 template <
typename TShaderClass>
642 typename TShaderClass::FParameters* Parameters,
650 template<
typename TShaderClass>
656 typename TShaderClass::FParameters* Parameters,
658 uint32 IndirectArgsOffset,
685 template<
typename TShaderClass>
690 typename TShaderClass::FParameters* Parameters,
692 uint32 IndirectArgsOffset,
862template<
typename InElementType>
880 const void* InitialData,
899template <
typename ElementType,
typename AllocatorType>
907 if (InitialData.
Num() == 0)
917template <
typename ElementType,
typename AllocatorType>
924 if (InitialData.Num() == 0)
937template <
typename ElementType>
945 if (InitialData.Num() == 0)
956template <
typename ArrayType>
972template <
typename GetArrayRefCallback,
typename Type = TInvokeResult_T<GetArrayRefCallback>>
981template <
typename ElementType>
988 if (InitialData.
Num() == 0)
1000 const void* InitialData,
1018template <
typename ElementType,
typename AllocatorType>
1025 if (InitialData.Num() == 0)
1038template <
typename ElementType>
1046 if (InitialData.Num() == 0)
1057template <
typename ArrayType>
1073template <
typename GetArrayRefCallback,
typename Type = TInvokeResult_T<GetArrayRefCallback>>
1082template <
typename ElementType>
1089 if (InitialData.
Num() == 0)
1101 const void* InitialData,
1105template <
typename ElementType>
1116template <
typename ElementType>
1125template <
typename ElementType>
1133 if (InitialData.Num() == 0)
1144template <
typename ElementType,
typename AllocatorType>
1160template <
typename ElementType,
typename AllocatorType>
1192template <
typename ArrayType>
1208template <
typename GetArrayRefCallback,
typename Type = TInvokeResult_T<GetArrayRefCallback>>
1222 const void* InitialData,
1227template <
typename ExecuteLambdaType>
1233template <
typename ExecuteLambdaType>
1236#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
1293 Validate(Resource, Access, Pipelines);
1294 Resources.Emplace(Resource, Access, Pipelines);
1304 Validate(Resource, Access, Pipelines);
1311 Resources.Emplace(Resource, Access, Pipelines);
1318 return Resources.ContainsByPredicate([&](
const FResource&
InResource) {
return InResource.Resource == Resource; });
1323 return Resources.IsEmpty();
1335 FResource() =
default;
1359 return PooledTexture;
1370 return PooledBuffer;
1408#if ENABLE_LOW_LEVEL_MEM_TRACKER || UE_MEMORY_TRACE_ENABLED
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool IsValidAccess(ED3D12Access InD3D12Access)
Definition D3D12Access.h:78
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
FInt32Vector3 FIntVector
Definition MathFwd.h:115
void SetComputePipelineState(FRHIComputeCommandList &RHICmdList, FRHIComputeShader *ComputeShader)
Definition PipelineStateCache.cpp:1447
ERHIAccess
Definition RHIAccess.h:11
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
#define BUF_DrawIndirect
Definition RHIDefinitions.h:987
#define TexCreate_None
Definition RHIDefinitions.h:1191
ETextureCreateFlags
Definition RHIDefinitions.h:1091
#define PLATFORM_DISPATCH_INDIRECT_ARGUMENT_BOUNDARY_SIZE
Definition RHIDefinitions.h:40
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
#define GRHIMaxDispatchThreadGroupsPerDimension
Definition RHIGlobals.h:881
ERHIPipeline
Definition RHIPipeline.h:13
FString GetRHIAccessName(ERHIAccess Access)
Definition RHIStrings.cpp:466
ERDGTextureFlags
Definition RenderGraphDefinitions.h:185
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
ERDGBufferFlags
Definition RenderGraphDefinitions.h:163
ERDGPooledBufferAlignment
Definition RenderGraphDefinitions.h:290
ERDGInitialDataFlags
Definition RenderGraphDefinitions.h:274
FRHIShaderResourceView * TryGetSRV(FRDGPooledBuffer *Buffer)
Definition RenderGraphUtils.h:96
RENDERCORE_API void AddClearRenderTargetPass(FRDGBuilder &GraphBuilder, FRDGTextureRef Texture)
Definition RenderGraphUtils.cpp:627
RENDERCORE_API void AddCopyTexturePass(FRDGBuilder &GraphBuilder, FRDGTextureRef InputTexture, FRDGTextureRef OutputTexture, const FRHICopyTextureInfo &CopyInfo)
Definition RenderGraphUtils.cpp:259
FRDGBufferRef CreateByteAddressUploadBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, const TArray< ElementType, AllocatorType > &InitialData, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.h:1161
void AddReadbackBufferPass(FRDGBuilder &GraphBuilder, FRDGEventName &&Name, FRDGBufferRef Buffer, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphUtils.h:1263
RENDERCORE_API FRDGBufferRef CreateUploadBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, uint32 BytesPerElement, uint32 NumElements, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.cpp:940
FRHITexture * TryGetRHI(FRDGTextureRef Texture)
Definition RenderGraphUtils.h:81
FRDGBufferRef CreateStructuredBuffer_Impl(FRDGBuilder &GraphBuilder, const TCHAR *Name, TRDGBufferArrayCallback< ArrayType > &&ArrayCallback)
Definition RenderGraphUtils.h:957
RENDERCORE_API FRDGBufferRef CreateByteAddressBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, uint32 NumBytes, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.cpp:915
FRDGBufferRef CreateStructuredUploadBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, const TArray< ElementType, AllocatorType > &InitialData, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.h:1145
void AddDispatchToRHIThreadPass(FRDGBuilder &GraphBuilder)
Definition RenderGraphUtils.h:1241
RENDERCORE_API void AddResummarizeHTilePass(FRDGBuilder &GraphBuilder, FRDGTextureRef DepthTexture)
Definition RenderGraphUtils.cpp:794
FRDGTextureRef GetIfProduced(FRDGTextureRef Texture, FRDGTextureRef FallbackTexture=nullptr)
Definition RenderGraphUtils.h:57
RENDERCORE_API void AddDrawTexturePass(FRDGBuilder &GraphBuilder, const FGlobalShaderMap *ShaderMap, FRDGTextureRef InputTexture, FRDGTextureRef OutputTexture, const FRDGDrawTextureInfo &DrawInfo)
Definition RenderGraphUtils.cpp:287
RENDERCORE_API FRDGTextureRef RegisterExternalTextureWithFallback(FRDGBuilder &GraphBuilder, const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, const TRefCountPtr< IPooledRenderTarget > &FallbackPooledTexture)
Definition RenderGraphUtils.cpp:190
const TRefCountPtr< IPooledRenderTarget > & ConvertToExternalAccessTexture(FRDGBuilder &GraphBuilder, FRDGTexture *Texture, ERHIAccess Access=ERHIAccess::SRVMask, ERHIPipeline Pipelines=ERHIPipeline::Graphics)
Definition RenderGraphUtils.h:1351
void AddPass(FRDGBuilder &GraphBuilder, FRDGEventName &&Name, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphUtils.h:1228
const TRefCountPtr< FRDGPooledBuffer > & ConvertToExternalAccessBuffer(FRDGBuilder &GraphBuilder, FRDGBuffer *Buffer, ERHIAccess Access=ERHIAccess::SRVMask, ERHIPipeline Pipelines=ERHIPipeline::Graphics)
Definition RenderGraphUtils.h:1362
void AddReadbackTexturePass(FRDGBuilder &GraphBuilder, FRDGEventName &&Name, FRDGTextureRef Texture, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphUtils.h:1251
bool HasBeenProduced(FRDGViewableResource *Resource)
Definition RenderGraphUtils.h:51
TRefCountPtr< FRDGPooledBuffer > AllocatePooledBufferCurrentLLMTag(FRHICommandListBase &RHICmdList, const FRDGBufferDesc &Desc, const TCHAR *Name, ERDGPooledBufferAlignment Alignment=ERDGPooledBufferAlignment::Page)
Definition RenderGraphUtils.h:1415
RENDERCORE_API void AddClearStencilPass(FRDGBuilder &GraphBuilder, FRDGTextureRef Texture)
Definition RenderGraphUtils.cpp:787
bool IsRegistered(FRDGBuilder &GraphBuilder, const TRefCountPtr< IPooledRenderTarget > &RenderTarget)
Definition RenderGraphUtils.h:111
RENDERCORE_API FRDGBufferRef CreateVertexBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, const FRDGBufferDesc &Desc, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.cpp:957
RENDERCORE_API FRDGBufferRef CreateStructuredBuffer(FRDGBuilder &GraphBuilder, const TCHAR *Name, uint32 BytesPerElement, uint32 NumElements, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphUtils.cpp:888
RENDERCORE_API void AddCopyBufferPass(FRDGBuilder &GraphBuilder, FRDGBufferRef DstBuffer, uint64 DstOffset, FRDGBufferRef SrcBuffer, uint64 SrcOffset, uint64 NumBytes)
Definition RenderGraphUtils.cpp:369
FRenderTargetBinding GetLoadBindingIfProduced(FRDGTextureRef Texture, ERenderTargetLoadAction ActionIfNotProduced)
Definition RenderGraphUtils.h:75
RENDERCORE_API void AddClearDepthStencilPass(FRDGBuilder &GraphBuilder, FRDGTextureRef Texture, bool bClearDepth, float Depth, bool bClearStencil, uint8 Stencil)
Definition RenderGraphUtils.cpp:728
FRDGBufferRef CreateByteAddressBuffer_Impl(FRDGBuilder &GraphBuilder, const TCHAR *Name, TRDGBufferArrayCallback< ArrayType > &&ArrayCallback)
Definition RenderGraphUtils.h:1058
RENDERCORE_API FRDGTextureMSAA CreateTextureMSAA(FRDGBuilder &GraphBuilder, FRDGTextureDesc Desc, const TCHAR *NameMultisampled, const TCHAR *NameResolved, ETextureCreateFlags ResolveFlagsToAdd=TexCreate_None)
Definition RenderGraphUtils.cpp:206
FRDGTextureRef TryRegisterExternalTexture(FRDGBuilder &GraphBuilder, const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, ERDGTextureFlags Flags=ERDGTextureFlags::None)
Definition RenderGraphUtils.h:254
FRDGBufferRef CreateByteAddressUploadBuffer_Impl(FRDGBuilder &GraphBuilder, const TCHAR *Name, TRDGBufferArrayCallback< ArrayType > &&ArrayCallback)
Definition RenderGraphUtils.h:1193
RENDERCORE_API void ClearUnusedGraphResourcesImpl(const FShaderParameterBindings &ShaderBindings, const FShaderParametersMetadata *ParametersMetadata, void *InoutParameters, std::initializer_list< FRDGResourceRef > ExcludeList)
Definition RenderGraphUtils.cpp:15
FRenderTargetBindingSlots GetRenderTargetBindings(ERenderTargetLoadAction ColorLoadAction, TArrayView< FRDGTextureRef > ColorTextures)
Definition RenderGraphUtils.h:121
RENDERCORE_API void AddClearUAVPass(FRDGBuilder &GraphBuilder, FRDGBufferUAVRef BufferUAV, uint32 Value, ERDGPassFlags ComputePassFlags=ERDGPassFlags::Compute)
Definition RenderGraphUtils.cpp:402
RENDERCORE_API bool AllocatePooledBuffer(const FRDGBufferDesc &Desc, TRefCountPtr< FRDGPooledBuffer > &Out, const TCHAR *Name, ERDGPooledBufferAlignment Alignment=ERDGPooledBufferAlignment::Page)
Definition RenderGraphUtils.cpp:982
void AddPassIfDebug(FRDGBuilder &GraphBuilder, FRDGEventName &&Name, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphUtils.h:1234
RENDERCORE_API void AddClearUAVFloatPass(FRDGBuilder &GraphBuilder, FRDGBufferUAVRef BufferUAV, float Value, ERDGPassFlags ComputePassFlags=ERDGPassFlags::Compute)
Definition RenderGraphUtils.cpp:420
FRDGBufferRef TryRegisterExternalBuffer(FRDGBuilder &GraphBuilder, const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, ERDGBufferFlags Flags=ERDGBufferFlags::None)
Definition RenderGraphUtils.h:263
RENDERCORE_API bool AllocatePooledTexture(const FRDGTextureDesc &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *Name)
Definition RenderGraphUtils.cpp:1004
ERenderTargetLoadAction GetLoadActionIfProduced(FRDGTextureRef Texture, ERenderTargetLoadAction ActionIfNotProduced)
Definition RenderGraphUtils.h:69
RENDERCORE_API void AddEnqueueCopyPass(FRDGBuilder &GraphBuilder, FRHIGPUTextureReadback *Readback, FRDGTextureRef SourceTexture, FResolveRect Rect=FResolveRect(), uint32 SourceSlice=0)
Definition RenderGraphUtils.cpp:812
TFunction< void()> FRDGDispatchLateParamCallback
Definition RenderGraphUtils.h:48
uint64 TryGetSize(const FRDGBuffer *Buffer)
Definition RenderGraphUtils.h:101
FRDGTextureRef RegisterExternalTexture(FRDGBuilder &GraphBuilder, FRHITexture *Texture, const TCHAR *NameIfUnregistered, ERDGTextureFlags Flags)
Definition RenderGraphUtils.h:271
void ClearUnusedGraphResources(const TShaderRef< TShaderClass > &Shader, const FShaderParametersMetadata *ParametersMetadata, typename TShaderClass::FParameters *InoutParameters, std::initializer_list< FRDGResourceRef > ExcludeList={})
Definition RenderGraphUtils.h:195
TRefCountPtr< IPooledRenderTarget > CreateRenderTarget(FRHITexture *Texture, const TCHAR *Name)
Definition RenderTargetPool.cpp:32
#define RDG_BUFFER_ACCESS(MemberName, Access)
Definition ShaderParameterMacros.h:1923
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define RDG_TEXTURE_ACCESS(MemberName, Access)
Definition ShaderParameterMacros.h:1933
void SetShaderParameters(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameterBindings &Bindings, const FShaderParametersMetadata *ParametersMetadata, const void *InParametersData)
Definition ShaderParameterStruct.cpp:883
void UnsetShaderUAVs(FRHIBatchedShaderUnbinds &BatchedUnbinds, const FShaderParameterBindings &Bindings)
Definition ShaderParameterStruct.h:163
void ValidateShaderParameters(const TShaderRef< FShader > &Shader, const FShaderParametersMetadata *ParametersMetadata, const void *ParametersData)
Definition ShaderParameterStruct.h:125
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
Definition GlobalShader.h:173
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1452
Definition RenderGraphResources.h:1321
FRHIBuffer * GetIndirectRHICallBuffer() const
Definition RenderGraphResources.h:1338
uint32 GetSize() const
Definition RenderGraphResources.h:1351
FRDGBufferDesc Desc
Definition RenderGraphResources.h:1325
Definition RenderGraphBuilder.h:49
RENDERCORE_API void UseExternalAccessMode(FRDGViewableResource *Resource, ERHIAccess ReadOnlyAccess, ERHIPipeline Pipelines=ERHIPipeline::Graphics)
Definition RenderGraphBuilder.cpp:887
FRDGBuffer * FindExternalBuffer(FRHIBuffer *Buffer) const
Definition RenderGraphBuilder.inl:23
RENDERCORE_API FRDGTextureRef RegisterExternalTexture(const TRefCountPtr< IPooledRenderTarget > &ExternalPooledTexture, ERDGTextureFlags Flags=ERDGTextureFlags::None)
Definition RenderGraphBuilder.cpp:1070
RENDERCORE_API FRDGBufferRef RegisterExternalBuffer(const TRefCountPtr< FRDGPooledBuffer > &ExternalPooledBuffer, ERDGBufferFlags Flags=ERDGBufferFlags::None)
Definition RenderGraphBuilder.cpp:1111
ObjectType * AllocObject(TArgs &&... Args)
Definition RenderGraphBuilder.inl:158
FRDGBufferRef CreateBuffer(const FRDGBufferDesc &Desc, const TCHAR *Name, ERDGBufferFlags Flags=ERDGBufferFlags::None)
Definition RenderGraphBuilder.inl:65
RENDERCORE_API const TRefCountPtr< IPooledRenderTarget > & ConvertToExternalTexture(FRDGTextureRef Texture)
Definition RenderGraphBuilder.cpp:728
FRDGPassRef AddPass(FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda)
void AddDispatchHint()
Definition RenderGraphBuilder.inl:501
RENDERCORE_API const TRefCountPtr< FRDGPooledBuffer > & ConvertToExternalBuffer(FRDGBufferRef Buffer)
Definition RenderGraphBuilder.cpp:712
void QueueBufferUpload(FRDGBufferRef Buffer, const void *InitialData, uint64 InitialDataSize, ERDGInitialDataFlags InitialDataFlags=ERDGInitialDataFlags::None)
Definition RenderGraphBuilder.inl:375
FRDGTexture * FindExternalTexture(FRHITexture *Texture) const
Definition RenderGraphBuilder.inl:5
Definition RenderGraphEvent.h:38
Definition RenderGraphUtils.h:1272
~FRDGExternalAccessQueue()
Definition RenderGraphUtils.h:1276
bool Contains(FRDGViewableResource *Resource)
Definition RenderGraphUtils.h:1316
FRDGExternalAccessQueue()=default
void AddUnique(FRDGViewableResource *Resource, ERHIAccess Access=ERHIAccess::SRVMask, ERHIPipeline Pipelines=ERHIPipeline::Graphics)
Definition RenderGraphUtils.h:1297
bool IsEmpty() const
Definition RenderGraphUtils.h:1321
void Add(FRDGViewableResource *Resource, ERHIAccess Access=ERHIAccess::SRVMask, ERHIPipeline Pipelines=ERHIPipeline::Graphics)
Definition RenderGraphUtils.h:1286
void Reserve(uint32 ResourceCount)
Definition RenderGraphUtils.h:1281
RENDERCORE_API void Submit(FRDGBuilder &GraphBuilder)
Definition RenderGraphUtils.cpp:973
Definition RenderGraphPass.h:217
Definition RenderGraphResources.h:1196
virtual RENDERCORE_API void MarkResourceAsUsed()
The following methods may only be called during pass execution.
const TCHAR *const Name
Definition RenderGraphResources.h:137
Definition RenderGraphResources.h:905
Definition RenderGraphResources.h:571
Definition RenderGraphResources.h:291
bool HasBeenProduced() const
Definition RenderGraphResources.h:321
Definition RHIResources.h:1581
uint32 GetSize() const
Definition RHIResources.h:1595
Definition RHICommandList.h:455
Definition RHICommandList.h:2735
void DispatchComputeShader(uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ)
Definition RHICommandList.h:2929
void DispatchIndirectComputeShader(FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
Definition RHICommandList.h:2939
Definition RHIResources.h:1018
Definition RHIGPUReadback.h:116
Definition RHIGPUReadback.h:139
Definition RHIResources.h:3304
Definition RHIResources.h:2153
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr ElementType * GetData() const
Definition ArrayView.h:295
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
static UE_FORCEINLINE_HINT constexpr size_t GetTypeSize()
Definition ArrayView.h:305
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
UE_NODEBUG static UE_FORCEINLINE_HINT constexpr uint32 GetTypeSize()
Definition Array.h:1047
Definition RefCounting.h:454
Type
Definition RHIFeatureLevel.h:20
void AfterDispatch(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader)
Definition RenderGraphUtils.h:483
void PrepareDispatch(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader, const FShaderParametersMetadata *ParametersMetadata, const typename TShaderClass::FParameters &Parameters)
Definition RenderGraphUtils.h:461
Definition RenderGraphUtils.h:344
FIntVector GetGroupCountWrapped(const int32 TargetGroupCount)
Definition RenderGraphUtils.h:398
void DispatchIndirect(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader, const typename TShaderClass::FParameters &Parameters, FRHIBuffer *IndirectArgsBuffer, uint32 IndirectArgOffset)
Definition RenderGraphUtils.h:518
void ValidateGroupCount(const FIntVector &GroupCount)
Definition RenderGraphUtils.h:431
void ValidateIndirectArgsBuffer(uint32 IndirectArgsBufferSize, uint32 IndirectArgOffset)
Definition RenderGraphUtils.h:438
RENDERCORE_API FRDGBufferRef AddIndirectArgsSetupCsPass1D(FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FRDGBuffer *InputCountBuffer, const TCHAR *OutputBufferName, uint32 Divisor, uint32 InputCountOffset=0U, uint32 Multiplier=1U)
Definition RenderGraphUtils.cpp:863
FRDGPassRef AddPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, ERDGPassFlags PassFlags, const TShaderRef< TShaderClass > &ComputeShader, const FShaderParametersMetadata *ParametersMetadata, typename TShaderClass::FParameters *Parameters, FIntVector GroupCount)
Definition RenderGraphUtils.h:550
void Dispatch(FRHIComputeCommandList &RHICmdList, const TShaderRef< TShaderClass > &ComputeShader, const FShaderParametersMetadata *ParametersMetadata, const typename TShaderClass::FParameters &Parameters, FIntVector GroupCount)
Definition RenderGraphUtils.h:491
FIntVector GetGroupCount(const int32 ThreadCount, const int32 GroupSize)
Definition RenderGraphUtils.h:349
Definition OverriddenPropertySet.cpp:45
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
static constexpr UE_FORCEINLINE_HINT T DivideAndRoundUp(T Dividend, T Divisor)
Definition UnrealMathUtility.h:694
Definition RenderGraphDefinitions.h:103
Definition RenderGraphResources.h:940
static FRDGBufferDesc CreateByteAddressUploadDesc(uint32 NumBytes)
Definition RenderGraphResources.h:1061
static FRDGBufferDesc CreateStructuredUploadDesc(uint32 BytesPerElement, uint32 NumElements)
Definition RenderGraphResources.h:1044
EBufferUsageFlags Usage
Definition RenderGraphResources.h:1114
Definition RenderGraphUtils.h:742
uint32 DestMipIndex
Definition RenderGraphUtils.h:756
uint32 DestSliceIndex
Definition RenderGraphUtils.h:751
uint32 NumMips
Definition RenderGraphUtils.h:757
uint32 NumSlices
Definition RenderGraphUtils.h:752
FIntPoint SourcePosition
Definition RenderGraphUtils.h:747
FIntPoint Size
Definition RenderGraphUtils.h:744
uint32 SourceSliceIndex
Definition RenderGraphUtils.h:750
uint32 SourceMipIndex
Definition RenderGraphUtils.h:755
FIntPoint DestPosition
Definition RenderGraphUtils.h:748
Definition RenderGraphUtils.h:805
uint32 FirstSliceIndex
Definition RenderGraphUtils.h:815
uint32 NumSlices
Definition RenderGraphUtils.h:816
FIntRect Viewport
Definition RenderGraphUtils.h:809
uint32 NumMips
Definition RenderGraphUtils.h:820
TOptional< FLinearColor > ClearColor
Definition RenderGraphUtils.h:812
uint32 FirstMipIndex
Definition RenderGraphUtils.h:819
FRDGTextureClearInfo()=default
Definition RenderGraphDefinitions.h:627
Definition RenderGraphUtils.h:288
bool IsValid() const
Definition RenderGraphUtils.h:301
FRDGTextureMSAA()=default
FRDGTextureRef Target
Definition RenderGraphUtils.h:321
bool operator==(FRDGTextureMSAA Other) const
Definition RenderGraphUtils.h:311
FRDGTextureRef Resolve
Definition RenderGraphUtils.h:322
FRDGTextureMSAA(FRDGTextureRef InTexture)
Definition RenderGraphUtils.h:296
bool IsSeparate() const
Definition RenderGraphUtils.h:306
FRDGTextureMSAA(FRDGTextureRef InTarget, FRDGTextureRef InResolve)
Definition RenderGraphUtils.h:291
bool operator!=(FRDGTextureMSAA Other) const
Definition RenderGraphUtils.h:316
Definition RenderGraphUtils.h:864
FRDGUploadData(FRDGBuilder &GraphBuilder, uint32 InCount)
Definition RenderGraphUtils.h:866
int32 GetTotalSize() const
Definition RenderGraphUtils.h:871
Definition RHICommandList.h:183
FIntVector SourcePosition
Definition RHICommandList.h:198
Definition ShaderParameterMacros.h:770
Definition ShaderParameterMacros.h:525
Definition RHIResources.h:5209
Definition RenderGraphUtils.h:135
int16 ArraySlice
Definition RenderGraphUtils.h:137
FRDGTextureRef Texture
Definition RenderGraphUtils.h:136
FTextureRenderTargetBinding(FRDGTextureRef InTexture, int16 InArraySlice=-1, bool bInNeverClear=false)
Definition RenderGraphUtils.h:152
FTextureRenderTargetBinding()
Definition RenderGraphUtils.h:140
FTextureRenderTargetBinding(FRDGTextureRef InTexture, bool bInNeverClear)
Definition RenderGraphUtils.h:146
bool bNeverClear
Definition RenderGraphUtils.h:138
Definition LinuxPlatformSplash.cpp:43
Definition Optional.h:131
IntType Y
Definition IntPoint.h:37
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType X
Definition IntPoint.h:34
IntType Y
Definition IntVector.h:34
IntType X
Definition IntVector.h:31
IntType Z
Definition IntVector.h:37