Commit Graph

3260 Commits

Author SHA1 Message Date
ben marsh
12addcdfb3 LiveCoding: Fix unnecessary newlines on log messages.
#jira


#ROBOMERGE-SOURCE: CL 5492012 via CL 5492936

[CL 5492937 by ben marsh in Main branch]
2019-03-21 11:49:46 -04:00
hongyi yu
6e46797857 Added support for per-platform mapping from chunkid to pakchunk index. Part 1
- This feature allows different chunk layout on different platforms.
- Most mapping work is done in AssetRegistryGenerator.
- Terminology of ChunkID and Pakchunk Index are now separated and they are no longer the same if chunk id to pakchunk index mapping is defined.  The ChunkIDs in FAssetData is not renamed to keep consistency, but it actually is pakchunk index.  FAssetData.ChunkIDs is used for ChunkInstall.
- Chunks with encryption key guid or unique assetregistry name are not allowed to be mapped.  There are code to filter out those chunks and log errors while initializing mapping
- CheckChunkAssetsAreNotInChild() and ResolveChunkDependencyGraph() is skipped when making build for XboxOne and PS4, since they are not needed.  If for some reason, we need chunk dependency on console builds, we need to implement per-platform dependency graph, since now we support different chunk layout on different platforms.
- Disabled a few pak file overide rules for console builds, since they should only be applied to builds with Kairos chunk layout.

#test A preflight was kicked and tested on PS4 and XboxOne.  No new issue was found.
#rb Daniel.Lamb


#ROBOMERGE-SOURCE: CL 5470414 via CL 5474050

[CL 5474308 by hongyi yu in Main branch]
2019-03-20 13:11:58 -04:00
cosmin sulea
53a0dc23c6 UE-69183 - iOS Device Output Log doesn't recover previously disconnected device
#jira UE-69183
#rb Jack.Porter
#lockdown nick.penwarden

#ROBOMERGE-SOURCE: CL 5466613 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5466614 by cosmin sulea in Main branch]
2019-03-20 04:40:35 -04:00
kevin ortegren
176b8f1de8 Adding new material expression: Pre-skinned local bounds. This provides the bounds of the base pose, prior to any transforms.
#rb krzysztof.narkowicz
[FYI] daniel.wright


#ROBOMERGE-SOURCE: CL 5460678 via CL 5462281

[CL 5462342 by kevin ortegren in Main branch]
2019-03-19 19:49:42 -04:00
phillip kavan
ac3b9c287d Fix for a regression that caused nativized widget Blueprint class property delegates to no longer be invoked at runtime.
Also addresses a non-regression issue with nativized child widgets that utilize the WidgetTree instance from a parent class.

#jira UE-66681, UE-71564
#rb Jason.Stasik
[FYI] Nick.Darnell
#lockdown Cristina.Riveron

#ROBOMERGE-SOURCE: CL 5459757 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5459766 by phillip kavan in Main branch]
2019-03-19 17:02:47 -04:00
steve robb
185fddd5c3 Fix for warnings about engine classes being hot reloaded when they haven't even changed.
#jira UE-71581
#rb none
[FYI] jamie.dale
#lockdown cristina.riveron

#ROBOMERGE-SOURCE: CL 5459196 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5459199 by steve robb in Main branch]
2019-03-19 15:56:12 -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
ben marsh
583aa01bf7 LiveCoding: Add support for lazy loading modules. This lets us enable live coding for the entire engine without a large startup penalty. Project modules are still preloaded by default.
#rb none
#jira

#ROBOMERGE-SOURCE: CL 5437980 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5437990 by ben marsh in Main branch]
2019-03-18 18:07:05 -04:00
mark satterthwaite
354abb943a Missed some Metal shader defines from CL #5419941 that were then causing compile errors on the builders.
#jira UE-71698
#rb none

