Commit Graph

954 Commits

Author SHA1 Message Date
patrick enfedaque
e798b6d930 LevelInstance:
- Rename APackedLevelInstance to APackedLevelActor
- Change Context menu structure (moved under Level)
- Make creation of LevelInstance and PackedLevelActor distinct entries
- Remove possibility to create non-BP PackedLevelActors

#rb richard.malo, jeanfrancois.dube
#preflight 61b0f1d45c61dba07bfa92f7

#ROBOMERGE-AUTHOR: patrick.enfedaque
#ROBOMERGE-SOURCE: CL 18418026 in //UE5/Release-5.0/... via CL 18418048
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18418057 by patrick enfedaque in ue5-release-engine-test branch]
2021-12-09 08:09:34 -05:00
kriss gossart
4c2cc665c8 Chaos Cloth - Add environmental collision support.
#rb Cedric.Caillaud
#jira nojira
#preflight 61b099e8e0430ca4388f1322

#ROBOMERGE-AUTHOR: kriss.gossart
#ROBOMERGE-SOURCE: CL 18404800 in //UE5/Release-5.0/... via CL 18404808
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18404817 by kriss gossart in ue5-release-engine-test branch]
2021-12-08 07:57:27 -05:00
andrew firth
95c7efa529 [Memreport] - add additional memreport types for this project, including adding GetFullName substring search
[at]Jason.Nadro
#lockdown jeff.farris
#preflight 614d43d07684f500018c0d6f

#ROBOMERGE-AUTHOR: andrew.firth
#ROBOMERGE-SOURCE: CL 17618719 via CL 17963477 via CL 18365261 via CL 18365305
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18365320 by andrew firth in ue5-release-engine-test branch]
2021-12-03 00:33:51 -05:00
paul chipchase
152887cb45 Add an experimental feature to content virtualization to allow some bulkdata objects to opt out of being virtualized.
#rb PJ.Kack
#rnx
#preflight 61a8d6d8a7179bfa550218af

- This is an experimental feature being used during testing and development, it is not intended to be used by a shippable project.
-- The code is all wrapped by a single define, UE_ENABLE_VIRTUALIZATION_TOGGLE, making it easy to disable and remove
-- The actual method called on bulkdata, ::SetVirtualizationOptOut is being submitted already deprecated to prevent it's accidental use.
- The use case is to allow projects to opt out of virtualizing static meshes as they are more fragile (i.e. hard crashes) when their payloads cannot be accessed.
- Even when ::SetVirtualizationOptOut is called the feature will not work unless  [Core.System.Experimental]AllowVirtualizationOptOut=True is set in the config file. This allows projects to opt into this.
- When a bulkdata is opting out, we simply send the payload to be stored at the end of the package like we used to, rather than send it to the package trailer. This way we do not need to store any additional state in the trailer to track if a payload is allowed to be virtualized or not. Since this feature is throw away I did not want to make any data format changes.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18352158 in //UE5/Release-5.0/... via CL 18352163
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18352180 by paul chipchase in ue5-release-engine-test branch]
2021-12-02 10:18:37 -05:00
rob gay
29f24d7b04 Fix for missing/incorrect AudioParameterInterface --> AudioParameterControllerInterface redirector
#rb trivial
#jira none
#rnx

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18349684 in //UE5/Release-5.0/... via CL 18349698
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18350090 by rob gay in ue5-release-engine-test branch]
2021-12-02 02:14:04 -05:00
rob gay
d2e6910760 MetaSounds Interfaces Checkpoint 2:
- Version up source archetypes to become two interfaces: channel interfaces (mono/stereo) & base source namespace
- Clean-up Interface panel to support namespacing better
- Fix bugs with assuming interfaces are always and the only base namespace members
- Allow namespacing for any arbitrary interface member
- Add lock icon to clarify what interface members cannot be modified individually (i.e. cannot add, remove, or rename them as they are interface members)
- Organize members alphabetically
#jira UE-135000
#rnx
#rb phil.popp
#preflight 61a7d1079c77d610079303ec

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18344347 in //UE5/Release-5.0/... via CL 18344412
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18344446 by rob gay in ue5-release-engine-test branch]
2021-12-01 15:59:03 -05:00
bertrand carre
c0dd805a56 Make WebSockets protocols configurable via ini
#jira UE-136231
[at]Alejandro.Aguilar [at]Michael.Kirzinger

