Commit Graph

170 Commits

Author SHA1 Message Date
will damon
43721306e0 Transform access::write attribute for write-only UAVs.
#rb rolando.caloca, mark.satterthwaite, lukas.hermanns
#jira UE-78988
[at]rolando.caloca, [at]matt.collins, [at]mark.satterthwaite, [at]lukas.hermanns
#lockdown nick.penwarden

#ROBOMERGE-SOURCE: CL 8182408 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v401-8057353)

[CL 8182418 by will damon in Main branch]
2019-08-21 14:06:34 -04:00
andrew grant
4a0e605510 Header changes required for ARKit 3 support.
#jira na
#rb ryan.vance
#lockdown nick.penwarden

#ROBOMERGE-SOURCE: CL 8063861 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v400-8057353)

[CL 8063864 by andrew grant in Main branch]
2019-08-15 14:34:11 -04:00
dmitriy dyomin
4b60e24d55 Fix a texture index allocation in Metal shaders when using hlslcc. Copy CL# 7710435
#rb none


#ROBOMERGE-SOURCE: CL 8021059 via CL 8027712
#ROBOMERGE-BOT: (v400-8057353)

[CL 8062420 by dmitriy dyomin in Main branch]
2019-08-15 13:46:40 -04:00
michael trepka
a31c173e76 Changed Metal tools detection code to additionally search for the iOS version of Metal compiler in the new location in Xcode 11. This a temporary solution to allow cooking for iOS with Xcode 11 until we convert GetMetalBinaryPath() to use xcrun to find the tools.
#rb none
#jira UE-77407

#ROBOMERGE-SOURCE: CL 7951880 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v392-7949540)

[CL 7951881 by michael trepka in Main branch]
2019-08-12 15:28:40 -04:00
cosmin sulea
8e10ba6152 UE-72092 - Action RPG failed to package for iOS with remote shader compiling
#jira UE-72092
#rb Jack.Porter

#ROBOMERGE-SOURCE: CL 7705590 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v384-7690951)

[CL 7705592 by cosmin sulea in Main branch]
2019-08-02 07:07:41 -04:00
richard wallis
66e59c9e86 Fix for crash when landscape layers is enabled in World Settings on Mac. Clone of Dev-Rendering CL 7093397 and CL 7196314.
#jira UE-74840
#rb none
[FYI] lukas.hermanns, matt.collins

#ROBOMERGE-SOURCE: CL 7528998 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v372-7473910)

[CL 7529179 by richard wallis in Main branch]
2019-07-23 06:51:59 -04:00
lukas hermanns
1a2c7ee84d Improved previous fix (from CL 7453922).
#rb Mark.Satterthwaite
#jira UE-77362

#ROBOMERGE-SOURCE: CL 7464346 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)

[CL 7464349 by lukas hermanns in Main branch]
2019-07-19 17:24:55 -04:00
lukas hermanns
7f903d2417 Disabled ue4::safe_array for non-mobile GPU targets in Metal cross compiler.
#rb none
[FYI] Mark.Satterthwaite
#jira UE-77362

#ROBOMERGE-SOURCE: CL 7453922 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)

[CL 7453935 by lukas hermanns in Main branch]
2019-07-19 10:51:41 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
Mark Satterthwaite
d75e013605 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

[CL 5923534 by Mark Satterthwaite in Main branch]
2019-04-16 17:01:14 -04:00
mark satterthwaite
be68614031 When compiling Metal shaders sometimes local temporary arrays are actually declared as variables - these should use safe_array too.
#rb none


#ROBOMERGE-SOURCE: CL 5808821 via CL 5808822 via CL 5808823 via CL 5812117

[CL 5812326 by mark satterthwaite in Main branch]
2019-04-09 16:21:31 -04:00
mark satterthwaite
40f221ade4 Invalidating the MetalShaderFormat version seems to cure the build machine of generating bogus shaders for the BoneMatrix SRV change.
#rb none


#ROBOMERGE-SOURCE: CL 5691957 via CL 5691961 via CL 5691963 via CL 5696013 via CL 5696965

[CL 5697149 by mark satterthwaite in Main branch]
2019-04-02 20:04:43 -04:00
mark satterthwaite
486f873d3d 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-SOURCE: CL 5659739 via CL 5659747 via CL 5659748 via CL 5659749 via CL 5659823

[CL 5659843 by mark satterthwaite in Main branch]
2019-03-29 22:32:23 -04:00
mark satterthwaite
63dca5adc0 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-SOURCE: CL 5502462 via CL 5503115

[CL 5535524 by mark satterthwaite in Main branch]
2019-03-25 13:53:06 -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
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
mark satterthwaite
b6d781c1ba 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-SOURCE: CL 5333983

[CL 5333997 by mark satterthwaite in Main branch]
2019-03-06 19:28:17 -05:00
mark satterthwaite
c2493dd022 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-SOURCE: CL 5289294 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5308163 by mark satterthwaite in Main branch]
2019-03-05 18:07:32 -05:00
mark satterthwaite
6a40ecf5c9 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-SOURCE: CL 5296814 via CL 5296819 via CL 5307410

[CL 5307511 by mark satterthwaite in Main branch]
2019-03-05 17:59:32 -05:00
mark satterthwaite
34cef20ad6 Framebuffer fetch is fragment-shader only for Metal - you can't use it in vertex shaders.
#rb none


#ROBOMERGE-SOURCE: CL 5296664 via CL 5296665 via CL 5307395

[CL 5307467 by mark satterthwaite in Main branch]
2019-03-05 17:58:59 -05:00
mark satterthwaite
7f42ccb517 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-SOURCE: CL 5295610 via CL 5295687 via CL 5306310

[CL 5306417 by mark satterthwaite in Main branch]
2019-03-05 17:23:37 -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
mark satterthwaite
11d042e5cf 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: mark.satterthwaite
#ROBOMERGE-AUTHOR: mark.satterthwaite
#ROBOMERGE-SOURCE: CL 5010458 via CL 5010459 via CL 5013401

[CL 5047337 by mark satterthwaite in Main branch]
2019-02-18 15:20:11 -05:00
mark satterthwaite
3e7977bf7d 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-SOURCE: CL 4956763 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 4968434 by mark satterthwaite in Main branch]
2019-02-12 09:39:43 -05:00