Commit Graph

188 Commits

Author SHA1 Message Date
Andriy Tylychko
565ec19f8e config option to disable reserve workers. reserve workers don't provide any perf improvement on consoles so are disabled by default
#robomerge 5.0
#rb francis.hurteau
#preflight 6194e42be05315f64f00b96c

[CL 18221777 by Andriy Tylychko in ue5-main branch]
2021-11-17 06:49:30 -05:00
andriy tylychko
587844fc00 TaskGraph: fixed WaitUntilTasksComplete to tolerate null tasks
#ROBOMERGE-AUTHOR: andriy.tylychko
#ROBOMERGE-SOURCE: CL 17816950 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17816965 by andriy tylychko in ue5-release-engine-test branch]
2021-10-14 11:40:03 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
andriy tylychko
d44e571545 fixed reserve workers stalling on exit
[FYI] arne.schober

#ROBOMERGE-AUTHOR: andriy.tylychko
#ROBOMERGE-SOURCE: CL 17628182 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17628190 by andriy tylychko in ue5-release-engine-test branch]
2021-09-27 04:46:56 -04:00
devin doucette
b06c7a60f1 Experimental UE::FLazyEvent that allocates an event only when necessary
#rb Andriy.Tylychko
#preflight 6148ec33286e3b0001f0f2b9

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 17608991 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17608999 by devin doucette in ue5-release-engine-test branch]
2021-09-23 11:48:38 -04:00
arne schober
398721f211 U5 - adding extra verfication constraints.
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 17543261 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17543280 by arne schober in ue5-release-engine-test branch]
2021-09-16 15:26:30 -04:00
arne schober
db71e3f7cb U5 - fix cases of early drowsing state.
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 17542302 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17542308 by arne schober in ue5-release-engine-test branch]
2021-09-16 14:26:58 -04:00
arne schober
5360e123e0 U5 - try to have workers go into drowsing early so that when wakup occurs we don't have to hard trigger sleeping workers instead.
#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 17534653 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17534665 by arne schober in ue5-release-engine-test branch]
2021-09-16 02:42:49 -04:00
andriy tylychko
d7b45a28dc Tasks: traced waiting, plus a minor refactoring
#ROBOMERGE-SOURCE: CL 17318026 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17318048 by andriy tylychko in ue5-release-engine-test branch]
2021-08-26 10:48:23 -04:00
dan phillips
71c34f44a4 Add thread priority defaults for Task and TaskBP threads
#jira none
[FYI] ben.woodhouse

#ROBOMERGE-SOURCE: CL 17119067 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
#ROBOMERGE[bot1]: dev-enginemerge-test

[CL 17119075 by dan phillips in ue5-release-engine-test branch]
2021-08-10 13:06:56 -04:00
dan phillips
eb2aa73d60 Add setting of affinity and priority for the task graph when starting workers
#jira none

#ROBOMERGE-SOURCE: CL 17089496 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
#ROBOMERGE[bot1]: dev-enginemerge-test

[CL 17089520 by dan phillips in ue5-release-engine-test branch]
2021-08-06 18:20:25 -04:00
andriy tylychko
f70ac54143 the fix proposed by Arne Schober to match reserve worker's priority to the priority of the blocked worker it's replacing
[FYI] arne.schober

#jira UE-119594

#ROBOMERGE-SOURCE: CL 17081478 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17081501 by andriy tylychko in ue5-release-engine-test branch]
2021-08-06 06:39:47 -04:00
arne schober
ef56d89c0c fix macos alignment restrictions
#ROBOMERGE-SOURCE: CL 17046482 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v848-17036448)

[CL 17046492 by arne schober in ue5-release-engine-test branch]
2021-08-04 00:54:37 -04:00
arne schober
78eac24afe Implemented Taskaffinity to launch a job on a specific worker. This uses a seperate queue for every worker to work. We had to introduce an extra sleeping state to ensure that the worker will try to check the queues again without necessarily adding itself again to the sleepstack when drowsing.
Also fixing some issues with the throttle stealing that could lead to drowsing workers not properly waking up in certain situations.

#ROBOMERGE-SOURCE: CL 17044019 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v848-17036448)

[CL 17044020 by arne schober in ue5-release-engine-test branch]
2021-08-03 21:00:54 -04:00
christopher waters
9d45f03ead Allowing configuration of Task priorities from configs.
#jira none
#rb Andriy.Tylychko, Ben.Woodhouse
#preflight 6102efe84cd7930001c05a98

#ROBOMERGE-SOURCE: CL 17016621 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
#ROBOMERGE[bot1]: EMT

[CL 17016639 by christopher waters in ue5-release-engine-test branch]
2021-08-02 11:41:36 -04:00
christopher waters
72b7e407d7 Setting correct background task affinities.
#jira none
#rb arne.schober
#preflight 60fb28225eeb86000108d6bb

#ROBOMERGE-SOURCE: CL 16945775 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
#ROBOMERGE[bot1]: Dev-PerfTest

[CL 16945783 by christopher waters in ue5-release-engine-test branch]
2021-07-23 23:59:21 -04:00
andriy tylychko
d336789bd1 TaskGraph: fixed Oodle texture compression on low core count machines when the new scheduler wasn't picking up all tasks (courtesy of Arne Schober)
[FYI] Zousar.Shaker
[FYI] arne.schober
#jira UE-119594

#ROBOMERGE-SOURCE: CL 16922241 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16922250 by andriy tylychko in ue5-release-engine-test branch]
2021-07-22 07:06:03 -04:00
brian bekich
b6c99bf01b Allow forked child process task graph to start worker threads
#jira UE-117246
#rb ryan.gerleve
#preflight 60d491740123b700012d0f82

#ROBOMERGE-SOURCE: CL 16774564 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16774569 by brian bekich in ue5-release-engine-test branch]
2021-06-24 11:30:06 -04:00
francis hurteau
16e6756a5b 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

#ROBOMERGE-SOURCE: CL 16758572 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16758880 by francis hurteau in ue5-release-engine-test branch]
2021-06-23 12:41:55 -04:00
andriy tylychko
695f33da18 fixed non-unity compilation: https://horde.devtools.epicgames.com/job/60d11e0478c3b00001ed36fd?step=b476
#ROBOMERGE-SOURCE: CL 16740058 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16740194 by andriy tylychko in ue5-release-engine-test branch]
2021-06-22 05:54:34 -04:00
andriy tylychko
328a594bc7 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

#ROBOMERGE-SOURCE: CL 16728118 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16728128 by andriy tylychko in ue5-release-engine-test branch]
2021-06-21 10:42:28 -04:00
andriy tylychko
e38e3d02a9 conditional compilation for "StatsThread as a pipe" with an ability to turn back to "StatsThread as a named thread"
#jira UE-117540

#ROBOMERGE-SOURCE: CL 16686290 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16686297 by andriy tylychko in ue5-release-engine-test branch]
2021-06-16 07:11:54 -04:00
arne schober
945db6ed0d 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
#ROBOMERGE-SOURCE: CL 16678228 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16678237 by arne schober in ue5-release-engine-test branch]
2021-06-15 15:49:59 -04:00
arne schober
2f58aa11fc U5 - refactored local queue behaviour so that they can be shared between differnt schedulers.
#preflight 60c246fe9e139d000109ae94

#ROBOMERGE-SOURCE: CL 16629577 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16629591 by arne schober in ue5-release-engine-test branch]
2021-06-10 16:33:49 -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