Commit Graph

41 Commits

Author SHA1 Message Date
daniel lamb
bfae378499 Content build label update now errors if the build is not on prod, instead of trying to upload it again.
Added new content only build node  and now generates pak patch files for pak files not in original build.
Also merges manifest with original build
Also posts build to gamedev and prod
GenerateChunkDBs now takes in two additional parameters specifying how many rollback labels to process and which ones to optimize (preparation for future change where we process more chunkdbs).
Added support for generating buildinfo.ini for ps4.


#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 6278253 via CL 6287210 via CL 6287835
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6302329 by daniel lamb in Dev-Core branch]
2019-05-03 21:13:34 -04:00
ben woodhouse
f442eb9f19 Disable GUARANTEE_UASSET_AND_UEXP_IN_SAME_PAK for patch pak generation, since it's not necessary with delete records. Lifing this restriction makes pak seek optimization a lot more efficient.
Profiling in suggests it improves streaming performance, and the paks are smaller
#rb none
[FYI] hongyi.yu

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.woodhouse
#ROBOMERGE-SOURCE: CL 5810432 via CL 5810437 via CL 5810648 via CL 5813653 via CL 5813762
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5843937 by ben woodhouse in Dev-Core branch]
2019-04-12 13:04:38 -04:00
ben woodhouse
e741450957 Add -fallbackOrderForNonUassetFiles option for ordering uexp and ubulk files if order is not specified (e.g for the secondary/cooker open order). Previously this was non-optional, but this caused a regression in patch sizes on some platforms
#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.woodhouse
#ROBOMERGE-SOURCE: CL 5772400 via CL 5795133 via CL 5795152 via CL 5795156 via CL 5799600 via CL 5799704
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5818691 by ben woodhouse in Dev-Core branch]
2019-04-10 03:07:09 -04:00
ben woodhouse
b52d87ce16 Fix bug caught by static analysis in AuditPakFiles()
#jira UE-72242
[FYI] marc.audy

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.woodhouse
#ROBOMERGE-SOURCE: CL 5708883 via CL 5708886 via CL 5708887 via CL 5708891 via CL 5709641 via CL 5709794
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5718872 by ben woodhouse in Dev-Core branch]
2019-04-03 21:05:57 -04:00
daniel lamb
302f8e067e Added additional logging to unrealpak for compressor settings.
#test Unrealpak

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 5691627 via CL 5691628 via CL 5691630 via CL 5691631 via CL 5695674 via CL 5695740
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5701481 by daniel lamb in Dev-Core branch]
2019-04-02 21:12:14 -04:00
ben woodhouse
a069583ffb UnrealPak patch pak seek optimization v2
- Add support for incremental gap filling. Does gap filling in multiple passes, allows us to limit patch size growth to some fixed percentage
- Fixed cooker order UEXP files (previously these were unordered, which could actually result in patches increasing in size after gap filling)
- Added better method for measuring fragmentation - reports as a percentage, takes order index into account
- Refactored OrderMapping via new FPakOrderMap class which knows about primary/secondary mappings
- Added various schemes for defragmentation, including OnePass method which matches legacy behaviour, and various incremental schemes. Incremental_PrimaryFirst seems to give best results
#rb hongyi.yu

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.woodhouse
#ROBOMERGE-SOURCE: CL 5688530 via CL 5688536 via CL 5688538 via CL 5690113 via CL 5694330 via CL 5694501
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5699633 by ben woodhouse in Dev-Core branch]
2019-04-02 21:05:07 -04:00
robert manuszewski
624093cbf4 Made the pak file binary compatible with previous version to reduce patch sizes.
Reenabled oodle compression in 8.30 for android, ios and switch.
Cleaned up unrealpak commandline when run from UAT.
#rb Josh.Adams
[FYI] Ben.Marsh, Andrew.Grant

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 5619788 via CL 5619815 via CL 5619821 via CL 5619827 via CL 5623747 via CL 5623814
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5628527 by robert manuszewski in Dev-Core branch]
2019-03-28 03:54:25 -04:00
graeme thornton
9505003326 Created a new interface to RSA functionality that is independent of key size (unlike the old TBigInt version). Internally, RSA functions are implemented by OpenSSL on Windows/Mac/Linux an falling back to the TBigInt implementation for other platforms
- Future plan would be not to use OpenSSL directly, but to go via PlatformCrypto or something like it which could provide platform specific RSA functionality if it exists
- Also contains some compensation code for platforms that are still stuck on an older version of OpenSSL (everything except windows)
- On platforms that use OpenSSL < 1.1.1, register a locking callback so we can provide mutexes and stop it crashing horribly when the same RSA key is used concurrently on different threads

Changed default key size in the CryptoKeys plugin to 4096 bits.

#jira UE-71377
#rb ian.fox, robert.manuszewski, ryan.gerleve

#ROBOMERGE-OWNER: graeme.thornton
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5447433 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5447485 by graeme thornton in Main branch]
2019-03-19 07:53:22 -04:00
graeme thornton
a0e55b062e Improvements to RSA key generation and pak signing
- CryptoKeys plugin can now be told how many bits to use for keys. Defaults to 2048 as a happy medium between security and performance
- After creating the OpenSSL RSA key, use the exp/mod values directly rather than recomputing from primes
- Added RSA.h with some TBigInt based helpers for RSA keys
- Added FPakSignatureFile to wrap the contents of the pak .sig file, including determining that it is of a new format that supports versioning. Wraps the encryption and decryption of he master table hash
- Changed pak master signature hash from crc to SHA1
- Modified access to executable embedded public key data so that it is just an array of bytes. Will allow custom key sizes in the future.

