Commit Graph

11190 Commits

Author SHA1 Message Date
devin doucette
3933b8f407 DDC: Added TryLoadFromCompactBinary for FCacheKey
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 20705430 via CL 20705467 via CL 20705498
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20707645 by devin doucette in ue5-main branch]
2022-06-17 14:45:17 -04:00
Johan Berg
a789380695 Fix CIS error
#jira UE-156988
#rb none
#robomerge EngineMerge
#preflight 62ac932a8a44e7a30697a4e4

[CL 20703421 by Johan Berg in ue5-main branch]
2022-06-17 10:51:09 -04:00
Johan Berg
beb3a49772 Adds metadata schemas
This change adds schema support for metadata. Registering a metadata type now requires the user to build a out a schema for the data. This also allows consumers to deal with the data without knowing the underlying metadata fields.

#rb ionut.matasaru
#robomerge EngineMerge
#preflight 62ac72255d5264997e15014e

[CL 20701776 by Johan Berg in ue5-main branch]
2022-06-17 08:32:39 -04:00
Andriy Tylychko
0068093b96 TasksInsights: visualisation for parent tasks
#preflight 62ac526cc6467711b678e5c4

[CL 20701009 by Andriy Tylychko in ue5-main branch]
2022-06-17 06:24:50 -04:00
Andriy Tylychko
b43d1924b9 TasksInsights: removed NestedAdded trace as SubsequentAdded is enough to establish both prerequisites and nested tasks relation. This also adds a new task category - a parent task - a task that depends on a nested task.
Parent tasks visualisation comes in the following CL
#rb catalin.dragoiu
#preflight 62ac4ea2fc406f218cc6caab

[CL 20700745 by Andriy Tylychko in ue5-main branch]
2022-06-17 06:05:57 -04:00
carlmagnus nordin
bc0b9cf56d IoStore: Add support for staging and loading auto optional packages
#preflight 62a879e8d502a5543671efa4
#rb francis.hurteau

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 20699731 via CL 20699906 via CL 20699913 via CL 20699917
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20700279 by carlmagnus nordin in ue5-main branch]
2022-06-17 04:25:23 -04:00
paul chipchase
d5ab533c7f The virtualization system stats are now only printed to the log when the cook commandlet has finished, rather than every time an editor process exits.
#rb Per.Larsson
#rnx
#preflight 62ab3b4a634e82e5d145f5a3

- Dumping of stats to the log file is now something that can be invoked via the IVirtualizationSystem api, so anything can call it, if desired.
- Removed the OnExit callback from the virtualization manager, we no longer print the stats to the log file on exit, but instead print them on demand.
- Add a call at the end of the cooking commandlet to dump the virtualization stats so that they appear around the same part of the log file as the cooking stats.
- Changed the verbosity from 'log' to 'display' so that we can see the stats more easily in horde.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20699898 via CL 20699907 via CL 20699911
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20700183 by paul chipchase in ue5-main branch]
2022-06-17 04:02:32 -04:00
paul chipchase
0f1a2be6ba Update FPackageTrailerBuilder to take and store an FString as context for error messages rather than a FName that is assumed to be the package name.
#rb Per.Larsson
#rnx
#preflight 62ab39985c69124c4082aad6

- Ideally the VA tool would not need to deal with this like package mount points (the less project/plugin set up, the faster the tool can run) so we want to move back towards using file paths rather than FPackageNames to reference things where possible. Since virtualization does not need to do anything with the package data itself we can somewhat ignore a lot of Unreal conventions and treat the package files as just files that happen to have a package trailer on the end.
- The package builder was previously storing the name of it's package via an FName and converting it to a string when we needed to print a message. Now we store a generic FString of 'debug context' instead which  can be anything.
- Although it is unlikely that anyone is using the FName overloads externally we need to deprecate them rather than just delete them.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20699797 via CL 20699804 via CL 20699806
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20699936 by paul chipchase in ue5-main branch]
2022-06-17 03:18:27 -04:00
Josie Yang
6b15506e58 Replace direct access to SkeletalMesh object from USkinnedMeshComponent with GetSkeletalMesh function
#rb kriss.gossart
#preflight 62aafc9ada0af39a4783930a

