Separate re-usable HTTP types from the HttpCacheStore to allow for re-use in the future by other cache stores.
#rb devin.doucette
#rnx
#preflight 62841cbdf536779152dfc561
[CL 20260417 by Zousar Shaker in ue5-main branch]
- Deprecated some global functions now in ConfigUtilities
- Deleted a couple of old deprecated stuff from 3.24
#rb chris.waters
#preflight 628415e1ba3597a030b3b900
[CL 20259749 by Josh Adams in ue5-main branch]
- Counters/Stats: Added support for stats counters with "ShouldClearEveryFrame" flag to actually reset to 0 at beginning of each Game frame (during analysis).
- Counters/Stats: Added separate counters for "1/frame" variants of stats counters with "ShouldClearEveryFrame" flag. Normal counters shows all intermediate points (variation within a single frame), while the new ones (that have same name but with "(1/frame)" suffix) only shows a single value per each Game thread (i.e. last value in respective frame). These new counters are more useful when investigating variation between multiple frames.
- Counters/Stats: Added "Insights/FStatsAnalyzer" LLM tag to reduce Untagged mem allocations.
#jira UE-152689
#rb Catalin.Dragoiu
#preflight 628374123f6aa88b1a72af22
[CL 20258783 by ionut matasaru in ue5-main branch]
- CpuProfiler: Fixed "dispatch of timing events with metadata" when merged with regular events.
- CpuProfiler: Added "Insights/FCpuProfilerAnalyzer" LLM tag to reduce Untagged mem allocations.
- CpuProfiler: Added new debug code/macros around each timing event for easier debugging. This is preparation for further changes related to coroutines.
#rb Catalin.Dragoiu
#preflight 6284b981486700b561dc6ce9
[CL 20258725 by ionut matasaru in ue5-main branch]
#fyi Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Separate re-usable HTTP types from the HttpCacheStore to allow for re-use in the future by other cache stores.
#rb devin.doucette
#rnx
#preflight 62841cbdf536779152dfc561
[CL 20254560 by Zousar Shaker in ue5-main branch]
- Adding support for bindless resources/samplers. The loose resources have to be wrapped in a macro that generates an index and proxy resource when bindless is enabled. Reflection has to parse these differently from other resources since they're parsed as uint parameters. The runtime also has to bind these differently since they end up needing to find their real resource in the binding data and then update a constant buffer.
- To assist in conversions, the shader compiler will detect if a shader is compiled with both bindless and non-bindless resources/samplers and will emit errors if that is the case.
- Adding support for bindless Uniform Buffer resources/samplers. Because Uniform Buffers aren't per-shader, they'll always update their constants with the bindless indices of their resources.
- Adding more flags to FShaderCodePackedResourceCounts required changing all the array initializations to individual parameters since not all the new flags are used everywhere.
- No shaders have been configured to support bindless resources/samplers. Yet.
#jira UE-139616
#rb zach.bethel, arciel.rekman
#preflight 6282b8ec44349a6581a21a39
[CL 20250348 by christopher waters in ue5-main branch]
Allow color adjustment for cubemaps created from longlat sources.
#rb charles.bloom
#preflight 627e972d6d7654cc68b225bd
[CL 20241303 by alexander suvorov in ue5-main branch]
#rb Per.Larsson
#rnx
#jira UE-151377
#preflight 628364050039ea57a52d6989
### Virtualization
- [Core.ContentVirtualization] in the engine ini file now supports an array called 'DisabledAsset' which can be used to name asset types that should not virtualize their payloads.
-- By default (in BaseEngine.ini) we have disabled the StaticMesh asset as we know it will crash if a payload is missing and the SoundWave asset as it still is pending testing.
- This new way to disable virtualization is data driven. The older hard coded method has not been removed but will likely be reworked in a future submit.
- Now when an editor bulkdata is adding it's payload to the package trailer builder during package save it will poll the virtualization system with a call to the new method ::IsDisabledForObject by passing in it's owner.
-- If the owner is valid and was present in the 'DisabledAsset' array then the method will return true and the EPayloadFlags::DisableVirtualization flag will be applied.
### Package Trailer
- The pre-existing functionality of enum EPayloadFilter has been moved to a new enum EPayloadStorageType as will only filter payloads based on their storage type.
- EPayloadFilter has been modified to filter payloads based on functionality although at the moment the only thing it can filter for is to return payloads that can be virtualized, it is left for future expansion.
- EPayloadFlags has been reduced to a uint16 with the remaining 2bytes being turned into a new member EPayloadFilterReason.
- This new member allows us to record the exact reason why a payload is excluded from virtualization. If it is zero then the payload can virtualize, otherwise it will contain one or more reasons as to why it is being excluded. For this reason the enum is a bitfield.
- Added overloads of ::GetPayloads and ::GetNumPayloads that take EPayloadFilter rather than a EPayloadStorageType
- Added wrappers around all AccessMode types for FLookupTableEntry.
- FPackageTrailerBuilder has been extended to take a EPayloadFilterReason so that the caller can already provide a reason why the payload cannot be virtualized.
-- As a future peace of work this will probably be changed and we will ask the caller to pass in the owner UObject pointer instead and then we will process the filtering when building the package trailer to a) keep all of the filtering code in one place b) keep the filtering consistent
### PackageSubmissionChecks
- The virtualization process in will now request the payloads that can be virtualized from the package trailer, which respects the new payload flag, rather than requesting all locally stored payloads.
### UObjects
- There is no need for the SoundWave or MeshDescription classes to opt out of virtualization on construction. This will be done when the package is saved and is now data driven rather than being hardcoded.
### DumpPackagePayloadInfo
- The command has been updated to also display the filter reasons applied to each payload
[CL 20240971 by paul chipchase in ue5-main branch]
- Table Tree view: Added "SameValue" aggregation for the table/tree columns of CString type. Aggregated value is equal with children value if all children have exactly same value, otherwise aggregated value is empty.
- Memory Insights: Enabled "SameValue" aggregation for the Mem Tag column of the Mem Allocs table/tree view.
#jira UE-152586
#rb Catalin.Dragoiu
#preflight 6282a1907d471e73a568ea4c
[CL 20239889 by ionut matasaru in ue5-main branch]
Updated the deprecated operator+ to not modify LHS
Didn't make it const since that causes ambiguity, e.g. FDateTime() + 0.0f
PR #8690: Fix for the FDateTime "+operator" (Contributed by yashasg)
#jira UE-136752
#rb pj.kack
#preflight 6283680e44349a6581e709eb
[CL 20239857 by Johan Torp in ue5-main branch]
* Instead, use StateId & override GetShaderMapUsage() to differentiate the export proxy from the source material.
#rb jason.nadro
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 20222932 via CL 20224332 via CL 20224346 via CL 20224360
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20227117 by robomerge in ue5-main branch]