#rb joe.barrett, stefan.boberg
#jira UE-71280, UE-71377

#ROBOMERGE-OWNER: graeme.thornton
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5381335 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5383057 by graeme thornton in Main branch]
2019-03-13 11:12:27 -04:00
graeme thornton
a668621c8a Minor unrealpak refactor
- Added a "-sign" parameter to enable signing for the given pak. The cached settings in the crypto.json file aren't used to enable signing any more.
 - Encapsulated all signing and encryption keys in a single keychain object which is passed around, rather than individual keys
 - Added some validation to UBT/UAT encryption config parsing so that if you enable any signing or encryption stuff but haven't generated a key, it'll warn and disable everything.

#jira


#ROBOMERGE-OWNER: graeme.thornton
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5237725 via CL 5237726 via CL 5240337

[CL 5240343 by graeme thornton in Main branch]
2019-02-28 12:55:02 -05:00
Josh Adams
d0bf843c9c - Merging Dev-Kairos/Engine/... to Main/Engine/...
- Brings over the necessary engine changes for embedding UE4 mobile as a dylib/so in native mobile app
- Various changes for facial animation, screen recording, others
- ARKit and ARCore plugins were removed, as deemed "not ready"
#rb many people


#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 5201138 via CL 5203024

[CL 5226277 by Josh Adams in Main branch]
2019-02-27 11:57:17 -05:00
gil gribb
57d43aefcc UE4 - Moved mapped ubulk files to .m.ubulk so that they can be aligned and not compressed without affecting other bulk data such as textures.
#rb none


#ROBOMERGE-SOURCE: CL 5010556 via CL 5010559 via CL 5013445

[CL 5037908 by gil gribb in Main branch]
2019-02-18 12:10:33 -05:00
josh adams
ccb6baf53b - Reenabled encryption on bulk files with memory mapping - and then disallow mapping at runtime
#rb gil.bribb
[FYI] gil.gribb


#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 4998359 via CL 4998360 via CL 4999252

[CL 5001374 by josh adams in Main branch]
2019-02-14 17:25:52 -05:00
josh adams
165f5d1e45 iOS - Enabled animation memory mapped IO on IOS. Saves 10-20 megs of memory
#rb josh.adams


#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: gil.gribb
#ROBOMERGE-SOURCE: CL 4993025 via CL 4993026 via CL 4995423

[CL 4999718 by josh adams in Main branch]
2019-02-14 17:11:45 -05:00
josh adams
b7f8902fb9 - Memory Mapped IO enabled on IOS for Audio (via ini and platform property)
- -nommio on the commandline will disble it for testing
#rb gil.gribb


#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 4963115 via CL 4963118 via CL 4963812

[CL 4969283 by josh adams in Main branch]
2019-02-12 10:27:29 -05:00
Ben Marsh
9655b03674 Trigger a link error whenever a module is missing a valid IMPLEMENT_MODULE macro on Windows.
The IMPLEMENT_MODULE macro now defines an empty function called IMPLEMENT_MODULE_{ModuleName}, to which we force a reference to via the linker command line. This behavior can be disabled on a per-module basis by setting bRequiresImplementModule = false from a .build.cs file.

#rb none

[CL 4827582 by Ben Marsh in Main branch]
2019-01-28 22:59:56 -05:00
Robert Manuszewski
559a25e622 Copying //UE4/Dev-Core @ 4771952 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

[CL 4772220 by Robert Manuszewski in Main branch]
2019-01-22 15:45:34 -05:00
graeme thornton
cab1ae24eb Removed signing key generation functionality from unrealpak. Keys should be generated with the CryptoKeys plugin in the editor now
#jira UE-68090


#ROBOMERGE-SOURCE: CL 4760704 via CL 4760706
#rb none

[CL 4760723 by graeme thornton in Main branch]
2019-01-21 09:21:37 -05:00
graeme thornton
c7b6190e9e Unrealpak: Throw a meaningful error when a crypto keys cache is specified on the command line that doesn't exist
#ROBOMERGE-SOURCE: CL 4750032 via CL 4750034 via CL 4750036

[CL 4750039 by graeme thornton in Main branch]
2019-01-18 06:09:47 -05:00
Robert Manuszewski
cfa01c09c7 Merging //UE4/Dev-Main to Dev-Core (//UE4/Dev-Core)
#rb none

[CL 4731457 by Robert Manuszewski in Dev-Core branch]
2019-01-16 04:23:12 -05:00
Marc Audy
ab108c215e Copying to Dev-Main @ CL# 4688301
#rb
#rnx

[CL 4688816 by Marc Audy in Main branch]
2019-01-08 11:38:48 -05:00
Robert Manuszewski
2752c82adc Merging //UE4/Dev-Main @ 4664414 to Dev-Core (//UE4/Dev-Core)
#rb none

[CL 4675693 by Robert Manuszewski in Dev-Core branch]
2019-01-02 00:55:51 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Robert Manuszewski
1685ed0b2e Merging //UE4/Dev-Main @ 4620382 to Dev-Core (//UE4/Dev-Core)
#rb none

[CL 4631078 by Robert Manuszewski in Dev-Core branch]
2018-12-04 23:30:42 -05:00
Ben Marsh
ea340d3fbf Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

[CL 4567513 by Ben Marsh in Main branch]
2018-11-14 19:05:13 -05:00