Commit Graph

239 Commits

Author SHA1 Message Date
devin doucette
7fcff95736 Added FParkingLot, FMutex, TUniqueLock, TDynamicUniqueLock
FParkingLot is a framework for building locks and other synchronization primitives, based on WTF::ParkingLot from WebKit.

FMutex is a one-byte mutex that is neither fair nor recursive, based on WTF::Lock from WebKit.

TUniqueLock and TDynamicUniqueLock are generic types to manage mutex locking, based on std::unique_lock.

#preflight 63fe76cbae54ee4ce9db2ca6
#rb Andriy.Tylychko, Phil.Pizlo

[CL 24552008 by devin doucette in ue5-main branch]
2023-03-07 19:11:45 -05:00
andriy tylychko
d6fc1637cc TasksInsights refactoring:
* fixed UE-166680
* refactored how task traces are used
* refactored task traces analysis
* added task size parameter
* added an ability to select which tasks to show in the tasks table: "alive", "waiting for prerequisites", "queued", "executing", "waiting for nested" and "completed"

#jira UE-166680
#preflight 63e650dd8917c5deac6fdb23
#preflight 63f36554500c05a6240f2857

[CL 24317221 by andriy tylychko in ue5-main branch]
2023-02-20 12:17:38 -05:00
Johan Berg
2b44a347bb Fix for metadata scopes applied in tasks.
When launching a task, the metadata stack is captured at the calling site, and reapplied as a scope as soon as the task begins to execute. The macro that performed this reapplication was misnamed and didn't imply that it was actually creating a scope. This change removes the macro and adds a custom scope type which can be embedded in the inherited context for the task.

#rb ionut.matasaru, andriy.tylychko
#jira UE-167069
#preflight 63e64e153c247ccd13e986e4

[CL 24118353 by Johan Berg in ue5-main branch]
2023-02-10 09:31:37 -05:00
Andriy Tylychko
365b006d37 ignoring task traces until task channel is initialised. this was asserting on early editor exit
#rb Paul.Chipchase
#preflight 63e379545c0ce8f11bf6784a

[CL 24070423 by Andriy Tylychko in ue5-main branch]
2023-02-08 05:49:54 -05:00
pj kack
c1dfe83c61 UnrealPak: Add more fine grained trace cpu scopes for profiling on remote machines.
#rb trivial
#rnx
#preflight 63e10793b923ed4bddea469f

[CL 24031827 by pj kack in ue5-main branch]
2023-02-06 11:39:10 -05:00
dmytro vovk
9c056e0b37 Fixed compilation in ReserveScheduler.cpp
[CL 23966882 by dmytro vovk in ue5-main branch]
2023-02-02 08:46:03 -05:00
dmytro vovk
eca950e378 Changed LowLevelTasks::TEventStack to support ARM's HWASan and MTE
#jira UE-168575
#rb Arne.Schober

[CL 23966880 by dmytro vovk in ue5-main branch]
2023-02-02 08:45:54 -05:00
Arne Schober
92806e3af3 Fix check in debug
#review-23743310 trivial
#preflight local

[CL 23743305 by Arne Schober in ue5-main branch]
2023-01-17 14:42:57 -05:00
Arne Schober
0d1ebf2cb5 Remove Dynamic LocalQueue Management as it was not really used and we have alternatives if needed. This does not impact performance but should reduce power consumption by 1%.
#preflight 63c1e9f40b358b97d1987b65
#review-23690564 Andriy.Tylychko, danny.couture

[CL 23690562 by Arne Schober in ue5-main branch]
2023-01-13 19:03:07 -05:00
Devin Doucette
aca1a10d05 Do not lower priority on tasks that are canceled or were expedited
Authored by Arne Schober.

#preflight 63bc5e41d862fdd3476d60a9
#rb Arne.Schober

[CL 23617422 by Devin Doucette in ue5-main branch]
2023-01-09 14:02:39 -05:00
simon orr
640b84ae57 MemQuery integrating into 23.30
MemQuery plugin. LLM tracking of Assets and AssetClasses if enabled.
Memory usage queries to display memory usage for assets and classes with group breakdowns amongst other uses.
Modification to LowLevelMemTracker to support asset and assetclass tracking.
#rb Matt.Peters

[CL 23599453 by simon orr in ue5-main branch]
2023-01-06 12:22:16 -05:00
Andriy Tylychko
d48f6660b8 removed StatsThread as it's not used anymore
cleaned recent removal of AudioThread
removed `StatsThread` and `AudioThread` from ENamedThreads
renamed FPlatformAffinity::GetAudioThreadMask() to GetAudioRenderThreadMask() as it's still used for AudioRenderThread
#preflight 6393383ac709c7275629d513
#rb francis.hurteau
#preflight 63970ef35624e6da5e3f4d5e

[CL 23476743 by Andriy Tylychko in ue5-main branch]
2022-12-12 07:33:07 -05:00
jordan cristiano
4e85b3e7a4 Removed all code under !UE_AUDIO_THREAD_AS_PIPE. Just a cleanup.
#rb phil.popp, andriy.tylychko, aaron.mcleran, francis.hurteau