[CL 20686007 by Josie Yang in ue5-main branch]
2022-06-16 09:14:04 -04:00
dave jones2
9b1a83861a [Backout] - CL20675159
#fyi dave.jones2
Original CL Desc
-----------------------------------------------------------------
Added missing tests for various core types. Also cleaned up const and reference usage in the function declarations.

#rb justin.hare
#preflight 62a93a76054bb5c04e1b0020
#jira none

[CL 20678517 by dave jones2 in ue5-main branch]
2022-06-15 18:56:38 -04:00
Marc Audy
de2c3cb8e0 [Backout] - CL20593017, 20594056, 20625634, 20645670, 20649179, 20649223, 20649380, 20658535
Add new custom version to specify a certain window of AnimSequences are not loadable
#fyi Jurre.deBaare
#robomerge EngineMerge
Original CL Desc
-----------------------------------------------------------------
**New**
- Engine
	- IAnimationDataModel interface
- AnimationData plugin
	- AnimSequencerDataModel, sequencer based implementation of IAnimationDataModel
	- AnimSequencerDataController, controller for above (implementation of IAnimationDataController)
- Added FCompressedRichCurve::PopulateCurve, allowing users to convert back to a FRichCurve for validation/debugging
- Added DefaultFrameRate to AnimationSettings, this replaces the hardcoded 30FPS in code
- Added ::GetKeyIndicesFromTime which takes FFrameRate
- Added AnimSequenceBase::OnAnimModelLoaded, this is required for correct postloading behaviour of data model (specifically AnimSequencerDataModel, as it depends on data from its outer ? anim sequence)
- Added IAnimationDataModel ::Evaluate which now takes responsibility for evaluating raw animation bone, curve and attribute data. And moved all trackbased evaluation code into AnimDataModel.cpp
- Added a.ForceEvalRawData allowing to force evaluation of source data
- Added a.SkipDDC to force compressing animation data locally

**Changed**
- Reparent UAnimDataModel to IAnimationDataModel interface, and rejig behaviour
- AnimSequenceBase now reference AnimDataModel as IAnimationDataModel
- Upgrade path for legacy to IAnimationDataModel and existing UAnimDataModel to IAnimationDataModel through IAnimationDataController::PopulateWithExisting
- IAnimationDataModel data is now frame(number/rate/time) based rather than seconds/keyindices. This enforces frameborder aligned data from now on.
- Moved RichCurve evaluation code from RichCurve.cpp to separate file and consolidated all instances of copy-pasta behaviour
- Updated/removed deprecated EngineTests around AnimSequences
- Changed many instances to use a FFrameTime together with a known FFrameRate versus seconds and sequencelength in float involving frame \/ time calculations (including instances of FAnimKeyHelper)
- Switched anim sequence evaluation to use double in Extraction context for time value and patched up places with static\_cast\<double\>
- FRichCurve::Eval
	- Make sure we always evaluate keys when T >= Key0.Time and T <= KeyN.Time to deal with crazy userweighted tangents
- Fixed WeightedKeyDataAdapter::GetKeyInterpMode/GetKeyTangentWeightMode retrieving invalid values, as it was indexing according to KeyIndex rather than KeyIndex\*2. This made it so that values were misinterpreted.
- Fixed WeightedEvalForTwoKeys for compressed data retrieving GetKeyInterpMode and GetKeyTangentWeightMode using the wrong index value. As they are not indexed using KeyDataHandle type.
- Fixed issue where compression could crash when containing zero-key scale additivebase track (tries to retrieve)
- Replaced instances of NULL with nullptr
- Moved required decompression information into FAnimSequenceDecompressionContext and reimplemented decompression within UE::Anim::Decompression namespace and new file
- Deprecated ::GetRawDataGuid and replaced with GetDataModel()->GenerateGuid()
- Fixed UAnimStreamable evaluation/compression (previously broken with MVC refactor)
- Updated Animation exporting pipeline to be frame-based rather than seconds
- Deprecated RetargetPose, replaced with FRetargetingScope (used within AnimModel::Evaluate)
- Fixed BaseAdditiveAnimation array become invalid/incorrect when removing zero-additve tracks during compression
- Updated EngineTest animation sequence related tests to new APIs (while maintaining deprecated path testing as well for now)
- AnimDataController / Animation Sequence tests now generate a USkeleton for the transient animation sequence (used to perform the test on)

