Commit Graph

864 Commits

Author SHA1 Message Date
francis hurteau
bf6dacedd0 FlushAsyncLoading prior to disallowing any new requests as requests done during the scope of the flush are going to get flushed as well.
Directly use the loader to issue sync load from LoadPackage

#rb Danny.Couture, Robert.Millar

[CL 29605987 by francis hurteau in ue5-main branch]
2023-11-09 14:52:55 -05:00
jeff fisher
94e117c63d UE-194878 xr.DisableOpenXROnAndroidWithoutOculus evaluated too late to modify via INI
-Move PreInitHMDDevice to a point quite a bit later in PreInitPreStartupScreen so that more unreal engine systems are setup when we call it, including ini reading, cvars, fplatform memory, etc.
#jira UE-194878
#rb christopher.fiala

[CL 29503791 by jeff fisher in ue5-main branch]
2023-11-06 18:08:48 -05:00
jeanfrancois dube
f0816dfdef [Backout] - CL29402006
[FYI] JeanFrancois.Dube
Original CL Desc
-----------------------------------------------------------------
World Partition Editor Module: remove early loading of the module that was required by some object construction order that it no more needed.

#rb vincent.beauchemin

[CL 29408688 by jeanfrancois dube in ue5-main branch]
2023-11-03 11:52:48 -04:00
jeanfrancois dube
e6577434bd World Partition Editor Module: remove early loading of the module that was required by some object construction order that it no more needed.
#rb vincent.beauchemin

[CL 29402019 by jeanfrancois dube in ue5-main branch]
2023-11-03 07:49:44 -04:00
danny couture
5e4ad81f3a [EditorPerf] - Add windows performance counters to Insight traces when -perfcounters is present on the command-line
#rnx
#rb Ionut.Matasaru

[CL 29346706 by danny couture in ue5-main branch]
2023-11-01 21:19:15 -04:00
tim smith
f68f89394f Fixed LauchEngineLoop to not include some include files if it isn't being built with CoreUObject
#rb Tim.Smith

[CL 29281492 by tim smith in ue5-main branch]
2023-10-31 13:25:05 -04:00
florian penzkofer
14690a94f8 Make sure that read-only cache for CVars is populated before accessing from worker threads
This fixes a race condition between the PSO preloading and ReadOnlyCVarCache initialization.

#rb Dmitriy.Dyomin

[CL 29193978 by florian penzkofer in ue5-main branch]
2023-10-27 15:47:09 -04:00
andrew scheidecker
b5aa8055ca Replace all #if WITH_VERSE_VM with #if WITH_VERSE_VM || defined(__INTELLISENSE__).
This allows Intellisense to provide useful information in VerseVM code despite WITH_VERSE_VM not being universally enabled.
#rb Tim.Smith, YiLiang.Siew

[CL 29185651 by andrew scheidecker in ue5-main branch]
2023-10-27 12:20:31 -04:00
josh adams
0ad33526bb - Avoid double calls to FEngineLoop::AppExit() (was happening in a Program that called it while exiting, but Mac also calls AppExit in it's standard Wrapper code)
#rb josh.adams

[CL 29155958 by josh adams in ue5-main branch]
2023-10-26 19:21:57 -04:00
matt peters
e53bae0868 MPCook: Add global function UE::GetMultiprocessId to handle the commandline parsing of MultiprocessId for CookWorkers.
#rnx
#rb Zousar.Shaker

[CL 28938402 by matt peters in ue5-main branch]
2023-10-19 18:18:01 -04:00
guillaume abadie
079ed4f3a4 Implements r.DumpGPU.CameraCut
#jira UE-192501, UE-179496

[CL 28620797 by guillaume abadie in ue5-main branch]
2023-10-10 11:13:43 -04:00
lorry li
b2c5f3e4db Load boot hotfix cvars after config system initialized, persistency dir checking has dependency to it on console.
[REVIEW] [at]michael.atchison [at]michael.kirzinger [at]joe.barnes
#rb [at]michael.atchison [at]michael.kirzinger

#tests Tested on console with boot hotfix applied.
#jira UE-196854

[CL 28415511 by lorry li in ue5-main branch]
2023-10-03 11:24:20 -04:00
zach bethel
c92cf39716 Refactored render command fence implementation to fence render command pipes.
- Reimplemented render command fence bundler flushing to keep the bundler active during a GC.
 - Added insights regions to track render command pipe recording and fence bundler activity when the render commands channel is active.
 - Cleaned up render command pipe recording so that it works properly with the fence bundler.

#rb chrisopher.waters
[FYI] Dominic.Couture

[CL 28206922 by zach bethel in ue5-main branch]
2023-09-25 17:29:10 -04:00
robert millar
1c1df0ca9c Additional insights CPU profiling scopes
[CL 28095545 by robert millar in ue5-main branch]
2023-09-21 14:22:33 -04:00
josh adams
aeb5cb1347 - Restoring a backout after fixing the issue that causes the backout
[Backout] - CL27745134
[FYI] stan.hormell
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL27731288 - CIS / Build Errors
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27923017 by josh adams in ue5-main branch]
2023-09-15 13:39:02 -04:00
robert millar
387bb0bd06 Add ability to presize name table in editor for large projects.
Example config in Editor.ini:

[Names]
PreallocateNames=10485760
PreallocateNameMemoryMB=900

#rb ben.zeigler

[CL 27883674 by robert millar in ue5-main branch]
2023-09-14 12:46:21 -04:00
zach bethel
b1ffe1f273 Flush rendering commands prior to clearing pending delete objects at shutdown.
#jira UE-194136
#rb christopher.waters

[CL 27767314 by zach bethel in ue5-main branch]
2023-09-11 15:41:46 -04:00
stan hormell
37bad2d07b [Backout] - CL27731288 - CIS / Build Errors
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27745141 by stan hormell in ue5-main branch]
2023-09-10 22:58:21 -04:00
josh adams
a8a9a0b759 - Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27731364 by josh adams in ue5-main branch]
2023-09-08 17:58:55 -04:00
eric knapik
5b39b5f207 #jira: UE-167025
Add additional test string for where the PreInit module might be located

[REVIEW] [at]Per.Larson [at]PJ.Kack [at]Graeme.Thornton

[CL 27558915 by eric knapik in ue5-main branch]
2023-09-01 12:45:51 -04:00
tim smith
d758896471 Move VerseVM to CoreUObject to facilitate the merging of UEGC and VerseGC
#rb saam.barati phil.pizlo

[CL 27374952 by tim smith in ue5-main branch]
2023-08-25 09:08:53 -04:00
zach bethel
b5b17e2ae7 Render Command Pipe Implementation and API
Render Command Pipes dedicated asynchronous task pipes for render commands. Users can easily define new pipes and enqueue commands into them. Pipes can be synchronized using a scope to run serial render commands on the render thread, but initially pipes cannot be synchronized individually with each other. Render command overhead is reduced by recording command lambdas into MPSC queues which are serviced by the task graph; both for pipes and for the render thread. This reduces the task overhead as commands are no longer 1-to-1 with tasks.

Pipe behavior is controlled with new CVars. `r.RenderCommandPipeMode` controls overall behavior:
 0 - Legacy render thread tasks,
 1 - Render thread MPSC queue,
 2 - Render thread and async pipe MPSC queues.

To define a Render Command Pipe, use DEFINE_RENDER_COMMAND_PIPE(MyPipe), or DECLARE_RENDER_COMMAND_PIPE(MyPipe, MODULE_API) to declare an extern reference.

Enqueue a command into the pipe like so:

ENQUEUE_RENDER_COMMAND(MyCommand)(UE::RenderCommandPipe::MyPipe, [] (FRHICommandList&) {}).

Omitting a pipe will fallback to the 'general' pipe which is the render thread.

Eventually pipes need to be synced back to the general pipe for scene renders and other GPU work. On the game thread timeline, use UE::RenderCommandPipe::FSyncScope to synchronize the pipes. This waits for pipes and disables recording of new pipe commands until the scope completes, at which point pipe recording is restarted. This creates a 'sync point', so render commands issued prior to a sync scope will be waited on at the start of the scope, and render commands issued after the scope ends will not be able to start until the render thread finishes processing prior commands.

#rb christopher.waters, luke.thatcher