[CL 23452459 by jordan cristiano in ue5-main branch]
2022-12-08 14:48:49 -05:00
Andriy Tylychko
da8307de65 disabled TaskGraph slow broadcast processing warnings on named threads as we don't wait for named threads broadcasts anymore
#preflight 637e59aee30d438849e84d5a
#rb francis.hurteau

[CL 23257452 by Andriy Tylychko in ue5-main branch]
2022-11-24 05:50:52 -05:00
ennorehling
be0b5ec7dc PR #9662: Correct spelling of "receive" in log messages. (Contributed by ennorehling)
#jira UE-167168
#rb trivial
#preflight 6352be99ae33b04ec10beb97

[CL 22694385 by ennorehling in ue5-main branch]
2022-10-21 13:43:26 -04:00
ionut matasaru
865bfc3105 Tagged the large memory allocation(s) from FReserveScheduler::StartWorkers (reserving worker threads) with "EngineMisc" LLM tag. Previously it was tagged randomly by the first system that triggers the initialization (usually being the "ConfigSystem" LLM tag).
#rb Andriy.Tylychko
#preflight 63475c67045315f96aaca61d

[CL 22508138 by ionut matasaru in ue5-main branch]
2022-10-13 13:46:49 -04:00
Andriy Tylychko
6670668124 fixed server compilation that happens to have UE_MEMORY_TAGS_TRACE_ENABLED enabled but not UE_TRACE_ENABLED
#jira UE-166023
#preflight 633d8146d74cbd55044b2365

[CL 22353844 by Andriy Tylychko in ue5-main branch]
2022-10-05 09:33:49 -04:00
Andriy Tylychko
ab5a1abe8d InheritedContext
grouped inherited LLM tag, mem tag and trace metadata into FInheritedContext to simplify their usage, avoid forgetting using all of them together, and to hide the ugly conditional compilation. Added FInheritedContext to higher level tasks instead of the low-level tasks to allow batch task launch to capture the inherited context once per batch

#rb ionut.matasaru
#preflight 633c47792f4bf32d31687192

[CL 22331272 by Andriy Tylychko in ue5-main branch]
2022-10-04 11:22:08 -04:00
Luke Thatcher
91ce45971a Restore changes lost when the DevPR copy-up robomerged back to UE5 Main
#rb none
#preflight skip
#jira none

[CL 22245170 by Luke Thatcher in ue5-main branch]
2022-09-29 06:31:56 -04:00
David Harvey
80d21b8534 fixup robomerge stomp
#rnx
#preflight skip
#fyi Luke.Thatcher

[CL 22244855 by David Harvey in ue5-main branch]
2022-09-29 05:13:33 -04:00
luke thatcher
0c5c2b3e27 Merging //UE5/Dev-ParallelRendering (up to CL 22203289) to //UE5/Release-5.1
This change includes significant refactor work performed in //UE5/Dev-ParallelRendering. A brief summary of the work is as follows:

Refactored RHI command lists
 - Removal of the "immediate" async compute command list
 - Introduced an "active pipe" on each command list, allowing RHICmdLists to record work for either graphics or async compute. Pipes can be selected using the SwitchPipeline() function, or the FRHICommandListScopedPipeline helper.
 - New explicit command list submission RHI API (RHIFinalizeContext, RHISubmitCommandLists). The IRHICommandContextContainer type has been removed.
 - Explicit GPU submission is automatically appended to the immediate command list when it is dispatched to the RHI thread.

Platform RHI implementations
 - The new submission API has been implemented across all platforms. Some platforms required a significant refactor.

#rb Mihnea.Balta,Kenzo.Terelst
#jira UE-139550
#preflight 6332e3641003050806d802ef

[CL 22239063 by luke thatcher in ue5-main branch]
2022-09-28 21:40:05 -04:00
Matt Peters
e9269d0f5b MultiprocessCook - Modify memory and corelimit settings when cooking multiprocess.
#rb Zousar.Shaker
#rnx
#preflight 632e1493671a1a24b58c71c1

[CL 22160375 by Matt Peters in ue5-main branch]
2022-09-23 16:23:49 -04:00
Andriy Tylychko
4a6985cfbe Deprecated all global vars of thread-safe delegates from FCoreDelegates and replaced them by functions returning local static singleton.
thread-safe delegates are not zero-initializable and so can't be used as global vars because they are vulnerable to static initialization order fiasco.

#jira UE-163668
#rb steve.robb
#preflight 632462db3752284a3179ec02

[CL 22094531 by Andriy Tylychko in ue5-main branch]
2022-09-20 11:45:56 -04:00
Andriy Tylychko
f78784aef7 switched back to lock-free allocator for tasks and removed CreateCompletionHandle()
#rb fransic.hurteau
#preflight 6322fb82e872d7da038cb2bb

[CL 22026345 by Andriy Tylychko in ue5-main branch]
2022-09-15 06:46:54 -04:00
james studdart
0a2d83aada TaskGraph - Use a local scratch variable for tasks popped in DispatchSubsequents() instead of reusing a referenced one that's passed in. This was causing a crash because the passed in array was being cleared by another thread before we were finished using them.
#preflight 630e82b1660db81edb9dd59b
[FYI] cedric.caillaud, enrique.garciaamezcu

[CL 21716495 by james studdart in ue5-main branch]
2022-08-30 23:04:53 -04:00