**Removed**
- Unused file/class AnimData/AnimDataNotifyCollector.h

#rb Thomas.Sarkanen, Martin.Wilson, Alexis.Matte, Mike.Zyracki
#jira UE-131296
#preflight 62a308a8b0150a87f9d6891b

[CL 20677979 by Marc Audy in ue5-main branch]
2022-06-15 18:24:46 -04:00
christopher waters
0c8638b589 Removing the "equality comparison with extraneous parentheses" warning from DXC compiles.
#jira none
#rb laura.hermanns
#preflight 62aa2c56da0af39a474fbb74

[CL 20677503 by christopher waters in ue5-main branch]
2022-06-15 17:57:39 -04:00
dave jones2
ef9dbb4e52 Added missing tests for various core types. Also cleaned up const and reference usage in the function declarations.
#rb justin.hare
#preflight 62a93a76054bb5c04e1b0020
#jira none

[CL 20675159 by dave jones2 in ue5-main branch]
2022-06-15 15:10:02 -04:00
steve robb
0edc9ec830 Some missing TEXT macros added.
#rb trivial
#jira UE-132142
#preflight none

#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20671620 via CL 20671646 via CL 20671659
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20675152 by steve robb in ue5-main branch]
2022-06-15 15:09:53 -04:00
ionut matasaru
f9ff4333ae [Insights] Mem Insights / LLM Tags: Fixed full name of llm tags to include parent names also when there are multiple levels of inheritance.
#rb none
#preflight 62aa1edaa40a4dc3a03e8b3d
#robomerge EngineMerge

[CL 20674747 by ionut matasaru in ue5-main branch]
2022-06-15 14:44:06 -04:00
Jeremy Moore
2e03d242fa Bind virtual texture feedback buffer for DrawTileMesh
Also create a FViewFamilyInfo for DrawTileMesh so that we have a valid SceneTexturesConfig when setting up view uniforms.
Moved material baking renderdoc capture so that it captures warm up frames.
#rb jason.hoerner
#preflight 62aa0ce7273ce16835c64006

[CL 20673323 by Jeremy Moore in ue5-main branch]
2022-06-15 13:28:56 -04:00
ionut matasaru
6448bf8d5a [Insights] Removed duplicated FEditScopeLock/FReadScopeLock from IMetadataProvider and IAllocationsProvider and used the ones from ProviderLock.h instead.
#fyi Johan.Berg
#fyi Catalin.Dragoiu
#preflight 62aa11b84a335ad67cba8e5f
#robomerge EngineMerge

[CL 20673228 by ionut matasaru in ue5-main branch]
2022-06-15 13:24:35 -04:00
aditya ravichandran
efbd98a46f SFilterBar: Add the ability to save the current set of filters in a config file
#jira UE-151903
#preflight 62a8e87fd502a554368de197
#rb lauren.barnes

#ROBOMERGE-AUTHOR: aditya.ravichandran
#ROBOMERGE-SOURCE: CL 20669240 via CL 20670228 via CL 20670242 via CL 20670258
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20672011 by aditya ravichandran in ue5-main branch]
2022-06-15 12:39:31 -04:00
ionut matasaru
eb61079246 [Insights]
- Memory Insights / Mem Allocs: Added "Tag" column to the "4K Page Breakdown" view preset.
  - Memory Insights / Mem Allocs: Fixed bug where changing a preset results in hidding the "Hierarchy" column.
  - Memory Insights / Mem Allocs: Removed "Unique Values" grouping for StartEventIndex, EndEventIndex and Count columns.
  - Memory Insights / Mem Allocs: Removed "Path Breakdown" grouping for Top Function column.
  - Tree Views: Fixed the "Unique Values" grouping for CString columns crashing when encountering nullptr values (FTreeNodeGroupingByUniqueValueCString).
  - Tree Views: Fixed the "Path Breakdown" grouping adding incorrectly "/" group nodes (FTreeNodeGroupingByPathBreakdown).

#rb Catalin.Dragoiu
#preflight 62a9fa7ff878f9423ee2c127
#robomerge EngineMerge

