Commit Graph

81 Commits

Author SHA1 Message Date
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
wei liu
a36d432240 Force mobile dynamic pointlight to use static branch.
#jira UE-131469

#rb Dmitriy.Dyomin

#p4v-preflight-copy 17870962

#ROBOMERGE-AUTHOR: wei.liu
#ROBOMERGE-SOURCE: CL 17883009 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17883020 by wei liu in ue5-release-engine-test branch]
2021-10-21 05:35:48 -04:00
ben ingram
0bb0a923a0 Merging Dev-LWCRendering into Main, this includes initial work to support rendering with LWC-scale position
Basic approach is to add HLSL types FLWCScalar, FLWCMatrix, FLWCVector, etc.  Inside shaders, absolute world space position values should be represented as FLWCVector3.  Matrices that transform *into* absolute world space become FLWCMatrix.  Matrices that transform *from* world space become FLWCInverseMatrix.  Generally LWC values work by extending the regular 'float' value with an additional tile coordinate.  Final tile size will be a trade-off between scale/accuracy; I'm using 256k for now, but may need to be adjusted.  Value represented by a FLWCVector thus becomes V.Tile * TileSize + V.Offset.  Most operations can be performed directly on LWC values.  There are HLSL functions like LWCAdd, LWCSub, LWCMultiply, LWCDivide (operator overloading would be really nice here).  The goal is to stay with LWC values for as long as needed, then convert to regular float values when possible.  One thing that comes up a lot is working in translated (rather than absolute) world space.  WorldSpace + View.PrevPreViewTranslation = TranslatedWorldspace.  Except 'View.PrevPreViewTranslation' is now a FLWCVector3, and WorldSpace quantities should be as well.  So that becomes LWCAdd(WorldSpace, View.PrevPreViewTranslation) = TranslatedWorldspace.  Assuming that we're talking about a position that's "reasonably close" to the camera, it should be safe to convert the translated WS value to float.  The 'tile' coordinate of the 2 LWC values should cancel out when added together in this case.  I've done some work throughout the shader code to do this.  Materials are fully supporting LWC-values as well.  Projective texturing and vertex animation materials that I've tested work correctly even when positioned "far away" from the origin.

Lots of work remains to fully convert all of our shader code.  There's a function LWCHackToFloat(), which is a simple wrapper for LWCToFloat().  The idea of HackToFloat is to mark places that need further attention, where I'm simply converting absolute WS positions to float, to get shaders to compile.  Shaders converted in this way should continue to work for all existing content (without LWC-scale values), but they will break if positions get too large.

General overview of changed files:
LargeWorldCoordinates.ush - This defines the FLWC types and operations
GPUScene.cpp, SceneData.ush - Primitives add an extra 'float3' tile coordinate.  Instance data is unchanged, so instances need to stay within single-precision range of the primitive origin.  Could potentially split instances behind the scenes (I think) if we don't want this limitation
HLSLMaterialDerivativeAutogen.cpp, HLSLMaterialTranslator.cpp, Preshader.cpp - Translated materials to use LWC values
SceneView.cpp, SceneRelativeViewMatrices.cpp, ShaderCompiler.cpp, InstancedStereo.ush - View uniform buffer includes LWC values where appropriate
#jira UE-117101
#rb arne.schober, Michael.Galetzka

#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 17787435 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)

[CL 17787478 by ben ingram in ue5-release-engine-test branch]
2021-10-12 13:31:00 -04:00
dmitriy dyomin
783ce8c4b5 Fixed SceneColor alpha on mobile to be consistent with desktop rendering
#rb florin.pascu, jack.porter

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 17658402 via CL 17658416 via CL 17658423 via CL 17658426 via CL 17658451
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17658455 by dmitriy dyomin in ue5-release-engine-test branch]
2021-09-29 02:54:29 -04:00
aurel cordonnier
69fe095547 Merge from Release-Engine-Staging @ 17636544 to Release-Engine-Test
This represents UE4/Main @17638339 and Dev-PerfTest @17636504

[CL 17638842 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-27 19:54:25 -04:00
andrew davidson
57beb335f2 Merging //UE5/Dev-LargeWorldCoordinates [at] 17581892 to //UE5/Main
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 17595295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17595306 by andrew davidson in ue5-release-engine-test branch]
2021-09-22 10:01:48 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
dmitriy dyomin
a28d53b8bc Fix some LWC related fallout in mobile rendering
#ROBOMERGE-SOURCE: CL 17285642 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17285669 by dmitriy dyomin in ue5-release-engine-test branch]
2021-08-24 08:44:53 -04:00
florin pascu
d4cbc4822e Fill StencilValue correctly in the DepthPass when enabled
Revert BasePass changes
#rb Dmitriy.Dyomin, Ben.Woodhouse
#jira UE-121532
#preflight 6115153c29ebef000137915b

