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]
Where Revival tries to revert any Cancellation as if it never happened. If the canceled Task was already executed by the Scheduler the revival will fail
(the Task will not be relaunched if revival fails). And where Expediting tries to fast track a task if the result is needed immediately on the current Context.
#preflight 6230cb60f41c515c3704cf08
#RB Francis.Hurteau
[CL 19388819 by Arne Schober in ue5-main branch]
- This restore proper prioritization support that was lost with the new task backend while keeping a sane number of threads
- This helps to prevent latency sensitive tasks from going to efficient cores for Alder Lake
- This fixes performance problems caused by high prio task getting picked up by background threads and being preempted under high-load, causing FPS hiccups.
- SetThreadPriority takes ~20us on average on Windows System and is only paid for background work
- Longer SetThreadPriority can be expected when lowering the priority of a task under heavy load, which might cause the caller to be preempted right away, this is expected.
- Can be A/B tested from command-line with -TaskGraphUseDynamicPrioritization=1/0
#rb Andriy.Tylychko, Arne.Schober, Stefan.Boberg
#preflight 622786a7e83598518f3745a1
[CL 19314282 by danny couture in ue5-main branch]
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18705977 via CL 18705984 via CL 18705985 via CL 18706158 via CL 18706183 via CL 18706254
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18706276 by arne schober in ue5-main branch]
#preflight trivial
#ROBOMERGE-OWNER: arne.schober
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18705843 via CL 18705878 via CL 18705880 via CL 18705980 via CL 18705982 via CL 18706248
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18706268 by arne schober in ue5-main branch]
#RB Ben.Woodhouse, Danny.Couture
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18673418 via CL 18673478 via CL 18673481 via CL 18674312 via CL 18674344 via CL 18674390
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)
[CL 18679696 by arne schober in ue5-main branch]
This has the side-effect of releasing unused OS pages to the next GC (since they are released from the per-thread calls to FlushCurrentThreadCache, but doesn't has a noticeable impact on internal demo.
In practice, this makes FMemory::Trim detached from the GC reachability pass, and takes ~4ms instead of ~10-50ms depending on the other threads workload.
Original code by PJ.Kack.
#rb kenzo.terelst, richard.malo
#lockdown jeff.farris
#preflight 61697646823b7b0001acfb3a
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 17829574 via CL 18002912 via CL 18368846 via CL 18368871
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368879 by jeanfrancois dube in ue5-release-engine-test 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]