[CL 27074956 by zach bethel in ue5-main branch]
2023-08-14 12:52:45 -04:00
rob krajcarski
5037dd9bd0 Fix for leaking render objects on app exit caused by EngineLoop not processing the last set of pending cleanup objects it acquired
#rb stu.mckenna

[CL 27072268 by rob krajcarski in ue5-main branch]
2023-08-14 11:46:59 -04:00
bob tellez
afd943db61 [Backout] - CL27042396 and 27048615
[FYI] zach.bethel
Original CL Desc
-----------------------------------------------------------------
Render Command Pipe Implementation and API

Render Command Pipes dedicated asynchronous task pipes for render commands. Users can easily define new pipes and enqueue commands into them. Pipes can be synchronized using a scope to run serial render commands on the render thread, but initially pipes cannot be synchronized individually with each other. Render command overhead is reduced by recording command lambdas into MPSC queues which are serviced by the task graph; both for pipes and for the render thread. This reduces the task overhead as commands are no longer 1-to-1 with tasks.

Pipe behavior is controlled with new CVars. `r.RenderCommandPipeMode` controls overall behavior:
 0 - Legacy render thread tasks,
 1 - Render thread MPSC queue,
 2 - Render thread and async pipe MPSC queues.

To define a Render Command Pipe, use DEFINE_RENDER_COMMAND_PIPE(MyPipe), or DECLARE_RENDER_COMMAND_PIPE(MyPipe, MODULE_API) to declare an extern reference.

Enqueue a command into the pipe like so:

ENQUEUE_RENDER_COMMAND(MyCommand)(UE::RenderCommandPipe::MyPipe, [] (FRHICommandList&) {}).

Omitting a pipe will fallback to the 'general' pipe which is the render thread.

Eventually pipes need to be synced back to the general pipe for scene renders and other GPU work. On the game thread timeline, use UE::RenderCommandPipe::FSyncScope to synchronize the pipes. This waits for pipes and disables recording of new pipe commands until the scope completes, at which point pipe recording is restarted. This creates a 'sync point', so render commands issued prior to a sync scope will be waited on at the start of the scope, and render commands issued after the scope ends will not be able to start until the render thread finishes processing prior commands.

#rb christopher.waters, luke.thatcher

[CL 27054009 by bob tellez in ue5-main branch]
2023-08-11 20:05:11 -04:00
zach bethel
2d143afc83 Render Command Pipe Implementation and API
Render Command Pipes dedicated asynchronous task pipes for render commands. Users can easily define new pipes and enqueue commands into them. Pipes can be synchronized using a scope to run serial render commands on the render thread, but initially pipes cannot be synchronized individually with each other. Render command overhead is reduced by recording command lambdas into MPSC queues which are serviced by the task graph; both for pipes and for the render thread. This reduces the task overhead as commands are no longer 1-to-1 with tasks.

Pipe behavior is controlled with new CVars. `r.RenderCommandPipeMode` controls overall behavior:
 0 - Legacy render thread tasks,
 1 - Render thread MPSC queue,
 2 - Render thread and async pipe MPSC queues.

To define a Render Command Pipe, use DEFINE_RENDER_COMMAND_PIPE(MyPipe), or DECLARE_RENDER_COMMAND_PIPE(MyPipe, MODULE_API) to declare an extern reference.

Enqueue a command into the pipe like so:

ENQUEUE_RENDER_COMMAND(MyCommand)(UE::RenderCommandPipe::MyPipe, [] (FRHICommandList&) {}).

Omitting a pipe will fallback to the 'general' pipe which is the render thread.

Eventually pipes need to be synced back to the general pipe for scene renders and other GPU work. On the game thread timeline, use UE::RenderCommandPipe::FSyncScope to synchronize the pipes. This waits for pipes and disables recording of new pipe commands until the scope completes, at which point pipe recording is restarted. This creates a 'sync point', so render commands issued prior to a sync scope will be waited on at the start of the scope, and render commands issued after the scope ends will not be able to start until the render thread finishes processing prior commands.

#rb christopher.waters, luke.thatcher

[CL 27042459 by zach bethel in ue5-main branch]
2023-08-11 15:51:26 -04:00