#fyi Martin.Sevigny
Original CL Desc
-----------------------------------------------------------------
Fix problem with Platform Extensions that are not calling StartupModule on added modules. Problem reported on UDN.
#jira none
#rb David.Harvey
#preflight 62f3e6d5bc175ec68c4717d7
[CL 21324333 by martin sevigny in ue5-main branch]
PluginManager - Disabled ini file find caching for all windows configs (not only editor).. this should probably be disabled for everything but since I can't test it easily I will leave that to someone else to change.
This saves ~3 seconds of loading in to some Epic games
#rb Josh Adams
#preflight skipped
#ROBOMERGE-AUTHOR: henrik.karlsson
#ROBOMERGE-SOURCE: CL 21277482 via CL 21292916 via CL 21293206 via CL 21293352
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21296402 by henrik karlsson in ue5-main branch]
Uses the assumption that there shouldn't be other .uplugin files nested under the top level .uplugin directory (no nested .uplugins).
#rb Tim.Smith
[FYI] Matt.Johnson
#preflight 62be4fbf8d5e67875900323e
#ROBOMERGE-OWNER: david.hibbitts
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20947488 via CL 20954138 via CL 20954694
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20956964 by mike beach in ue5-main branch]
* Contains some selected back outs from other cls that included config context dependent changes, though it's limited to only backing out broken parts as much as possible to minimize surface area.
[Backout] - CL20029182
[FYI] josh.adams
Original CL Desc
-----------------------------------------------------------------
- Adding FConfigContext which is used to repalce LoadExternalIniFile, LoadLocalIniFile, etc, as well as have localized data for all configs read on a thread (like the other platform configs loaded in the editor)
- The Load*IniFile functions will create a Context, but eventually those APIs will go away and the Context will be the only way to load ini files
- Simplified some of the ini loading code, like removing the HierarchyCache (it wasn't helping editor load times, and added much complexity, and was not thread-safe, and it shouldn't actually be helpful because all the calls to Load*IniFile should eventually be replaced with either GConfig or FCOnfigCacheIni::ForPlatform(), which won't need to re-read in files
- Ini reading time actually went down due to the simplification, including Cache removal
- Left in old code for now behing a #define (USE_CONTEXT) in case something goes wrong
- Added in VERIFY_CONTEXT mode which I used to run original and Context modes and compare (including preflighting builds) (I also added a Compare function that we may want to keep around to use for future debugging)
- Added a separate set of config layers for plugins which speeds up plugin parsing, but also will fix the issue with BaseEngine.ini vs DefaultEngine.ini in Engine vs Project plugins (this shows how Contexts can bring useful information down into the guts - however a later change will enable it)
- Once this is all seen to be working, I will clean up the non-Context functions, and some globals vs static members, etc
#rb paul.chipchase
#preflight 62716c1c5e6ce673f452005a
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 20029165 via CL 20029180 via CL 20905839 via CL 20905880
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20908094 by mic rooney in ue5-main branch]
#rb Paul.Chipchase
#rnx
#jira UE-133191
PR #8567: Improve diagnostics for plugin version mismatch. (Contributed by zorbathut)
#preflight 628248becf7e4667a98c2c49
- I tweeked the log message slightly from the PR
-Worth noting that we don't need to localize this message even if it does feel a bit user facing as ::PromptToLoadIncompatiblePlugin will display a localized error message relating to the problem to the end user.
[CL 20222531 by zorbathut in ue5-main branch]
- Moved the IniCacheSet into the FConfigContext, and out of FConfigCacheIni. We could possibly get rid of it now entirely with the reduced number of paths we look for (and the fact that plugin scanning will be multithreaded soon)
- Removed the TRUEENGINE workaround now that Plugins are using a context to load the file, this makes the workaround unnecessary since plugins don't fake the EngineConfigDir
#rb jon.nabozny
#preflight 627959cf242446ce6c637258
#jira UE-151373,UE-151376
[CL 20108089 by Josh Adams in ue5-main branch]
Config files are marked NoSave when plugin overrides them.
NoSave prevents issues with plugins leaving stale data around in config if turned off later.
#preflight 6238f556ec68595f3b7cac21
#rb dave.belanger
#ROBOMERGE-OWNER: rex.hill
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 19481929 via CL 19487176 via CL 19497560 via CL 19497573
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)
[CL 19498734 by rex hill in ue5-main branch]
#rb PJ.Kack
#rnx
#preflight 6239f155ca34ffd7bf6c5f8d
#robomerge FNNC
- By setting "UE_DISABLE_PLUGIN_DISCOVERY=1" in its target.cs a stand-alone program can avoid the cost of iterating over all plugins but still load and enable specific plugins that it knows it needs.
- In the future we could make this data driven by allowing a program to supply something similar to the .upluginmanifest file.
[CL 19479783 by paul chipchase in ue5-main branch]
This code path was intended primarily for Cooked / Packaged builds, where precaching all the INI files available in cooked files gave a significant reduction in startup times.
However, for editor builds, this actually causes significantly higher startup times (20s longer, or more).
#jira UE-143919
#preflight 62194531f014007cf8c76dee
#rb Josh.Adams
#lockdown julien.marchand
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 19157899 in //UE5/Release-5.0/... via CL 19159862
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19161503 by jon nabozny in ue5-main branch]