#ROBOMERGE-SOURCE: CL 5434778 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5434784 by mark satterthwaite in Main branch]
2019-03-18 15:57:35 -04:00
mark satterthwaite
c4b75c343f Make RWBuffer's use raw Metal T* buffers so that we don't run into problems where texture_buffer/texture2d can't be both read & write at the same time on iOS. This will be slower but it will work on more iOS/tvOS devices. This does not affect macOS.
#jira UE-71589
#rb none

#ROBOMERGE-SOURCE: CL 5419941 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5419946 by mark satterthwaite in Main branch]
2019-03-15 14:31:06 -04:00
mark satterthwaite
07f1594ba5 In order to keep up with the HLR the desktop renderers now require Metal 2.0 or later on Apple's platforms - Metal 1.2 just isn't sufficient.
#rb none
#jira UE-71589

#ROBOMERGE-SOURCE: CL 5415631 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5415651 by mark satterthwaite in Main branch]
2019-03-15 12:04:52 -04:00
ben marsh
4b0b806b71 Fix issues related to hot-reload and LiveCoding co-existing.
* Removed code to invalidate makefiles when adding new source files. UBT should be reliable enough to make this determination itself nowadays, and ignored -invalidatemakefilesonly argument was causing modules to be recompiled.
* Fixed incorrect config section name when determining whether to allow hot reload from IDE. Now prevents hot reload from IDE when live coding is enabled.
* Added error message when trying to add a new class with Live Coding enabled.
* Added error messages when trying to start Live Coding after a hot reload has taken place.
* Added error messages when trying to hot reload with Live Coding enabled.

#jira UE-71253
#rb none

#ROBOMERGE-SOURCE: CL 5403464 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5403485 by ben marsh in Main branch]
2019-03-14 17:52:18 -04:00
ben woodhouse
66133722b9 Add sparse texture platform feature
#rb anthony.bills


#ROBOMERGE-SOURCE: CL 5399995 via CL 5399996 via CL 5401280

[CL 5402266 by ben woodhouse in Main branch]
2019-03-14 17:20:57 -04:00
rolando caloca
8a3bbdff91 UE4.22 - Fix invalid RWBuffer translation on OpenGL
#rb none
#jira UE-71397
#rnx

#ROBOMERGE-SOURCE: CL 5399467 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5399510 by rolando caloca in Main branch]
2019-03-14 14:17:07 -04:00
rolando caloca
955a14de37 UE4 - Fix invalid IR on hlslcc potentially causing a crash
#rb none
[FYI] Jonas.Meyer
#rnx
#jira UE-71397

#ROBOMERGE-OWNER: rolando.caloca
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 5399410 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5399503 by rolando caloca in Main branch]
2019-03-14 14:16:41 -04:00
nick darnell
541b64246a Editor - Working with the new blutility UMG extensions, found a few improvements worth making. EditorUtilityWidgets now have ShowWorldContextPin, enabled, so that the editor widgets can make choices about what world they're interacting with, Editor or game world.
Automation - Adding more options for forcing and waiting for loading and streaming to finish and more utilities for waiting for that to happen entirely for tests.

Lauren.Ridge


#ROBOMERGE-SOURCE: CL 5382989 via CL 5383481

[CL 5383540 by nick darnell in Main branch]
2019-03-13 11:45:29 -04:00
jonas meyer
ea912b9911 Bump shader version for jira UE-71386.
Followup change to the vulkan nan fix.
hlslcc was not generating conditional moves for swizzles, causing the proposed fix to generate a lot of code. this is fixed with this change

#jira UE-71386
#rb rolando.caloca

