1) to use "inline" priority publicly, which is often helpful for perf
2) to use Tasks System with named threads (only if "tasks integration" is enabled - `TASKGRAPH_NEW_FRONTEND`)
#preflight 6271491cfe09c0cfbc3c5b69
[CL 20027004 by Andriy Tylychko in ue5-main branch]
also includes the fix for parallel animation evaluation to work correctly with task retraction that is globally enabled by these change. animation fix was reviewed by evgenii.babinets
#rb francis.hurteau, danny.couture
#preflight 6268163bdd35c0d6cab2c267
[CL 19924083 by Andriy Tylychko in ue5-main branch]
* tasks store task body by value in place
* pooled task allocation
* FTaskEvent doesn't have a body and is not executed
* basic waiting for a task (w/o timeout) allocates the waiting task on the stack
* optimised internal atomic state and task retraction
#rb francis.hurteau
#preflight https://horde.devtools.epicgames.com/job/625e84b0d412434587e1b740
[CL 19805905 by Andriy Tylychko in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
Thread1 can call TaskEvent.Trigger(), which unlocks the task, and before it calls verify(TryExecute()), Thread2 starts TaskEvent retraction (because Thread2 started waiting on its subsequent task), and first it gets execution permission. then it proceeds to complete retraction as the task is unlocked but not executed yet. Now Thread1 tries to get execution permissions and fails, but can proceed as normal. its job is done
[FYI] devin.doucette
#ROBOMERGE-AUTHOR: andriy.tylychko
#ROBOMERGE-SOURCE: CL 17770492 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0
[CL 17770496 by andriy tylychko in ue5-release-engine-test branch]
A nested task is a task that must be completed before its parent task is completed, w/o blocking a worker that executes the parent task. It's an analog to `DontCompleteUntil` feature of the old TaskGraph
#rb Francis.Hurteau Danny.Couture
#ROBOMERGE-SOURCE: CL 17014883 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17014884 by andriy tylychko in ue5-release-engine-test branch]
* refactored integration with low-level tasks to fix task retraction: high-level tasks now store task body because there's no way to store it in low-level task and to implement retraction
* added timeout support for task retraction
* removed tests that deadlocks with task retraction
#rb francis.hurteau danny.couture
#ROBOMERGE-SOURCE: CL 16938828 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16938834 by andriy tylychko in ue5-release-engine-test branch]