#ROBOMERGE-AUTHOR: bertrand.carre
#ROBOMERGE-SOURCE: CL 18328876 in //UE5/Release-5.0/... via CL 18328892
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18328922 by bertrand carre in ue5-release-engine-test branch]
2021-11-30 14:30:00 -05:00
paul chipchase
ddff3a39f5 Reworked the virtualization system so that we only virtualize a package when it is submitted to source control, which makes the overall system much less dangerous.
#rb PJ.Kack
#rnx
#preflight 61a4b235405273b2c3daa7c7

### Virtualization
- The idea is to move from our current set up, where the virtualization happens when a package is saved and the payloads are saved to a local virtualization storage system with the final push to persistent storage occurring when the package is submitted to a system where we save payloads into the package file, but move them to persistent virtualization storage when the package file is submitted.
- The main advantage is that if someone submits a package file to source control without virtualizing it, we don't have to worry that others might not be able to load the package, the worst case scenario is that data sizes get bigger until the package is virtualized again.
- This is only the first pass, in the future we can do further optimizations, like not storing payloads locally if we know that they are already in the persistent storage system etc.
- In order to keep the virtualization process simple we want to be able to do it without needing to re-save the package, so to this end we will storage the payloads at the end of the package file as before, but instead of storing them inside of the package file format we will use a new container, the FPackageTrailer that is appended to the package file instead.
- In theory this will make future sidecar work easier as the trailer can just be moved to the sidecar file as as long as we know where to find the trailer things will just work (tm)
- For now VBD will continue to serialize it's offset/size to disk and use those values to read the payload directly when not virtualizing. Ideally we'd use the trailer but this will help reduce the risk.

### Current Issues
- The system does not work with the editor domain and has minor issues with text based assets
- The trailer system is disabled by default via the config system [Core]UsePackageTrailer=False and can then be enabled on select test projects until fully functional.

### PackageTrailer
- The trailer is split into two parts FPackageTrailerBuilder and FPackageTrailer
- FPackageTrailerBuilder is used when building the trailer during package save and FPackageTrailer is the structure we load and actually use.
- When saving the trailer we try to avoid using containers and such so that we can try to keep the specification for the file format very clear so that licensees can build their own tools for the virtualization process if they so desire.
- the header file contains a breakdown of the new format.

### VirtualizedBulkData
- FPayloadToc is now only used by the sidecar experimental feature. In a future update the sidecar will be changed to basically be the package trailer but stored in it's own file.
- FindPayloadsInPackageFile has been moved to PackageTrailer.h as it has a closer association with that code.
- Added a new method, ::LoadFromPackageTrailer, to load payloads from the package trailer without needing to know where the payload is on disk. Using this is opt in with the cvar "Serialization.LoadFromTrailer" and is only provided for debugging purposes. Although once this system has matured it will likely become the preferred way to access payloads.
- We no longer allow virtualization of bulkdata payloads on save, but I am not sure if we might want to allow this as an option in the future. So for now the code branch is disabled by the global constant bAllowVirtualizationOnSave.
- Added utility functions ::GetLinkerLoadFromOwner and ::GetTrailerFromOwner for easy access to the LinkerLoad/Trailer from the owning object.
- Added a utility ::UpdateArchiveData for seeking back to a known position in an archive, writing over it, then seeking back, which is fairly common in the package saving code paths. This might be worth moving to Archive.h for general use.
- ::LoadFromPackageFile has been refactored to prefer returning error values early over nested ifs.
- We no longer serialize the EFlags::IsVirtualized flag to disk. Instead it is applied when the package is loaded if we detect that a payload is virtualized and then removed before saved to disk. This allows the virtualization process to occur without resaving the package.
- We currently support the old serialize to disk path which is enabled when the FPackageTrailer system is disabled and the newer system when it is enabled.
- We do however continue to serialize the offset in the package file to disk when saved. Strictly speaking this is not needed as we can look this up from the package trailer when the package is loaded but continuing to serialize it out to disk helps keep the old and newer data format paths working together without adding too much special case code.
-- Once the FPackageTrailer feature is no longer optional we can consider changing this.