Code Before:
{
		bvec4 v138 = bvec4(false,false,false,false);
		v138.xyzw = lessThan(floatBitsToUint(v137),uvec4(2139095040u,2139095040u,2139095040u,2139095040u));
		vec4 v139 = vec4(0.000000,0.000000,0.000000,0.000000);
		if (not(v138).x)
		{
			v139.x = 0.000000;
		}
		else
		{
			v139.x = v137.x;
		}
		if (not(v138).y)
		{
			v139.y = 0.000000;
		}
		else
		{
			v139.y = v137.y;
		}
		if (not(v138).z)
		{
			v139.z = 0.000000;
		}
		else
		{
			v139.z = v137.z;
		}
		if (not(v138).w)
		{
			v139.w = 0.000000;
		}
		else
		{
			v139.w = v137.w;
		}
		imageStore( RWLightScattering, ivec3(gl_GlobalInvocationID), v139.xyzw);
	}

Code After

	{
		bvec4 v138 = bvec4(false,false,false,false);
		v138.xyzw = lessThan(floatBitsToUint(v137),uvec4(2139095040u,2139095040u,2139095040u,2139095040u));
		vec4 v139 = vec4(0.000000,0.000000,0.000000,0.000000);
		v139.x = (not(v138).x)?(0.000000):(v137.x);
		v139.y = (not(v138).y)?(0.000000):(v137.y);
		v139.z = (not(v138).z)?(0.000000):(v137.z);
		v139.w = (not(v138).w)?(0.000000):(v137.w);
		imageStore( RWLightScattering, ivec3(gl_GlobalInvocationID), v139.xyzw);
	}

#ROBOMERGE-OWNER: jonas.meyer
#ROBOMERGE-AUTHOR: jonas.meyer
#ROBOMERGE-SOURCE: CL 5382705 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5383313 by jonas meyer in Main branch]
2019-03-13 11:41:33 -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
jonas meyer
4bf590b04d Fix nans on vulkan.
hlslcc was incorrectly converting conditionals to mix. When one of the operand is a nan, this conversion is incorrect, as the nan will propagate, and thus we get weird bugs where the nans stick around.
#jira UE-71386
#rb rolando.caloca emil.persson

#ROBOMERGE-SOURCE: CL 5380320 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5380325 by jonas meyer in Main branch]
2019-03-13 07:53:15 -04:00
nick darnell
f3cdc69725 Slate - Adding improvements to the widget reflector so that we can tell if a zero size widget is present, as it may have padding around it, so now a line will appear if it's zero sized, rather than nothing.
#ROBOMERGE-SOURCE: CL 5377109 via CL 5377110 via CL 5377221

[CL 5378967 by nick darnell in Main branch]
2019-03-12 23:33:10 -04:00
ben marsh
81efe5710b LiveCoding: Fix determination of whether a module is part of a project plugin. Such modules report "false" for FModuleStatus.bIsGamePlugin.
#rb none
#jira UE-71399

#ROBOMERGE-SOURCE: CL 5365389 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5368509 by ben marsh in Main branch]
2019-03-12 10:10:07 -04:00
ben marsh
e55b45ea0d LiveCoding: Fix the "Show Console" button being disabled until the first compile.
#rb none
#jira UE-71379

#ROBOMERGE-SOURCE: CL 5362145 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5368489 by ben marsh in Main branch]
2019-03-12 10:09:35 -04:00
ben marsh
558a57ba3e LiveCoding: Allow editor thread to keep running while server is processing modules.
#rb none
#jira UE-71269

#ROBOMERGE-SOURCE: CL 5361379 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5368488 by ben marsh in Main branch]
2019-03-12 10:09:33 -04:00
ben marsh
6597e1e8ee LiveCoding: Explicitly batch all EnableModules() commands, to prevent user command thread preempting the editor thread before it's finished adding everything. Prevents "Live coding ready" messages being spammed in the console window.
#rb none
#jira UE-71270

#ROBOMERGE-SOURCE: CL 5361279 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5368485 by ben marsh in Main branch]
2019-03-12 10:09:28 -04:00
ben marsh
d695b8a97d Fix "Compile" button in toolbar using legacy hot reload when live coding startup is set to manual.
#rb none
#jira UE-71359

#ROBOMERGE-SOURCE: CL 5361201 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5368484 by ben marsh in Main branch]
2019-03-12 10:09:26 -04:00