Commit Graph

1627 Commits

Author SHA1 Message Date
charles bloom
458a156370 change PackageCompressionLevel_DebugDevelopment to 4 instead of 3
#rb none

[CL 16387690 by charles bloom in ue5-main branch]
2021-05-19 12:14:25 -04:00
daniel wright
7c62f7c658 Lumen scalability settings for EA build to give users a starting point for their project's Lumen scalability settings
* 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]
2021-05-18 21:12:44 -04:00
alexander suvorov
df6c589ae9 Make MinBytesSaved and MinPercentSaved package compression parameters configurable.
#rb charles.bloom

[CL 16361541 by alexander suvorov in ue5-main branch]
2021-05-17 19:25:38 -04:00
Florin Pascu
af11d40364 Opt out Encoded TextureCube out of package if the platform doesn't need EncodedData
#jira UE-115370
#rb none
#fyi Dmitriy.Dyomin

#ushell-cherrypick of 16346910 by Florin.Pascu
#preflight 60a26ae507285b0001d3abdc

[CL 16349116 by Florin Pascu in ue5-main branch]
2021-05-17 10:05:33 -04:00
charles bloom
4b1b5cb7f8 BaseEngine.ini nop comment TextureFormatOodle options
#rb none

[CL 16345667 by charles bloom in ue5-main branch]
2021-05-16 22:03:49 -04:00
Jurre deBaare
a1f73dae73 - Move AnimBlueprintLibrary to its own Module (out of AnimModifiers)
- 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]
2021-05-12 07:30:40 -04:00
Richard Malo
fe484b0916 Removed external actor subpath from AssetTools's BlacklistContentSubPaths as it is no longer needed. ContentBrowserDataUtils::PathPassesAttributeFilter now handles the case of ExternalActors.
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]
2021-05-06 12:35:46 -04:00
paul chipchase
71b969d9c4 Cherrypicking Mirage code base (disabled) from Dev-Cooker
- 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]
2021-04-30 08:14:54 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
geoff evans
d938d5bde1 IterationProfile support for performance telemetry
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]
2021-04-28 16:22:58 -04:00
charles bloom
89ba69a127 remove -asynccompression from default pak options
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]
2021-04-28 15:56:59 -04:00
Alexis Matte
febf96d0e1 Refactor Interchange graph nodes to follow the new design. We now have translated nodes and factory nodes. The translated node are the source description and the factory nodes are the pipeline description telling the factory how to import the translated source nodes.
#rb richard.talbotwatkin
#jira UE-TOOL-3246

[CL 16144565 by Alexis Matte in ue5-main branch]
2021-04-28 11:34:07 -04:00
christopher waters
0eed080980 Restoring functionality that allowed platforms to override shader debug settings. Updating some inis to include the default values as examples of how to override them.
#rb graham.wihlidal
#preflight 60870c430bdfbc000170f5a4

[CL 16129544 by christopher waters in ue5-main branch]
2021-04-27 13:25:03 -04:00
Francis Hurteau
b2a9bb35d5 undo commented blacklist from cl 15714549 until other content browser filtering optimization are merged in UE5
#jira UE-114368
#fyi Patrick.Enfedaque
#rb trivial

[CL 16129080 by Francis Hurteau in ue5-main branch]
2021-04-27 12:30:09 -04:00
Marc Audy
38cdce1b97 Reenable ability to override native class from blueprint
Added a config variable to allow it to be turned off, but it will default to on.
#rb Phillip.Kavan

[CL 16095004 by Marc Audy in ue5-main branch]
2021-04-22 13:00:25 -04:00
Thomas Sarkanen
16eee0289d Anim node data/compiler refactor
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]
2021-04-22 04:57:09 -04:00
Wei Liu
773922028b Fix a crash in TAA pass on mobile OpenGL platform due to UAV as R11G11B10 is not supported.
#jira UE-113735

#rb Dmitriy.Dyomin,Guillaume.Abadie, Jack.Porter, Mi.Wang

[CL 16088151 by Wei Liu in ue5-main branch]
2021-04-22 01:41:57 -04:00
charles bloom
191775b588 TextureFormatOodle : expose compress effort level as a config param
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]
2021-04-21 16:43:56 -04:00
christopher waters
2f132565b1 Tessellation Removal: Removing various leftover Tessellation code.
#jira UE-94564
#rb mihnea.balta
#preflight 608043e687373000015502b2

[CL 16080287 by christopher waters in ue5-main branch]
2021-04-21 16:11:32 -04:00
charles bloom
b05ccfbb0b rename TextureFormatOodle config group to TextureFormatOodleSettings so existing Saved/ values are ignored
do not write GConfig values so they don't get stored to Saved/

#rb none
#fyi danny.couture

[CL 16075880 by charles bloom in ue5-main branch]
2021-04-21 12:42:08 -04:00
Thomas Sarkanen
5364bab827 Backing out CL 16071104
[CL 16071592 by Thomas Sarkanen in ue5-main branch]
2021-04-21 08:01:44 -04:00
Thomas Sarkanen
0ddbfb9894 Anim node data/compiler refactor
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]
2021-04-21 07:09:28 -04:00
Guillaume Abadie
06fbde6005 Nukes r.UsePreExposure
#rb uriel.doyon, jack.porter

[CL 16070715 by Guillaume Abadie in ue5-main branch]
2021-04-21 04:17:42 -04:00
charles bloom
d2eed4ccd5 rename PakFileCompressionFormats to PackageCompressionFormat so that existing DefaultGame.ini files with "PakFileCompressionFormats=" don't override the new BaseGame.ini setting of Oodle
#rb none
#fyi josh.adams

[CL 16060897 by charles bloom in ue5-main branch]
2021-04-20 10:14:26 -04:00
paul chipchase
8c0b314adf Allow imported jpegs to continue to be stored as jpeg data in .uassets until the data is actually edited and needs to be re-compressed. This can reduce megascan assets by up to 40%. The feature is disabled by default and can be enabled for a project by setting the editor config value [TextureImporter]RetainJpegFormat=True.
* 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]
2021-04-19 15:36:03 -04:00