#ROBOMERGE-SOURCE: CL 17151576 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17151608 by florin pascu in ue5-release-engine-test branch]
2021-08-12 09:49:16 -04:00
florin pascu
e953afc1fb Integrate SDF to mobile deferred renderer
#rb Dmitriy.Dyomin
#jira UE-108947
#preflight 6110f66e9c7bb10001464b81

#ROBOMERGE-SOURCE: CL 17099491 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17099499 by florin pascu in ue5-release-engine-test branch]
2021-08-09 06:21:58 -04:00
florin pascu
5c1e32c73c RG11B10 + SceneDepthAux 16/32F + Alpha Propagate
For Forward ES31
 Default SceneColor RG11B10 + R16F\32F Depth texture
 With PropagateAlpha on RGBA16F + R16F\32F
 PostProcess we sample SceneDepthAux for Depth
For Deferred ES31
 SceneDepthAux only for Metal
 PropagateAlpha not working yet
 PostProcess we sample SceneDepthTexture for Depth

cvar to change Depth texture from 16 to 32Fr.Mobile.SceneDepthAux
cvar for AlphaPropagate r.Mobile.PropagateAlpha
#jira UE-98033
#rb Dmitriy.Dyomin, Carl.Lloyd, Jack.Porter

#ROBOMERGE-SOURCE: CL 16644095 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16644108 by florin pascu in ue5-release-engine-test branch]
2021-06-11 13:47:20 -04:00
Marc Audy
e80ea6b959 Merge from Release-Engine-Staging @ 16444985
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16445122 by Marc Audy in ue5-release-engine-test branch]
2021-05-25 02:43:26 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
Florin Pascu
555d4d6875 Mobile Full DepthPrepass UE5
#rb Dmitriy.Dyomin
#jira none
#preflight 60586031c27ab80001a77914

[CL 15758057 by Florin Pascu in ue5-main branch]
2021-03-22 05:53:01 -04:00
Wei Liu
1711d3aece 1.Convert mobile base passes to single pass to avoid leveraging on the RDG pass merge which could let the resource transitions occurred inside a pass.
2.Make pixel projected reflection using last frame scenecolor and scenedepth to avoid to split mobile base pass and translucency pass.
3.Support GTAO and PPR for mobile deferred renderer.

#jira none

#rb Dmitriy.Dyomin, Jack.Porter, Mi.Wang

[CL 15651055 by Wei Liu in ue5-main branch]
2021-03-09 00:23:43 -04:00
dmitriy dyomin
4660a0c391 Fixed occasional crashes in TM-ShaderModels mobile preview related to reflection captures
TextureResource can be updated inside UTexture and cached FTexture pointer inside reflection capture will get stale
#rb jack.porter, florin.pasku

#ROBOMERGE-SOURCE: CL 15637557 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v778-15633161)

[CL 15637589 by dmitriy dyomin in ue5-main branch]
2021-03-08 07:16:20 -04:00
christopher waters
c45f1dfad5 Removing Tessellation:
- Removed Tessellation settings from Materials and Material Interfaces
- Removed Adjacency buffers from Static and Skeletal Meshes.

#jira UE-94564
#rb jeremy.moore, josie.yang, kevin.ortegren, yuriy.odonnell

#ROBOMERGE-OWNER: christopher.waters
#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 15501023 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
#ROBOMERGE-CONFLICT from-shelf

[CL 15502653 by christopher waters in ue5-main branch]
2021-02-23 14:03:21 -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
zach bethel
050410cb10 Refactor of mobile pass / view uniform buffers to use static bindings.
Pass / view uniform buffers are no longer bound through mesh draw commands. Instead, they are bound using static bindings on the RDG pass. This is necessary because pass uniform buffers contain RDG resources, which need to be declared to RDG.

#rb christopher.waters, Dmitriy.Dyomin

[CL 14899861 by zach bethel in ue5-main branch]
2020-12-10 14:45:57 -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
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
florin pascu
2d95b89bf7 Fix HQreflection mobile. First empty spot in the in the ReflectionCubeMapTextures(if there is any) will be taken by the Sky
#jira UE-85881
#rb Dmitriy.Dyomin, Jack.Porter

#ROBOMERGE-SOURCE: CL 12332308 in //UE4/Release-4.25/... via CL 12332309
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v670-12295787)

[CL 12332310 by florin pascu in Main branch]
2020-03-20 03:33:56 -04:00
wei liu
e5d127bdad Fix a crash bug if mobile movable directional light is disabled.
#jira UE-90038

#rb mi.wang

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

[CL 11894644 by wei liu in Main branch]
2020-03-04 03:42:33 -05:00
dmitriy dyomin
a2ceb32c77 FixedL "Render in main pass" primitive option is ignored for Mobile Renderer
#jira UE-77463
#rb none

#ROBOMERGE-SOURCE: CL 11574448 in //UE4/Release-4.25/... via CL 11574453
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11585202 by dmitriy dyomin in Main branch]
2020-02-22 17:02:01 -05:00