### SavePackage/SavePackage2
- Removed the functions that would create the FPayloadToc
- Added new functions to help create the trailer.
- Moved the end of package tag out of the if to it's own scope (still won't run if a package writer exists), the reasoning is to make it clearer where the package format ends and where we can start writing the payload trailer.
- We have checks to make sure that the trailer does not try to write to disk for both text based assets and if the editor domain is enabled. Support for these features will be added later, but since the package trailer system is disabled by default this shouldn't cause problems.

### LinkerLoad
- After we parse the FPackageFileSummary we now also parse the header of the package trailer. In the workspace domain this will incur additional seek costs (which may or not actually seek and invalidate the internal file cache depending on how large the package's exports are) as the trailer is found after the package
-- In the future, the package trailer header can be stored right after the FPackageFileSummary in the editor domain which will remove this overhead.
- By parsing the header of the trailer at this point, virtualized bulkdata objects in the package can use the look up info to determine if their payloads are virtualized or not, and if not then where they reside inside the package file.

### LinkerSave
- We no longer collect a list of all virtualized bulkdata in a package while saving as we no longer generate the FPayloadToc so BulkDataInPackage has been removed.
- We now gather data to be appended to the package trailer via TrailerBuilder.

### DumpPayloadToc
- This command now dumps info based on the package trailer if one can be found.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18307893 in //UE5/Release-5.0/... via CL 18307905
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18307913 by paul chipchase in ue5-release-engine-test branch]
2021-11-29 07:02:24 -05:00
matt johnson
3c238177fc Animation: add a dedicated setting for timecode custom attributes
This change takes the set of custom attributes that represent timecode and
subframe values and a take name and creates a dedicated setting that maps
each component to an attribute name. This allows the actual attribute name
used in a pipeline to still be configured, but adds the ability to refer directly to
each attribute value through a named struct member. Engine code can then use
that to access the appropriate attribute for each component.

An accessor function was added to UAnimationSettings to get the names of all
bone custom attributes that should be considered during import. This returns
all of the timecode attribute names identified by the new timecode settings as
well as any other attributes in the BoneCustomAttributesNames member, yielding
the same list of attributes as before. Existing call sites in the FBX importer that
used the BoneCustomAttributesNames member directly now use this new accessor
instead.

#rb benoit.deschenes
#preflight 619bff5d1806a2425928e871

#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 18276030 in //UE5/Release-5.0/... via CL 18276079
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18276095 by matt johnson in ue5-release-engine-test branch]
2021-11-23 17:02:37 -05:00
jeremy moore
8792e4b0d7 #jira UE-12502
Move ComputeFramework into its own plugin.
#preflight 619bddd0f934c1a291daae39

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18262262 in //UE5/Release-5.0/... via CL 18262318
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18262322 by jeremy moore in ue5-release-engine-test branch]
2021-11-22 15:33:48 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
devin doucette
53f316587b DDC: New filesystem cache store directory layout and file format
- Implemented only for the structured cache initially.
- Records are stored as compact binary packages with payloads stored within the record if small enough.
- Records are stored in Records/{Bucket}/{01}/{23}/{456789abcdef0123456789abcdef01234567} based on the hash in the cache key.
- Content that exceeds the size allowed for storage within the record is stored in Content/{01}/{23}/{456789abcdef0123456789abcdef01234567} based on the hash of the content.
- Both records and content are written to disk with their hash as a suffix, and are always checked on load.
- Maximum size of compressed data stored in the package can be configured by MaxRecordSizeKB and MaxValueSizeKB.
- Maintenance of the cache, to delete unused files, has been rewritten and can now scan ~175k files/second on modern hardware, though is limited to 10k files/second in the config to avoid adding too much overhead.

#rb Zousar.Shaker
#preflight 618b75c14a0c609a29204032
#preflight 618bfb5ec717ba4e929b7ac0

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18133085 in //UE5/Release-5.0/... via CL 18133356
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18133430 by devin doucette in ue5-release-engine-test branch]
2021-11-10 13:08:00 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
jack cai
fd31681539 Control Rig: setup a redirector to redirect old spring interp struct name to new ones. This should clarify that on release there is only one version of spring interp quat that we support.
#jira UE-134091
#rb halfdan.ingvarsson

