Commit Graph

171 Commits

Author SHA1 Message Date
Brian Bekich
02d5d62ffc Allow forked child process task graph to start worker threads
#jira UE-117246
#rb ryan.gerleve
#preflight 60d491740123b700012d0f82

[CL 16774564 by Brian Bekich in ue5-main branch]
2021-06-24 11:29:54 -04:00
Francis Hurteau
a11790808a Make TaskGraph reserve workers busy wait if tasks being dispatched on them are waiting
#rb andriy.tylychko
#jira UE-118693
#fyi arne.schober
#preflight 60d34b90d9586b0001368840

[CL 16758572 by Francis Hurteau in ue5-main branch]
2021-06-23 12:20:23 -04:00
Andriy Tylychko
12415e1350 fixed non-unity compilation: https://horde.devtools.epicgames.com/job/60d11e0478c3b00001ed36fd?step=b476
[CL 16740058 by Andriy Tylychko in ue5-main branch]
2021-06-22 05:10:21 -04:00
Andriy Tylychko
ade7f862b1 TaskGraph: disabled "busy waiting by default" and replaced by reserve workers, based on Arne Schober implementation. to turn back to original implementation use -TaskGraphDisableReserveWorkers
#fyi danny.couture francis.hurteau arne.schober
#jira UE-117542

[CL 16728118 by Andriy Tylychko in ue5-main branch]
2021-06-21 10:41:52 -04:00
Andriy Tylychko
10b5e05d00 conditional compilation for "StatsThread as a pipe" with an ability to turn back to "StatsThread as a named thread"
#jira UE-117540

[CL 16686290 by Andriy Tylychko in ue5-main branch]
2021-06-16 07:11:06 -04:00
Arne Schober
6a774dbebb U5 - change throttle stealing behaviour so that we only start throllting when more than half of the workers are idling. Also have an idling worker that just found new work to wake yet another worker. THis way we should spin up to full capacity even if the producer missed to wake the other half of the sleeping workers
[CL 16678228 by Arne Schober in ue5-main branch]
2021-06-15 15:49:28 -04:00
Arne Schober
e3911fcc46 U5 - refactored local queue behaviour so that they can be shared between differnt schedulers.
#preflight 60c246fe9e139d000109ae94

[CL 16629577 by Arne Schober in ue5-main branch]
2021-06-10 16:33:15 -04:00
Arne Schober
0d22a0dd80 U5 - Always wake workers during busy waiting as we might tap out any moment after finishing a task dependency.
#preflight 60b896f64d507d0001dfd19e

[CL 16549988 by Arne Schober in ue5-main branch]
2021-06-03 13:55:51 -04:00
Arne Schober
29044bba4d U5 - Hoist out the shared Sheduler TLS sate into it's own class and allow forcing of background work for busy waiting.
[CL 16526949 by Arne Schober in ue5-main branch]
2021-06-01 20:55:21 -04:00
Andriy Tylychko
0bdece37c9 removed changes that slipped into 16481905 by mistake
[CL 16512642 by Andriy Tylychko in ue5-main branch]
2021-06-01 06:47:00 -04:00
Andriy Tylychko
ba60d1c681 AudioThread replaced by a pipe, with an ability to switch back to audio thread by conditional compilation (UE_AUDIO_THREAD_AS_PIPE)
#rb aaron.mcleran phil.popp

[CL 16481905 by Andriy Tylychko in ue5-main branch]
2021-05-27 04:54:55 -04:00
andrew firth
a44ec91554 [INSIGHTS] - add insights zones to illuminate overall frame time.
#rb Jason.Nadro

#ROBOMERGE-SOURCE: CL 16444116 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v814-16434418)

[CL 16444117 by andrew firth in ue5-main branch]
2021-05-24 22:47:38 -04:00
Andriy Tylychko
5469ce3478 TaskTraces for the new TaskGraph API
WIP

#fyi catalin.dragoiu

[CL 16328386 by Andriy Tylychko in ue5-main branch]
2021-05-14 07:43:28 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
nuno leiria
cce4046751 Remove old clang workaround that creates symbol resolution linker errors
#rb brandon.schaefer

[CL 15889875 by nuno leiria in ue5-main branch]
2021-04-01 11:23:39 -04:00
Andriy Tylychko
a3a59cce63 disabled the old algo of tasks execution context checks to handle busy waiting on named threads
#rb arne.schober

[CL 15833561 by Andriy Tylychko in ue5-main branch]
2021-03-25 18:08:22 -04:00
Andriy Tylychko
327a94d1a4 StatsThread replaced by a Pipe:
* the thread was removed and its surrounding was cleaned up a bit
* ENamedThreads::StatsThread (and relatives) deprecated
* support for single-threaded execution looks a bit messy because it still have to be based on the old TaskGraph API until we convert the game thread to the new API (which will be one of the very last things)
* despite the direct usage of ENamedThreads::StatsThread from an external code is highly unlikely, to preserve backward compatiblity internally TaskGraph redirects all remaining stats tasks to StatsPipe

#rb martin.ridgers

[CL 15794122 by Andriy Tylychko in ue5-main branch]
2021-03-24 04:47:07 -04:00
Arne Schober
5fcffdf5f9 U5 - only wake the emergency worker once during busy wait
[CL 15753315 by Arne Schober in ue5-main branch]
2021-03-19 23:26:22 -04:00
Arne Schober
6226c15344 U5 - scale FG workers with corecount to keep overall system more responsive on high core count machines
[CL 15714318 by Arne Schober in ue5-main branch]
2021-03-16 15:24:24 -04:00
Yuriy ODonnell
7e9fab7a68 Refactored DECLARE_STAT macro to use EStatFlags instead of series of bool parameters. Added a mechanism to disable a external profiler and trace events for a specific stat. Disabled events for CPU stall stats by default.
Use `-verbosenamedevents` command line argument to allow all events (restore old behavior; implies `-statnamedevents`).

#rb ionut.matasaru

[CL 15695521 by Yuriy ODonnell in ue5-main branch]
2021-03-15 08:38:40 -04:00
Arne Schober
0e072c82f3 U5 - change scheduler to use cycles for it's spinloop because that is more predictable across differnt CPU architectures.
[CL 15578850 by Arne Schober in ue5-main branch]
2021-03-02 23:34:26 -04:00
Arne Schober
1026b0f1fa U5 - always wake up backgroundworkers when busy waiting on tasks and there is no work to be done.
[CL 15538110 by Arne Schober in ue5-main branch]
2021-02-25 23:37:58 -04:00
Arne Schober
7e270e59ca U5 - implement the ability to set and propagate Task UserData
[CL 15525800 by Arne Schober in ue5-main branch]
2021-02-24 23:52:27 -04:00
Arne Schober
e0fb5bce47 U5 - Ability to prevent certain tasks from being used during busy waiting
[CL 15514005 by Arne Schober in ue5-main branch]
2021-02-24 10:36:30 -04:00
simon tourangeau
e266ebd713 Added copyright boilerplate to file.
#rb none

#ROBOMERGE-SOURCE: CL 15417153 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15417182 by simon tourangeau in ue5-main branch]
2021-02-16 09:27:10 -04:00