Commit Graph

67 Commits

Author SHA1 Message Date
will damon
0a4e702859 Remove all tessellation support from Metal RHI
- Also, remove _NOTESS Metal profile

#rb christopher.waters, richard.wallis, lukas.hermanns, rolando.caloca
#jira UE-94564
#rnx

[CL 15831929 by will damon in ue5-main branch]
2021-03-25 16:56:00 -04:00
will damon
7980379479 Explicitly specify the Target when determining the metal version.
The target info reported when running `xcrun --sdk <platform> metal -v' is always the default for the running OS, and may vary slightly between point releases. Specifying the target reduces the chances of mismatched shader version when using FASTBuild to compile shaders.

NOTE: In order for the shader version to match, the FASTBuild workers must (currently) have the same version Xcode installed, but do not necessarily need to be running the same OS version.

#rb trivial
#[fyi] richard.wallis
#rnx

#robomerge[STARSHIP] Release-5.0-EarlyAccess

#ushell-cherrypick of 15734101 by will.damon

[CL 15739001 by will damon in ue5-main branch]
2021-03-18 12:33:32 -04:00
Marc Audy
9753392e2b Merge UE5/RES CL# 15462083 to UE5/Main
This represents UE4/Main @ 15414221

[CL 15463811 by Marc Audy in ue5-main branch]
2021-02-18 18:13:28 -04:00
will damon
ffb6adc774 Provide metal tools output to caller upon failure, dramatically simplifying debugging.
#rb lukas.hermanns
#jira none
#rnx
#lockdown marcus.wassmer


#ushell-cherrypick of 15389786 by will.damon

#ROBOMERGE-SOURCE: CL 15381462 in //UE4/Release-4.26/... via CL 15387405 via CL 15389663 via CL 15392606
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15392611 by will damon in ue5-main branch]
2021-02-11 17:43:48 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
Marc Audy
50a3d7d368 Merge Release-Engine-Staging to Main @ CL# 14467590
This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
Matt Kuhlenschmidt
603a4119c5 Fix HAL/PlatformFileManager.h non-portable casing CIS issues
#rb none

[CL 13214257 by Matt Kuhlenschmidt in ue5-main branch]
2020-05-06 17:58:18 -04:00
wei liu
f71dfd7ccc Fix a crash bug of Histogram compute shader on A8 devcies.
#jira UE-89933

#rb carl.lloyd

#ROBOMERGE-SOURCE: CL 11894021 in //UE4/Release-4.25/... via CL 11894022
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11894024 by wei liu in Main branch]
2020-03-03 22:34:31 -05:00
Josh Adams
aa9705149b Copying Private-LoadTimes-4.24 stream to Main. Biggest changes are in Materials/Shader memory freezing.
#rb none

[CL 11282608 by Josh Adams in Main branch]
2020-02-06 13:13:41 -05:00
Rolando Caloca
bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
Marcus Wassmer
6517c68ef5 Copying //UE4/Dev-RenderPlat-Staging@8684824 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 8684840 by Marcus Wassmer in Main branch]
2019-09-14 09:45:25 -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
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
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
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
79cd81f246 Remove tessellation function constant as we can use linear-textures to achieve the same result which means we no longer need separate variants of the shader. DrawIndexedPrimitiveUP can no longer draw a tessellated mesh - but that was never advisable anyway.
#rb none

[CL 4757784 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-18 20:19:31 -05:00
Mark Satterthwaite
ae9401146d Remove all support for Metal prior to Metal 1.2 on iOS/tvOS and Metal 2.0 on macOS. This permits some fairly radical simplifications and removal of a number of workarounds.
- All Buffer<>/RWBuffer<> objects are now bound as texture2d or texture_buffer, unless they are 3-component, in which case they are bound as raw T* buffer pointers.
- 3-component Buffer/RWBuffer objects should now work - Metal needed to use packed_* types internally as normal 3-component types in Metal are the same size as 4-component types which is different to HLSL. This is untested as we have no such example.
- Texture Gather/GatherCompare operations have been fixed and should now work.
- Remove all the TypedBufferFormat function-constant specialisation infrastructure and metadata as it is no longer necessary.
- Remove all the raw-conversion for 1, 2 and 4 component vector types as it is no longer required.
- Fixed input qualifiers (centroid, linear, etc.) for Fragment shader inputs - they should now work.
- Remove a bunch of Metal specific shader changes due to buffer type casting and swizzling that will now just work.
- Use the BGRA vertex format for FColor on Metal when available (everywhere but iOS/tvOS 10 using Metal 1.2).
- Simplify ShouldCompilePermutation & similar functions now that we have fewer versions to support.

#rb none
#jira N/A

[CL 4729845 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-15 18:01:31 -05:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00
Mark Satterthwaite
e317df0d92 Sort the Metal shader arguments so that all resources are declared by index, this fixes incorrect rendering on Nvidia with the GPUScene enabled though it is unclear why...
#rb none

[CL 4660681 by Mark Satterthwaite in Dev-Rendering branch]
2018-12-13 20:57:35 -05:00
Mark Satterthwaite
045d68365e Incomplete support for Metal 2.1 using Indirect Argument buffers to bind and access resources that were declared as part of a uniform buffer.
- Added a new Metal shader version (5) which compiles as Metal 2.1 with Indirect Argument Buffers for resource binding.
- Only enable the IAB feature for Metal shader version 5 and above and only on macOS for now.
- Added code to create argument encoders which are cached as creating them is pricey.
- Added code to create argument buffers from RHIUniformBuffers and their layouts.
- Ensured that vertex, index and uniform data is allocated such that the pointer won't be invalidated after being written into the IAB.
- Significant changes to the shader compiler and ue4_stdlib to emit IAB structures.

Todo:
- No support for atomic operations on elements within an IAB yet - need to modify ue4_stdlib and the MetalBackend.
- Incorrect compilation of StructuredBuffera and/or ByteAddressBuffer when within an IAB - need to emit a different type in the IAB structure and then only bind the buffer pointer at runtime.
- Indirect Argument Buffers are incompatible with the RHI thread because the creation of texture-views is deferred to the RHI thread but IAB creation is not yet.

#rb none

[CL 4554125 by Mark Satterthwaite in Dev-Rendering branch]
2018-11-08 20:01:54 -05:00
Marcus Wassmer
437b881302 Merging //UE4/Dev-Main@4547706 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none

[CL 4549073 by Marcus Wassmer in Dev-Rendering branch]
2018-11-07 15:32:18 -05:00