Commit Graph

123 Commits

Author SHA1 Message Date
mark satterthwaite
1732af2a44 Duplicate 5919089
Maybe workaround another Apple/AMD internal compiler error - the safe_array code was causing the AMD driver compiler to fail but simplifying the code seems to work. May have unintended consequences on iOS.

#rb none
#jira UE-72812

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5923534 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5938437 by mark satterthwaite in Dev-VR branch]
2019-04-17 13:11:47 -04:00
mark satterthwaite
9822395579 When compiling Metal shaders sometimes local temporary arrays are actually declared as variables - these should use safe_array too.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5808821 via CL 5808822 via CL 5808823 via CL 5812117 via CL 5812326
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5842790 by mark satterthwaite in Dev-VR branch]
2019-04-12 13:01:21 -04:00
mark satterthwaite
50f03a11b1 Invalidating the MetalShaderFormat version seems to cure the build machine of generating bogus shaders for the BoneMatrix SRV change.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5691957 via CL 5691961 via CL 5691963 via CL 5696013 via CL 5696965 via CL 5697149
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5704402 by mark satterthwaite in Dev-VR branch]
2019-04-03 01:00:36 -04:00
mark satterthwaite
5cb783efe5 MetalBackend changes to actually convert local constant arrays to the new safe_array template which sanitises input addresses - because iOS doesn't do that for you. This should reduce the number of bad-access GPU timeouts according to Apple.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5659739 via CL 5659747 via CL 5659748 via CL 5659749 via CL 5659823 via CL 5659843
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5666893 by mark satterthwaite in Dev-VR branch]
2019-04-01 09:23:38 -04:00
mark satterthwaite
725a6a5bee Fix Metal shader translation bugs:
- Texture*Array.Load needs to split the array index out of the vector coordinate for Metal.
- The GetDimensions function needs to support the array-length/depth output argument.
- RemovePackedVarReferences was inserting new variables at the top of the function, not the same scope as the source variable, which won't compile in cases where structs are used as temporaries and not function arguments.

#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5502462 via CL 5503115 via CL 5535524
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5538907 by mark satterthwaite in Dev-VR branch]
2019-03-25 16:59:57 -04:00
mark satterthwaite
6915ed24a2 Missed some Metal shader defines from CL #5419941 that were then causing compile errors on the builders.
#jira UE-71698
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5434778 in //UE4/Release-4.22/... via CL 5434784
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5437296 by mark satterthwaite in Dev-VR branch]
2019-03-18 17:26:04 -04:00
mark satterthwaite
f61ac67cce 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-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5419941 in //UE4/Release-4.22/... via CL 5419946
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5421826 by mark satterthwaite in Dev-VR branch]
2019-03-15 17:07:53 -04:00
rolando caloca
b9e71d3660 UE4 - Fix invalid IR on hlslcc potentially causing a crash
#rb none
[FYI] Jonas.Meyer
#rnx
#jira UE-71397

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 5399410 in //UE4/Release-4.22/... via CL 5399503
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5411489 by rolando caloca in Dev-VR branch]
2019-03-15 05:57:44 -04:00
mark satterthwaite
8d3ca60e43 Duplicate 5263216 to aid debugging Metal shader issues in games using native shader libraries without having to cook locally:
Package Metal shader source into a zip file rather than a tgz so it can be done on Windows builds too and do this asynchronously while generating the Metal libraries. This file is stored in the MetaData folder so should be moved out of the content and not get packaged. Must be unzipped at the command-line for some reason, but it works.

