70UE_DEPRECATED(5.6,
"Use GPUSkinCacheStoreDuplicatedVertices instead to check if duplicate vertices need to be stored.")
140 UE_DEPRECATED(5.7,
"SkinCache no longer requires a memory limit")
209 return !BatchDispatches.
IsEmpty();
218 UE_DEPRECATED(5.7,
"Skin Cache no longer has an explicit budget.")
233 float ClothBlendWeight,
253 struct FDispatchEntry
259 struct FSortedDispatchEntry
270 struct FSkinCacheRWBuffer;
271 struct FRWBuffersAllocationInitializer;
272 struct FRWBuffersAllocation;
273 struct FRWBufferTracker;
276 void DispatchPassSetup(FTaskData& TaskData);
277 void DispatchPassExecute(FTaskData& TaskData);
293 void InvalidateAllEntries();
295 uint64 UsedMemoryInBytes = 0;
296 int32 FlushCounter = 0;
302 int32 CurrentStagingBufferIndex = 0;
307 static void CVarSinkFunction();
310 uint32 GetNextTransitionFence() {
return ++TransitionFence; }
311 uint32 TransitionFence = 0;
313 void PrintMemorySummary()
const;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_MEMORY_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:687
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EGPUSkinCacheBufferBits
Definition GPUSkinCache.cpp:309
EGPUSkinCacheDispatchFlags
Definition GPUSkinCache.cpp:300
ENGINE_API bool GPUSkinCacheNeedsDuplicatedVertices()
Definition GPUSkinCache.cpp:283
ENGINE_API void DynamicMeshBoundsModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition GPUSkinCache.cpp:1121
ENGINE_API ESkinCacheDefaultBehavior GetSkinCacheDefaultBehavior()
Definition GPUSkinCache.cpp:276
ENGINE_API FDynamicMeshBoundsShaderParameters GetDynamicMeshBoundsShaderParameters(FRDGBuilder &GraphBuilder)
Definition GPUSkinCache.cpp:1101
ENGINE_API int32 GEnableGPUSkinCache
Definition GPUSkinCache.cpp:106
EGPUSkinCacheEntryMode
Definition GPUSkinCache.h:104
bool ShouldWeCompileGPUSkinVFShaders(EShaderPlatform Platform, ERHIFeatureLevel::Type FeatureLevel)
Definition GPUSkinCache.cpp:242
ENGINE_API bool GPUSkinCacheStoreDuplicatedVertices()
Definition GPUSkinCache.cpp:292
int32 GSkinCacheRecomputeTangents
Definition GPUSkinCache.cpp:126
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
const bool
Definition NetworkReplayStreaming.h:178
ERHIAccess
Definition RHIAccess.h:11
ERHIPipeline
Definition RHIPipeline.h:13
#define SHADER_PARAMETER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1720
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
ESkinCacheDefaultBehavior
Definition SkinnedAssetCommon.h:46
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition Archive.h:1208
Definition IConsoleManager.h:1397
Definition RHIDefinitions.h:95
Definition GPUSkinCache.cpp:1008
Definition GPUSkinVertexFactory.h:202
Definition GPUSkinCache.cpp:584
Definition GPUSkinCache.h:126
static ENGINE_API void AddAsyncComputeSignal(FRDGBuilder &GraphBuilder)
Definition GPUSkinCache.cpp:1599
static void SetEntryGPUSkin(FGPUSkinCacheEntry *Entry, FSkeletalMeshObject *Skin)
Definition GPUSkinCache.cpp:2506
static bool IsEntryValid(FGPUSkinCacheEntry *SkinCacheEntry, int32 Section)
Definition GPUSkinCache.cpp:2440
static bool IsGPUSkinCacheRayTracingSupported()
Definition GPUSkinCache.cpp:2337
static FColor GetVisualizationDebugColor(const FName &GPUSkinCacheVisualizationMode, FGPUSkinCacheEntry *Entry, FGPUSkinCacheEntry *RayTracingEntry, uint32 SectionIndex)
Definition GPUSkinCache.cpp:2669
static void Dequeue(FGPUSkinCacheEntry *SkinCacheEntry)
Definition GPUSkinCache.cpp:2370
ERHIFeatureLevel::Type GetFeatureLevel() const
Definition GPUSkinCache.h:202
ENGINE_API int32 AllocateDynamicMeshBoundsSlot(int32 NumSlots)
Definition GPUSkinCache.cpp:1126
static FRWBuffer * GetPositionBuffer(FRDGBuilder &GraphBuilder, FGPUSkinCacheEntry const *Entry, uint32 SectionIndex)
Definition GPUSkinCache.cpp:2460
ENGINE_API ~FGPUSkinCache()
Definition GPUSkinCache.cpp:1156
static ENGINE_API void AddAsyncComputeWait(FRDGBuilder &GraphBuilder)
Definition GPUSkinCache.cpp:1613
uint64 GetExtraRequiredMemoryAndReset()
Definition GPUSkinCache.h:219
static ENGINE_API ERHIPipeline GetDispatchPipeline(FRDGBuilder &GraphBuilder)
Definition GPUSkinCache.cpp:1480
static void UpdateSkinWeightBuffer(FGPUSkinCacheEntry *Entry)
Definition GPUSkinCache.cpp:2493
ENGINE_API void DrawVisualizationInfoText(const FName &GPUSkinCacheVisualizationMode, FScreenMessageWriter &ScreenMessageWriter) const
Definition GPUSkinCache.cpp:2717
static uint32 GetUpdatedFrame(FGPUSkinCacheEntry const *, uint32)
Definition GPUSkinCache.h:216
void ProcessEntry(FRHICommandList &RHICmdList, const FProcessEntryInputs &Inputs, FGPUSkinCacheEntry *&InOutEntry)
Definition GPUSkinCache.cpp:2083
void DoDispatch(FRHICommandList &RHICmdList)
Definition GPUSkinCache.h:213
bool HasWork() const
Definition GPUSkinCache.h:207
ENGINE_API void ReleaseDynamicMeshBoundsSlot(int32 Offset, int32 NumSlots)
Definition GPUSkinCache.cpp:1132
ESkinCacheInitSettings
Definition GPUSkinCache.h:129
@ RWTangentZOffsetInFloats
Definition GPUSkinCache.h:134
@ RWTangentXOffsetInFloats
Definition GPUSkinCache.h:133
@ MaxUniformBufferBones
Definition GPUSkinCache.h:131
@ IntermediateAccumBufferNumInts
Definition GPUSkinCache.h:137
static FRWBuffer * GetPreviousPositionBuffer(FRDGBuilder &GraphBuilder, FGPUSkinCacheEntry const *Entry, uint32 SectionIndex)
Definition GPUSkinCache.cpp:2471
ENGINE_API UE::Tasks::FTask Dispatch(FRDGBuilder &GraphBuilder, const UE::Tasks::FTask &PrerequisitesTask, ERHIPipeline Pipeline)
Definition GPUSkinCache.cpp:1566
static FRWBuffer * GetTangentBuffer(FRDGBuilder &GraphBuilder, FGPUSkinCacheEntry const *Entry, uint32 SectionIndex)
Definition GPUSkinCache.cpp:2482
Definition GPUSkinVertexFactory.h:785
Definition SkeletalRenderGPUSkin.h:198
Definition NameTypes.h:617
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:3819
Definition SkeletalMeshLODRenderData.h:128
Definition SkeletalRenderGPUSkin.h:376
Definition SkeletalRenderPublic.h:85
Definition SkeletalMeshVertexClothBuffer.h:15
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
Definition SceneManagement.h:73
Definition ClothingSystemRuntimeTypes.h:15
Definition GPUSkinCache.h:84
friend FArchive & operator<<(FArchive &Ar, FClothSimulEntry &V)
Definition GPUSkinCache.h:95
FVector3f Normal
Definition GPUSkinCache.h:86
FVector3f Position
Definition GPUSkinCache.h:85
Definition GPUSkinCache.h:161
FMorphVertexBuffer * MorphVertexBuffer
Definition GPUSkinCache.h:166
const FSkeletalMeshVertexClothBuffer * ClothVertexBuffer
Definition GPUSkinCache.h:167
TConstArrayView< FProcessEntrySection > Sections
Definition GPUSkinCache.h:163
int32 LODIndex
Definition GPUSkinCache.h:171
float ClothBlendWeight
Definition GPUSkinCache.h:169
EGPUSkinCacheEntryMode Mode
Definition GPUSkinCache.h:162
FSkeletalMeshObject * Skin
Definition GPUSkinCache.h:164
bool bRecreating
Definition GPUSkinCache.h:172
uint32 CurrentRevisionNumber
Definition GPUSkinCache.h:170
FVector3f ClothWorldScale
Definition GPUSkinCache.h:168
FGPUSkinPassthroughVertexFactory * TargetVertexFactory
Definition GPUSkinCache.h:165
Definition GPUSkinCache.h:152
const FSkelMeshRenderSection * Section
Definition GPUSkinCache.h:154
FGPUBaseSkinVertexFactory * SourceVertexFactory
Definition GPUSkinCache.h:153
FMatrix44f ClothToLocal
Definition GPUSkinCache.h:157
int32 SectionIndex
Definition GPUSkinCache.h:155
const FClothSimulData * ClothSimulationData
Definition GPUSkinCache.h:156
Definition GlobalShader.h:73
Definition RHIUtilities.h:181
Definition RHIResources.h:3463
Definition CanvasTypes.h:854
Definition ShaderCore.h:544
Definition SkeletalMeshLODRenderData.h:28
Definition GPUSkinVertexFactory.h:59
static CORE_API const TMatrix Identity
Definition Matrix.h:52