6#include "Containers/Map.h"
7#include "Containers/Array.h"
20struct FTaskExecutionFlags;
21class FEntitySystemScheduler;
135#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
229 template<
typename TaskType,
typename ...TaskArgTypes>
236 static_cast<const TaskType*
>(
Context)->Run(WriteContext);
287 return EntityManager;
292 return WriteContextBase;
339 struct FComponentDependencies
349 FEntityManager* EntityManager;
351 mutable FEntitySystemMaybeAtomicInt32 NumTasksRemaining = 0;
353 FEvent* GameThreadSignal =
nullptr;
356 uint32 SystemSerialIncrement = 0;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_uint16
Definition NumericLimits.h:20
Definition AssetRegistryState.h:50
Definition LockFreeList.h:910
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition MovieSceneEntityManager.h:81
Definition MovieSceneTaskScheduler.h:171
~FEntitySystemScheduler()
Definition MovieSceneTaskScheduler.cpp:168
void BeginConstruction()
Definition MovieSceneTaskScheduler.cpp:749
void EndSystem(uint16 NodeID)
Definition MovieSceneTaskScheduler.cpp:771
void ExecuteTasks()
Definition MovieSceneTaskScheduler.cpp:515
void AddChildBack(FTaskID Parent, FTaskID Child)
Definition MovieSceneTaskScheduler.cpp:363
FTaskID AddTask(const FTaskParams &InParams, TaskArgTypes &&... Args)
Definition MovieSceneTaskScheduler.h:230
bool HasAnyTasksToPropagateDownstream() const
Definition MovieSceneTaskScheduler.cpp:743
void AddChildFront(FTaskID Parent, FTaskID Child)
Definition MovieSceneTaskScheduler.cpp:340
FTaskID AddNullTask()
Definition MovieSceneTaskScheduler.cpp:431
void CompleteTask(const FScheduledTask *Task, FTaskExecutionFlags InFlags) const
Definition MovieSceneTaskScheduler.cpp:634
FString ToString() const
Definition MovieSceneTaskScheduler.cpp:820
void AddPrerequisite(FTaskID Prerequisite, FTaskID Subsequent)
Definition MovieSceneTaskScheduler.cpp:328
void PropagatePrerequisite(uint16 ToNodeID)
Definition MovieSceneTaskScheduler.cpp:764
const FEntityManager * GetEntityManager() const
Definition MovieSceneTaskScheduler.h:285
FEntityAllocationWriteContext GetWriteContextOffset() const
Definition MovieSceneTaskScheduler.h:290
void BeginSystem(uint16 NodeID)
Definition MovieSceneTaskScheduler.cpp:758
static bool IsCustomSchedulingEnabled()
Definition MovieSceneTaskScheduler.cpp:173
void PrerequisiteCompleted(FTaskID TaskID, int32 *OptRunInlineIndex) const
Definition MovieSceneTaskScheduler.cpp:671
FTaskID CreateForkedAllocationTask(const FTaskParams &InParams, TSharedPtr< ITaskContext > InTaskContext, TaskFunctionPtr InTaskFunction, TFunctionRef< void(FEntityAllocationIteratorItem, TArray< FPreLockedDataPtr > &)> InPreLockFunc, const FEntityComponentFilter &Filter, const FComponentMask &ReadDeps, const FComponentMask &WriteDeps)
Definition MovieSceneTaskScheduler.cpp:178
void EndConstruction()
Definition MovieSceneTaskScheduler.cpp:776
void ShuffleTasks()
Definition MovieSceneTaskScheduler.cpp:441
void OnAllTasksFinished() const
Definition MovieSceneTaskScheduler.cpp:734
Definition IMovieSceneTaskScheduler.h:162
friend class FEntitySystemScheduler
Definition IMovieSceneTaskScheduler.h:223
Definition ConstraintsManager.h:14
void(*)(FEntityAllocationIteratorItem Item, TArrayView< const FPreLockedDataPtr > PreLockedData, const ITaskContext *TaskContext, FEntityAllocationWriteContext WriteContext) PreLockedAllocationItemFunctionPtr
Definition IMovieSceneTaskScheduler.h:157
TDynamicSparseBitSet< uint32, TDynamicSparseBitSetBucketStorage< uint16, 0 > > FTaskBitSet
Definition MovieSceneTaskScheduler.h:23
EEntityThreadingModel
Definition MovieSceneMaybeAtomic.h:17
void(*)(FEntityAllocationIteratorItem Item, const ITaskContext *TaskContext, FEntityAllocationWriteContext WriteContext) AllocationItemFunctionPtr
Definition IMovieSceneTaskScheduler.h:156
void(*)(const ITaskContext *TaskContext, FEntityAllocationWriteContext WriteContext) UnboundTaskFunctionPtr
Definition IMovieSceneTaskScheduler.h:154
void(*)(const FEntityAllocation *Allocation, const ITaskContext *TaskContext, FEntityAllocationWriteContext WriteContext) AllocationFunctionPtr
Definition IMovieSceneTaskScheduler.h:155
Definition LightweightStats.h:416
Definition MovieSceneEntityIDs.h:40
Definition MovieSceneEntitySystemTypes.h:977
Definition MovieSceneEntitySystemTypes.h:425
static FEntityAllocationWriteContext NewAllocation()
Definition MovieSceneEntitySystemTypes.h:428
Definition MovieSceneEntitySystemTypes.h:295
Definition MovieSceneMaybeAtomic.h:31
Definition MovieSceneTaskScheduler.h:52
EType Assign(AllocationFunctionPtr InAllocation)
Definition MovieSceneTaskScheduler.h:67
EType Assign(AllocationItemFunctionPtr InAllocationItem)
Definition MovieSceneTaskScheduler.h:72
AllocationItemFunctionPtr AllocationItem
Definition MovieSceneTaskScheduler.h:87
EType
Definition MovieSceneTaskScheduler.h:54
@ PreLockedAllocationItem
AllocationFunctionPtr Allocation
Definition MovieSceneTaskScheduler.h:86
EType Assign(UnboundTaskFunctionPtr InUnboundTask)
Definition MovieSceneTaskScheduler.h:62
PreLockedAllocationItemFunctionPtr PreLockedAllocationItem
Definition MovieSceneTaskScheduler.h:88
UnboundTaskFunctionPtr UnboundTask
Definition MovieSceneTaskScheduler.h:85
EType Assign(PreLockedAllocationItemFunctionPtr InPreLockedAllocationItem)
Definition MovieSceneTaskScheduler.h:77
Definition MovieSceneTaskScheduler.h:107
uint16 AllocationIndex
Definition MovieSceneTaskScheduler.h:111
TArray< FPreLockedDataPtr > PreLockedComponentData
Definition MovieSceneTaskScheduler.h:109
Definition MovieSceneTaskScheduler.h:96
FScheduledTaskFuncionPtr::EType TaskFunctionType
Definition MovieSceneTaskScheduler.h:161
void Run(const FEntitySystemScheduler *Scheduler, FTaskExecutionFlags InFlags) const
Definition MovieSceneTaskScheduler.cpp:82
FLockedComponentData LockedComponentData
Definition MovieSceneTaskScheduler.h:146
FString DebugName
Definition MovieSceneTaskScheduler.h:137
TStatId StatId
Definition MovieSceneTaskScheduler.h:141
TSharedPtr< ITaskContext > TaskContext
Definition MovieSceneTaskScheduler.h:133
int32 NumPrerequisites
Definition MovieSceneTaskScheduler.h:149
FEntitySystemMaybeAtomicInt32 ChildCompleteCount
Definition MovieSceneTaskScheduler.h:153
FEntityAllocationWriteContext WriteContextOffset
Definition MovieSceneTaskScheduler.h:143
FEntitySystemMaybeAtomicInt32 WaitCount
Definition MovieSceneTaskScheduler.h:151
uint8 bForceInline
Definition MovieSceneTaskScheduler.h:167
FTaskBitSet ChildTasks
Definition MovieSceneTaskScheduler.h:127
FTaskBitSet ComputedSubsequents
Definition MovieSceneTaskScheduler.h:125
~FScheduledTask()
Definition MovieSceneTaskScheduler.cpp:68
uint8 bForceGameThread
Definition MovieSceneTaskScheduler.h:164
FTaskID Parent
Definition MovieSceneTaskScheduler.h:156
uint16 NumChildren
Definition MovieSceneTaskScheduler.h:158
void SetFunction(TaskFunctionPtr InFunction)
Definition MovieSceneTaskScheduler.cpp:71
FScheduledTaskFuncionPtr TaskFunction
Definition MovieSceneTaskScheduler.h:130
Definition MovieSceneTaskScheduler.cpp:25
Definition IMovieSceneTaskScheduler.h:21
Definition IMovieSceneTaskScheduler.h:44
Definition MovieSceneTaskScheduler.h:31
FTaskBitSet ForcedSystemWidePrerequisites
Definition MovieSceneTaskScheduler.h:41
void Reset()
Definition MovieSceneTaskScheduler.h:44
FTaskBitSet SystemWidePrerequisites
Definition MovieSceneTaskScheduler.h:36
Definition IMovieSceneTaskScheduler.h:113