#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5333983 via CL 5333997
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5386495 by mark satterthwaite in Dev-VR branch]
2019-03-13 14:27:20 -04:00
mark satterthwaite
7fa84d3ca4 Apply the workaround from CL #3722943 to the patchCount variable as well in the hope that this will fix Nvidia PSO compiler failures - it fixes at least one of the examples we have logged.
#jira UE-69104
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5289294 in //UE4/Release-4.22/... via CL 5308163
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5327692 by mark satterthwaite in Dev-VR branch]
2019-03-06 18:25:47 -05:00
mark satterthwaite
6d7fda2d05 Previous commit overlooked the subtlties that FixIntrinsics was dealing with in addition to FramebufferFetchES2 - so pass through the shader type and only handle FramebufferFetchES2 for fragment shaders instead.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5296814 via CL 5296819 via CL 5307410 via CL 5307511
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5325619 by mark satterthwaite in Dev-VR branch]
2019-03-06 18:16:54 -05:00
mark satterthwaite
c3a14e8010 Framebuffer fetch is fragment-shader only for Metal - you can't use it in vertex shaders.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5296664 via CL 5296665 via CL 5307395 via CL 5307467
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5325488 by mark satterthwaite in Dev-VR branch]
2019-03-06 18:16:25 -05:00
mark satterthwaite
751d485d04 Fix compiling shaders to Metal that use SceneDepth nodes but do not write any color targets - only depth. If a shader writes nothing at all then it will assume float4 input for the fragment fetch binding.
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5295610 via CL 5295687 via CL 5306310 via CL 5306417
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5323153 by mark satterthwaite in Dev-VR branch]
2019-03-06 18:06:27 -05:00
josh adams
019c12863e - 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: ryan.vance
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 5201138 via CL 5203024 via CL 5226277
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5244512 by josh adams in Dev-VR branch]
2019-02-28 17:06:02 -05:00
mark satterthwaite
e32aae88c5 Compile out all support for Metal tessellation shaders from the MetalRHI runtime & remove all vestigial references to geometry shaders using the new pre-processor flags. This resizes all the various arrays to eliminate unused entries which were previously SF_NumFrequencies in size.
[FYI] Marcus.Wassmer, rolando.caloca, peter.sauerbrei
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5010458 via CL 5010459 via CL 5013401 via CL 5047337
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5133885 by mark satterthwaite in Dev-VR branch]
2019-02-22 02:57:58 -05:00
mark satterthwaite
6bf15a6fae Use dynamic casting to access Metal tessellation shader index buffers - means restoring the code path for R16Uint and R32Uint but that should be fine. This avoids the AMD driver bug that causes incorrect reads at the extreme beginning/end of a texture_buffer or texture2d created from an index buffer. Need to get to the bottom of this with the driver team.
#jira UE-69266
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 4956763 in //UE4/Release-4.22/... via CL 4968434
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 5030946 by mark satterthwaite in Dev-VR branch]
2019-02-16 05:55:12 -05:00
mark satterthwaite
2056af7949 Dupe 4858714:
Remove obsolete alternative Metal shader frequency table that was causing PVS to spit out an invalid error.

#rb none
#jira UE-69379

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 4860561 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4860568 by mark satterthwaite in Dev-VR branch]
2019-01-31 15:55:42 -05:00
marcus wassmer
b259f65406 Copying //UE4/Dev-Rendering[at]4854522 to Dev-Main (//UE4/Dev-Main)
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: marcus.wassmer
#ROBOMERGE-SOURCE: CL 4854553 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4854570 by marcus wassmer in Dev-VR branch]
2019-01-30 21:24:04 -05:00
Joe Conley
c12a880a0c Unshelved from pending changelist '4791207':
Source=CL 4772220 in //UE4/Main/...
Acknowledger=joe.conley (Thu Jan 24 2019 00:26:59 GMT+0000 (Coordinated Universal Time))
ShelfCl=4791207
Target=Dev-VR
Merge conflict:
/src/ROBOMERGE_DEVVR_Dev_VR/Engine/Plugins/Lumin/MagicLeap/Source/MagicLeapController/Private/MagicLeapController.cpp - merging //UE4/Main/Engine/Plugins/Lumin/MagicLeap/Source/MagicLeapController/Private/MagicLeapController.cpp#5

#rb Ryan.Vance

[CL 4792243 by Joe Conley in Dev-VR branch]
2019-01-23 19:56:41 -05:00
Ryan Vance
7c51ff94af Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
CL 1 of 8
#rb integration

[CL 4748712 by Ryan Vance in Dev-VR branch]
2019-01-17 18:54:05 -05:00
mark satterthwaite
fdfa2321a2 Duplicate 4628076 //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main)
All macOS Metal shader formats must use Metal 2.0 or later now, I no longer support Metal 1.2 for desktop.

#rb none
#jira UE-67151
#lockdown nick.penwarden

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 4628516 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4628519 by mark satterthwaite in Dev-VR branch]
2018-12-04 13:21:06 -05:00
jason bestimt
9a64d93526 --------------------------------------
Copying //UE4/Dev-Rendering[at]4626416 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown nick.penwarden

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: marcus.wassmer
#ROBOMERGE-SOURCE: CL 4626501 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4627410 by jason bestimt in Dev-VR branch]
2018-12-04 09:59:43 -05:00
Joe Graf
bc44817f0e Merging "Tie Metal PCH compilation to the specific Xcode build, not just the metal compiler version."
#rb: merge

[CL 4617608 by Joe Graf in Dev-VR branch]
2018-11-30 15:10:57 -05:00
marc audy
6ff8f5ad91 Copying //UE4/Release-Staging-4.21 to Dev-Main (//UE4/Dev-Main) [at] 4547701
#rb
#rnx
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 4547706 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4547711 by marc audy in Dev-VR branch]
2018-11-07 10:45:42 -05:00
Jason Bestimt
64b41dff1c Adding analysis fix from Release-4.21
#RB:none

[CL 4532397 by Jason Bestimt in Dev-VR branch]
2018-11-01 14:18:18 -04:00