#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 18065304 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0
#ROBOMERGE[bot1]: ENGINEMERGE

[CL 18065364 by jack cai in ue5-release-engine-test branch]
2021-11-04 18:18:14 -04:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
tim smith
1ebb5b6a93 Make Live Coding enabled by default.
1) New projects will have live coding enabled by default.
2) Re-instancing will be enabled by default
3) The initial start mode of the console will be hidden
4) Moved some console specific configurations to the ini file specific to LCC
5) Added the saving of the disable action limit to the ini file.

#rb none
#rnx
#preflight 6155c759260f7d000130c1be

#ROBOMERGE-OWNER: tim.smith
#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17678494 in //UE5/Release-5.0/... via CL 17678517
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17785289 by tim smith in ue5-release-engine-test branch]
2021-10-12 11:10:41 -04:00
aurel cordonnier
399362e1b4 Making unititialized struct prop messages errors by default
[FYI] Michael.Noland
#preflight 615b8b3b9a6de50001f365f7

#ROBOMERGE-AUTHOR: aurel.cordonnier
#ROBOMERGE-SOURCE: CL 17721822 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17721827 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-05 11:07:08 -04:00
alejandro aguilar
8cbbc39447 Logic to implement a limit of running threaded http requests, to avoid memory errors.
Added command to launch http requests defined by the user.

[at]Sam.Zamani, [at]Rob.Cannaday

#ROBOMERGE-OWNER: Alejandro.Aguilar
#ROBOMERGE-AUTHOR: alejandro.aguilar
#ROBOMERGE-COMMAND: _robomerge UE5-Main
#ROBOMERGE-SOURCE: CL 17675010 via CL 17675012 via CL 17677023 via CL 17677056 via CL 17677082 via CL 17677117 via CL 17677135 via CL 17677142
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v878-17703426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17705679 by alejandro aguilar in ue5-release-engine-test branch]
2021-10-04 06:24:48 -04:00
axel riffard
bdad7a8817 Specify new Max Shader Target for iOS 15
#rb jack.porter
#jira UE-124744
#preflight 6152deb87498d3000105b3d3

#ROBOMERGE-AUTHOR: axel.riffard
#ROBOMERGE-SOURCE: CL 17643752 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17643770 by axel riffard in ue5-release-engine-test branch]
2021-09-28 06:26:00 -04:00
aurel cordonnier
69fe095547 Merge from Release-Engine-Staging @ 17636544 to Release-Engine-Test
This represents UE4/Main @17638339 and Dev-PerfTest @17636504

[CL 17638842 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-27 19:54:25 -04:00
zousar shaker
3172310811 Toggle Zen AutoLaunch to be hidden by default.
#rb none

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 17598289 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17598347 by zousar shaker in ue5-release-engine-test branch]
2021-09-22 14:18:59 -04:00
zousar shaker
96d0784963 Allow ZenServer to be autolaunched by editor use cases that require its presence without insisting that it always be autolaunched.
#rb matt.peters
#preflight 614b4150ee16e20001b146e3

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 17597162 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17597204 by zousar shaker in ue5-release-engine-test branch]
2021-09-22 13:00:17 -04:00
jeanfrancois dube
ee6aebf8a2 Include active streaming sources in mem reports via wp.DumpStreamingSources console command.
Also tweaked streaming sources debug display to show blocking state and position in units.

#rb patrick.enfedaque
#preflight none

#ROBOMERGE-OWNER: jeanfrancois.dube
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 17419908 via CL 17422689
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17422711 by jeanfrancois dube in ue5-release-engine-test branch]
2021-09-03 11:57:19 -04:00
jeanfrancois dube
9f760050cf Include loaded and active data layers in mem reports via wp.DumpDataLayers console command.
#rb vincent.beauchemin
[FYI] andrew.firth
#preflight none

#ROBOMERGE-SOURCE: CL 17411750 via CL 17417112
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17417420 by jeanfrancois dube in ue5-release-engine-test branch]
2021-09-03 03:16:00 -04:00