* Low & Medium = Lumen off
* High = Lumen 60fps settings
* Epic = Lumen 30fps settings
* Cinematic = same as Epic
Added r.Lumen.TraceMeshSDFs.Allow for scalability to drive, separate from r.Lumen.TraceMeshSDFs which is the project setting
Removed redundant setting in AncientGame ini preventing scalability cvars from working
In LumenReflectiveTest on 2080TI at 1440p:
Medium / High / Epic
.63ms / 4.34ms / 7.2ms
#ROBOMERGE-SOURCE: CL 16379710 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v804-16311228)
[CL 16379758 by daniel wright in ue5-main branch]
- Added FAnimPose, a script-friendly helper structure to generate/read/write evaluated anim poses
- Added API to populate AnimPose from AnimationSequenceBase, USkeleton (ref pose) and AnimBlueprint
#jira none
#rb Thomas.Sarkanen, Danny.Chapman
#preflight 609bb27f2032ee00016b253a
[CL 16297653 by Jurre deBaare in ue5-main branch]
This saves a considerable amount of time when UContentBrowserAssetDataSource::CreateAssetFilter builds a compiled filter.
#rb francis.hurteau
[CL 16222546 by Richard Malo in ue5-main branch]
- The mirage specific code is disabled behind the define UE_USE_VIRTUALBULKDATA, this means that some code paths in Texture/Mesh are much more complex than they need to be as we support both old and new paths. Once the system has been turned on and confirmed to cause no issues then this will be stripped out.
- SavePackageUtilities.cpp, SavePackage.cpp and SavePackage2.cpp are editgrates rather than integrations as those files have changes in DevCooker that we don't want to bring over immediately.
- Also includes a prototype system for storing bulkdata in a sidecar file in the workspace domain rather than in the .uasset/.umap file which although has been discontinued as part of mirage, will have applications for future work for non-virtualized projects and/or text based assets.
#rb Patrick.Finegan (all changes have been reviewed when submitted to Dev-Cooker)
#tests Cooking and running ShooterGame/Frosty and other sample programs using megascan assets
#rnx
#preflight 608be50d870cf400013ff99d
[CL 16167285 by paul chipchase in ue5-main branch]
This change adds:
* Extraction of performance measurements from utrace to csv care of a SummarizeTraceCommandlet
* Filtering of those measurements into another csv file that is legible by the Horde telemetry system
* Split of iteration profile into two passes with differing DDC settings: cold with empty cache and warm with seeded cache
* Synchronization of async processing of assets to wait for processing to complete (as a user will do usually)
* Culling of unused pathways in IterationProfile.xml for brevity's sake
#jira UETOOL-3338
#rb TBD
#preflight 60887cea6473940001ab66d2
[CL 16148303 by geoff evans in ue5-main branch]
there appears to be a race bug in UnrealPak
since Pak is being phased out for iostore, just turn it off for now
#rb none
#jira UE-114206
[CL 16147976 by charles bloom in ue5-main branch]
Per-node constant data is now held on a generated struct as part of sparse class data.
Per-node mutable data (i.e. pin links/property access mappings) is now held on a generated 'mutable data' struct that is compiled as part of the generated class.
The anim BP compiler is now extended more conventionally using UAnimBlueprintExtension, derived from UBlueprintExtension. This directly replaces the older 'compiler handler' pattern that was added in an emergency fashion for 4.26. Anim graph nodes now request their required extensions and these are held on the UAnimBlueprint in the UBlueprint::Extensions array. The Extensions array is potentially refreshed with any node addition or removal. The Extensions array is force-refreshed each time an anim BP is compiled for the first time to deal with newly added or removed requirements.
Const-corrected a bunch of UAnimInstance/FAnimInstanceProxy APIs that rely on (now truly) const data.
Added a split state/constant version of FInputScaleBiasClamp to allow some of its data to be split into constants.
Tweaked alignment/ordering of FPoseLinkBase to save a few bytes per pose link.
Deprecated FAnimNode_Base::OverrideAsset in favor of a more UAnimGraphNode_Base-based approach. Individual nodes can still have runtime overrides via specific accessors. The new approach will also give us the oppurtunity to override multiple assets per node if required in the future.
Moved property access into Engine module & removed event support from it - this was never used.
Reworked property access compilation API a little - construction/lifetime was a bit confusing previously.
Optimized path used to create UK2Node_StructMemberSet nodes in per-node custom events. When using mutable data, the structure used is large and very sparsely connected (i.e. only a few properties are written) so we only create pins that are actually going to be used, rather than creating all of them and conly connecting a few.
Patched the following nodes to use the new data approach:
- Asset players (sequences, blendspaces, aim offsets)
- Blend lists
- Ref poses
- Roots
#rb Jurre.deBaare, Martin.Wilson, Keith.Yerex
[CL 16090510 by Thomas Sarkanen in ue5-main branch]
make optional different level and rdo setting for in-editor / not-in-editor
pass through in-editor platform info in texture build setting
remove the bEnableInEditor from AlternateTexture , we want Oodle always on
#rb josh.adams, danny.couture
[CL 16081013 by charles bloom in ue5-main branch]
Per-node constant data is now held on a generated struct as part of sparse class data.
Per-node mutable data (i.e. pin links/property access mappings) is now held on a generated 'mutable data' struct that is compiled as part of the generated class.
The anim BP compiler is now extended more conventionally using UAnimBlueprintExtension, derived from UBlueprintExtension. This directly replaces the older 'compiler handler' pattern that was added in an emergency fashion for 4.26. Anim graph nodes now request their required extensions and these are held on the UAnimBlueprint in the UBlueprint::Extensions array. The Extensions array is potentially refreshed with any node addition or removal. The Extensions array is force-refreshed each time an anim BP is compiled for the first time to deal with newly added or removed requirements.
Const-corrected a bunch of UAnimInstance/FAnimInstanceProxy APIs that rely on (now truly) const data.
Added a split state/constant version of FInputScaleBiasClamp to allow some of its data to be split into constants.
Tweaked alignment/ordering of FPoseLinkBase to save a few bytes per pose link.
Deprecated FAnimNode_Base::OverrideAsset in favor of a more UAnimGraphNode_Base-based approach. Individual nodes can still have runtime overrides via specific accessors. The new approach will also give us the oppurtunity to override multiple assets per node if required in the future.
Moved property access into Engine module & removed event support from it - this was never used.
Includes a thread-safety fix for 4.26 that hasnt made it over to 5.0 yet.
Reworked property access compilation API a little - construction/lifetime was a bit confusing previously.
Optimized path used to create UK2Node_StructMemberSet nodes in per-node custom events. When using mutable data, the structure used is large and very sparsely connected (i.e. only a few properties are written) so we only create pins that are actually going to be used, rather than creating all of them and conly connecting a few.
Patched the following nodes to use the new data approach:
- Asset players (sequences, blendspaces, aim offsets)
- Blend lists
- Ref poses
- Roots
#rb Jurre.deBaare, Martin.Wilson, Keith.Yerex
[CL 16071104 by Thomas Sarkanen in ue5-main branch]
* Texture Work
- When importing a jpeg we will now check the config file to see if we should try and keep the data in compressed JPEG format and decompress it as it is requested rather than returning the data in raw uncompressed format.
- If the data is kept in jpeg compressed format we can initialize the texture via the new method InitWithCompressedSourceData instead. (note that we can probably merge ::InitWithCompressedSourceData and ::Init but that introduces further risk, this way we know that ONLY textures that were originally jpeg can be going through ::InitWithCompressedSourceData for now)
- We now record the compression format of the bulkdata in FTextureSource via 'CompressionFormat' an enum rather than a single bool 'bPNGCompressed' which only wqorked for png format.
- We should deprecate bPNGCompressed at some point and loading existing textures off disk will not have 'bPNGCompressed' and 'CompressionFormat' in sync, fixing this is out of scope for EA work.
- Note that when PNG compression is used we can decompress the data, use that, then recompress it without loss in quality, the same is not to be said for JPEG so if the data is modified by a call to ::LockMip/::Unlock mip the data will end up falling back to being stored as a compressed PNG or raw data. If this occurs we will log a warning.
- To reduce the number of places where this happens a new ::LockMipReadOnly method has been added, locking the texture source as read only will not replace the stored data when unlocked (as read only means no changes)
- Attempting to lock a texture for a different mode than it is currently locked for is considered a programming error and will raise an assert.
- Updated the 'SourceCompression' asset registry tag. This can be seen when hovering the mouse over the asset in the content browser and will show which compression is being used on the source data, png, jpeg or none.
* NormalMapIdentification/PaperAtlasTextureHelpers
- Switched to use LockMipReadOnly as we never modify the locked mip data.
- Every other remaining place in code that I could find that used LockMip() is actually calling that to edit the data.
* JPEG Decompression
- Worth noting that in early access the jpeg compression is slower than decompressing the same data if it was stored in compressed png format.
- On main the jpeg decompressor has been upgraded and the data ends up being smaller AND faster to decode, so wins all around.
- For early access we are willing to take the increase decoding cost to reduce the risk of the submit.
#rb Mark.Lintott, PJ.Kack, Danny.Couture
#[fyi] Jonathan.Bard
#lockdown Nick.Whiting
#jira UE-113796
#ushell-cherrypick of 16051246 by paul.chipchase
#preflight 607dcf0de7a5ac0001985d44
[CL 16054157 by paul chipchase in ue5-main branch]