#jira UE-99765
#rb Lukas.Hermanns Arne.Schober
#fyi Josh.Adams
#rnx
tested:
* ShooterGame on Switch
* ShooterGame on Win64
[CL 14358183 by brian white in ue5-main branch]
1) Fix Visual Studio Profiling PerfAPI build script pathing for modern era of Visual Studio, add IDEDir to UBT for base path of PerfAPI lib/headers
2) Add initial support for Superluminal instrumentation API, if it's installed and -Superluminal is passed on the command line. Dial back color saturation a bit to go easier on the eyes (my eyes!!). This is WIP support, we are technically violating the API rules by feeding in changing strings to the same profile marker. So, with this change you can see the instrumentation markers in the timeline, but using all the event features in Superluminal causes weird artifacts like event strings changing as you use profiler features. Subsequent change will attempt to pry apart static and instance string data in the instrumentation, as this is a common trope across profilers (and non-PC platforms).
Updated FExternalProfiler API to forward along color information from the instrumentation. This is a minor breaking change as it's very unlikely there are direct callers of these APIs.
[CL 14321510 by geoff evans in ue5-main branch]
Trace cpu spec events were only gated on the given channel, but must also depend on the CpuChannel. Also clarified some details in documentation.
#jira UE-95678
#rb ionut.matasaru
#rnx
#ushell-cherrypick of 14266331 by Johan.Berg
#ushell-cherrypick of 14296866 by Johan.Berg
#ROBOMERGE-SOURCE: CL 14321446 in //UE5/Release-5.0-M2/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-M2 -> Main) (v738-14305781)
[CL 14321466 by johan berg in ue5-main branch]
Mostly a find/replace, though I have looked through the changes and attempted to update references to other things as necessary (eg. renaming IOS plist files for IOS). I'm not set up to test on any platforms other than windows, and was hoping to get your blessing to submit and give QA enough time as possible to uncover issues before the next milestone release.
Particular things that I know I'm not sure about:
- Android references /UE4Game/ paths everywhere (for paths on device, I think). I have no idea if I've got them all.
- I've renamed the iOS mobileprovisions, but I don't know if they need regenerating for the new app name.
- Likewise, not sure what needs to be updated for icon bundles on iOS.
Things that have not been changed:
- Windows still uses IDI_UE4ICON for its icon
- UE4CommandLine.txt
- There's still a UE4Game module which is used by content-only projects
#rb none
[CL 14301890 by Ben Marsh in ue5-main branch]
Nanite always generates LZ compressed data. All platforms share the same DDC key. Platforms that support hardware LZ decompress during platform-specific serialization.
Added LZ hardware decompression to platform properties and target platform.
#fyi Brian.Karis
#rb Graham.Wihlidal
[CL 14277717 by Rune Stubbe in ue5-main branch]
Remove CreateIfNotFound parameter to FConfigCacheIni::Find.
This was creating thousands of fstat calls peeking for the existence of Saved/Config/WindowsEditor/GameplayTagsEditorState.ini when opening the Project Settings dialog. This we make frequent calls (in a recursive manner) into the config system, but no file or config is created (where false is passed), and we keep statting it thousands of times
Callers that pass false for this fail to land on any config properties because they don't exist to begin with.
Callers that pass true for this still basically get what they want. Since we did not stub the file out upon Find(), there is no disk state difference between Find() and config system shutdown (where dirty config files are saved to disk). So saving is still manual, and there is no implication from
CreateIfNotFound communicated to the FConfigFile about whether it is meant to be saved or not. So by and large this semantic is meaningless except with the existence of the new config file of the config file map (which creates the optimization of skipping the subsequent stats).
SSettingsEditor::ReloadCategories before: 2290ms
SSettingsEditor::ReloadCategories after: 1669ms
Tested with a BuildCookRun of ShooterGame, and running with it in Editor for a few days.
#jira UE-95853
[CL 14258235 by geoff evans in ue5-main branch]
A threadpoolwrapper only schedules MaxConcurrency task on its inner thread pool. If all those tasks already scheduled are low-priority and still waiting to be processed, we will replace them by new ones with higher priorities coming in.
This is especially important when the threadpool is running at full load and low priority task could be stalled for a while before being processed.
#rb Andriy.Tylychko
[CL 14227430 by danny couture in ue5-main branch]
- Added 3D debug to show Runtime Hash in world
- UWorldPartitionRuntimeSpatialHash::GetStreamingCells now makes sure to always return always loaded cell
- Fixed bug where streaming grid could create cells without any actor
- Added offset in Runtime Spatial Hash hierarchical parent level grids to fix actor promotion actefacts
- Optimized actor promotion in hierarchical spatial hash
- Optimized UWorldPartitionRuntimeSpatialHash::GetStreamingCells
#rb jeanfrancois.dube
#jira none
[CL 14226996 by Richard Malo in ue5-main branch]