[CL 20671288 by ionut matasaru in ue5-main branch]
2022-06-15 12:05:03 -04:00
Johan Berg
e94652b9c4 Fix comparison of nullptr values.
#robomerge EngineMerge
#rb ionut.matasaru
#preflight 62a9f3d8634e82e5d1eb2c86

[CL 20670568 by Johan Berg in ue5-main branch]
2022-06-15 11:25:09 -04:00
Johan Berg
fa13b92ab0 Changes to how definition provider works
#rb ionut.matasaru
#robomerge EngineMerge
#preflight 62a9ef0b634e82e5d1e8eddf

[CL 20670393 by Johan Berg in ue5-main branch]
2022-06-15 11:17:41 -04:00
paul chipchase
ccaea76256 Rename FPayloadStatus to EPayloadStatus to comply with the coding standards.
#rb Per.Larsson
#rnx
#preflight 62a9bff813004691f9830b8d

- I think when I was first adding it, the type was originally a struct but was changed to an enum before it was submitted, however I failed to update the name.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20668490 via CL 20668521 via CL 20668532
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20669764 by paul chipchase in ue5-main branch]
2022-06-15 10:37:52 -04:00
paul chipchase
c05158e633 Temp fix to prevent payloads that should be filtered out from virtualizing from being virtualized if they are already in persistent storage, which was causing unexpected packages to become virtualized.
#rb Per.Larsson
#rnx
#jira UE-156312
#preflight 62a99553943e7bb256fe174c

### Problem
- Firstly this fix is a hack and not intended for shipping 5.1, but the real fix is already planned work, which involves moving the filtering from the push process to being applied to each payload when the package is saved, just as the asset filtering is done at the moment.
-- Doing the proper fix will take a bit of time and testing so we need a quicker fix so that I can re-enable the virtualization process to unblock some workflows.
- All new code is wrapped in a single preprocessor define 'ENABLE_FILTERING_HACK' making the code easy to identify and remove.
- Submitting this hack will cause the priority of the real fix to be bumped in the backlog so that we can remove the hack asap.
- The problem code comes from a pass we do on the payloads to check if they are already in persistent storage or not. If the payload is then we just change it to be virtualized and don't attempt to push. In addition to fixing the filtering there is also a work item to investigate if we really want to keep this logic or if we want to remove it anyway. This might be looked into before I look into the filtering fix as an alternative way to remove the hack.

### Fix
- After we have queried the system to check which of the local payloads are already in persistent storage, BUT before we change them over to be virtualized we now run a new pass, checking which payloads should be filtered.
-- This is a bespoke code path expected only to be used here, so in this case it is not in the IVirtualizationSystem API but requires us to cast to FVirtualizationManager to gain access. This should stop anyone else from using the hack before it is removed.
- The filtering check mimics the filtering that would be run on a normal push operation.
- Once done we can check for any payload that would be filtered, and if so, set the status to not found. This prevents the payload from being changed to be virtualized and means it will be included in the normal push operation where it will be correctly filtered.
- None of this is the best way to do it, but it did seem like the easiest way to add the hack in isolation as no existing code was changed, so it should be simple to just 'delete' the hack when ready.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20667712 via CL 20667730 via CL 20667733
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20668639 by paul chipchase in ue5-main branch]
2022-06-15 08:56:57 -04:00
ionut matasaru
fd2933b1be [Insights] Fixed uninitialized FMemoryAlloc class members when created by a mem query.
#rb none
#robomerge EngineMerge
#preflight skip

[CL 20668023 by ionut matasaru in ue5-main branch]
2022-06-15 07:39:41 -04:00
benoit deschenes
a31e062166 DatasmithExporter - Fixing Datasmith GameThread initialization.
The Datasmith GameThread + DirectLink initialization was trigerring some ensure which where sometimes not handled properly and could cause a crash.
We were not properly tagging Unreal's main thread and the dcc's main thread, causing those thread to compete for the main thread role.

#jira UE-148108
#rb JeanLuc.Corenthin Johan.Duparc
#preflight 62a8e13adc04d52792d011ef
#lockdown Simon.Tourangeau

#ROBOMERGE-AUTHOR: benoit.deschenes
#ROBOMERGE-SOURCE: CL 20655640 in //UE5/Release-5.0/... via CL 20657743
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20661508 by benoit deschenes in ue5-main branch]
2022-06-14 20:22:20 -04:00