Commit Graph

1049 Commits

Author SHA1 Message Date
aurel cordonnier
d17d20ca36 Merge from Release-Engine-Test @ 16758890 to UE5/Main
This represents UE4/Main @ 16738161 and Dev-PerfTest @ 16737719 (and Release-17.00 @ 16658211)

[CL 16763350 by aurel cordonnier in ue5-main branch]
2021-06-23 17:51:32 -04:00
guillaume abadie
c1819a0532 Implements r.AntiAliasingMethod
#rb none
#preflight 60d33c8cd9586b000132acac


#ROBOMERGE-SOURCE: CL 16758022
#ROBOMERGE-BOT: (v835-16672529)

[CL 16758023 by guillaume abadie in ue5-main branch]
2021-06-23 11:38:33 -04:00
Brandon Schaefer
e1a0723eca Fix clang compiler warning/error
#jira none
#rb none
#fyi Arciel.Rekman, Aurel.Cordonnier

[CL 16751799 by Brandon Schaefer in ue5-main branch]
2021-06-22 19:49:50 -04:00
Martin Ridgers
8f406d2b0e Move RHI_API into the UE_TRACE_CHANNEL_EXTERN() macro so it compiles if the macro is a stub.
[CL 16748765 by Martin Ridgers in ue5-main branch]
2021-06-22 16:37:17 -04:00
graham wihlidal
3702c00d25 Added InstancePayloadDataOffset and InstancePayloadDataStride to primitive scene info and primitive uniform shader parameters. The range allocator has also been implemented, but no GPU resource allocations are performed at this time.
#rb ola.olsson
[FYI] brian.karis


#ROBOMERGE-SOURCE: CL 16745716
#ROBOMERGE-BOT: (v835-16672529)

[CL 16745792 by graham wihlidal in ue5-main branch]
2021-06-22 13:49:59 -04:00
Ola Olsson
e9276fc6db Combing GPU-Scene instance culling and the id-list generation into one step, and the same for VSM
- Uses the InstanceCullingLoadBalancer to pre-distribute the work on the CPU to ensure even load.
 - Make instance culling use the instance data offset in MDC instead of translating primitive IDs.
 - Track single-instance draws separately from instanced to optimize handling (disable culling for single-instance primitives).

#rb Graham.wihlidal,andrew.lauritzen
#fyi dmitriy.dyomin
#preflight 60d0eafa2ab2180001269160

[CL 16733827 by Ola Olsson in ue5-main branch]
2021-06-21 16:51:39 -04:00
dmytro vovk
abd3a59d4d Removed ES 3.1 redundant feature level checks
#jira none
#rb Dmitriy.Dyomin

[CL 16727513 by dmytro vovk in ue5-main branch]
2021-06-21 09:19:59 -04:00
Ola Olsson
a7127725ee Add simple functionality to wrap 1D dispatches into 2D or 3D as needed with minimal overhead, and add utility shader function to retrieve the linear index.
- Makes the assumption (checked) that dimensions are at least 128 in both X and Y.

#rb Krzysztof.Narkowicz,Sebastien.Hillaire,Rune.Stubbe
#preflight 60d059002ab2180001122cef

[CL 16725805 by Ola Olsson in ue5-main branch]
2021-06-21 06:07:27 -04:00
Wei Liu
8208074bf6 1. Unify the lighting calculation for both mobile deferred and forward.
2. Add an option to use high quality BRDF on mobile as the same with PC.
3. Fallback to default light shading model if it is not supported on mobile.
4. Use EnvBrdf for mobile deferred lighting pass.

#jira none

#rb Dmitriy.Dyomin
#preflight 60cdef32be81e8000118d85c

[CL 16722349 by Wei Liu in ue5-main branch]
2021-06-19 10:01:53 -04:00
Ryan Vance
96bac36aa9 VKRT:
Add ray tracing shader types
Add initial ray tracing pipeline creation
Add acceleration structure descriptor type
Add basic ray tracing pipeline, occlusion support initially
Strip reflection from ray tracing shader spirv to deal with validation warnings
Don't use an array of vk descriptor types directly, this breaks with non-contiguous enum values which are common in extensions. Using a TMap from descriptor type to values instead.
Don't store vk types in the serialized shader header, translate to and from our own internal enum types to avoid similar non-contiguous value issues.
Re-enabled ray tracing compilation on windows desktop, explicitly disable runtime support using GRHISupportsRayTracing

Todo:
We need to deal with the lack of a 1:1 mapping between shader stages and frequencies for ray tracing hit groups. This is a one to many mapping which doesn't work with how most of the Vulkan RHI is authored. For now I'm assuming a hitgroup maps to a CHS.
Ray tracing shader descriptor allocation and pending state support. While we are serializing the descriptors for ray tracing shaders, we're not allocating or updating them yet which is the last large chunk needed to trace rays.
Fix spirv binary version mismatch validation error. This basically needs a local dxc modification which explicitly sets the spirv binary version to work around incorrect assuptions in dxc which is causing validation failures.
Add another local dxc modification to allow for arbirary struct size support using VK_EXT_scalar_block_layout for ray tracing shaders.

#rb jeannoe.morissette, lukas.hermanns

[CL 16711940 by Ryan Vance in ue5-main branch]
2021-06-17 17:15:16 -04:00
chris kulla
8946c56eb6 Material Instance changes should cause path tracer to restart accumulation
FMaterialRenderProxy doesn't appear to know which FScene it belongs to, so I had to go through the global render module and flag all scenes instead

#rb Ben.Ingram, Jason.Nadro

[CL 16704202 by chris kulla in ue5-main branch]
2021-06-17 10:01:01 -04:00
Jian Ru
84573e5672 XB1 transient allocator implementation that works with RDG. Courtesy to Kenzo for most of the implementation
#jira UE-117189
#rb ben.woodhouse, kenzo.terelst
#fyi ben.woodhouse, kenzo.terelst, zach.bethel

[CL 16682921 by Jian Ru in ue5-main branch]
2021-06-15 20:55:44 -04:00
Zousar Shaker
cf116088ae Integrating //UE5/Dev-Cooker @ 16678003 to //UE5/Main (Zousar.Shaker-YEG-0943-Quaternary)
Non-DevIteration_ShooterGame

[CL 16678907 by Zousar Shaker in ue5-main branch]
2021-06-15 16:36:57 -04:00
graham wihlidal
1b2976b0c9 Big cleanup/refactor of InstanceData* (renamed to InstanceSceneData* to match many other places already calling it that, and to disambiguate upcoming changes that add another instance data buffer to GPU Scene for arbitrary data payloads). This change also removes the virtuals on FPrimitiveSceneProxy for the instance list along with lots of copy paste code for all the derived types, and instead makes it a built-in feature of the base proxy (since nearly everything supports GPU Scene instancing now).
#rb ola.olsson
[FYI] brian.karis
#preflight 60c4d5c586ce760001377f2a


#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16660135
#ROBOMERGE-BOT: (v834-16658389)
#ROBOMERGE-CONFLICT from-shelf

[CL 16660883 by graham wihlidal in ue5-main branch]
2021-06-14 13:42:46 -04:00
dmytro vovk
95e2e5b221 Fixed compiling QAGame with LWC on
#jira UE-117930
#rb none
#fyi Andy.Davidson

[CL 16652707 by dmytro vovk in ue5-main branch]
2021-06-12 19:14:42 -04:00
Florin Pascu
765b14e43b 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

[CL 16644095 by Florin Pascu in ue5-main branch]
2021-06-11 13:46:35 -04:00
christopher waters
2679dd6157 Fixing an issue where PrepareExportedDebugInfo would actually force symbols to be written.
Adding {ProjectDir} and {ProjectSavedDir} to r.Shaders.SymbolPathOverride

#rb none
#preflight 60c29c63c612640001dd54a4


#ROBOMERGE-SOURCE: CL 16633386
#ROBOMERGE-BOT: (v831-16623017)

[CL 16633428 by christopher waters in ue5-main branch]
2021-06-10 19:52:24 -04:00
christopher waters
66680d06e3 Moving shader symbol exporting into a shared type.
Adding shader symbol export path override cvar. This cvar supports specifying the shader platform name via "{Platform}".
Adding Luke's change for having build machine specific shader configs.

#jira none
#rb rolando.caloca, david.harvey, lukas.hermanns
#preflight 60c243181264df0001a2c283

[CL 16631848 by christopher waters in ue5-main branch]
2021-06-10 18:11:47 -04:00
aurel cordonnier
e0ad4e25df Merge from Release-Engine-Test @ 16624776 to UE5/Main
This represents UE4/Main @ 16579691 and Dev-PerfTest @ 16579576

[CL 16625248 by aurel cordonnier in ue5-main branch]
2021-06-10 13:13:24 -04:00
krzysztof narkowicz
249140a8d6 Lumen - switched FPrimitiveGroup::WorldSpaceBoundingBox from FBox to FRenderBounds in order to not store a bValid flag per every group
#ROBOMERGE-SOURCE: CL 16625122
#ROBOMERGE-BOT: (v831-16623017)

[CL 16625132 by krzysztof narkowicz in ue5-main branch]
2021-06-10 13:04:00 -04:00
CarlMagnus Nordin
f21e594dd0 Added support for storing shaders in iostore.
Opt-In with core setting AllowShadersInIoStore
#review-16450322

[CL 16622428 by CarlMagnus Nordin in ue5-main branch]
2021-06-10 09:29:05 -04:00
graham wihlidal
4ec3fc585b Removed LocalToWorld and PrevLocalToWorld from FPrimitiveInstance (instead the concatenating of instance and primitive transforms happens during SoA construction right before GPU Scene upload). In the future we'll also have a custom GPU Scene upload kernel that can do things like the concatentation (among other derivations) right on the GPU, but not affect the hot path of stuff like GetInstanceData(). This change also renames (Prev)InstanceToLocal to (Prev)LocalToPrimitive to make a lot more sense than the previous naming.
#rb ola.olsson, krzysztof.narkowicz, rune.stubbe
[FYI] brian.karis, jason.nadro


#ROBOMERGE-SOURCE: CL 16614552
#ROBOMERGE-BOT: (v828-16531559)

[CL 16614986 by graham wihlidal in ue5-main branch]
2021-06-09 19:08:26 -04:00
christopher waters
17e4707703 Adding CreateUploadBuffer helpers.
Adding FRDGUploadData to create upload data directly from the GraphBuilder persistent memory.

#jira none
#rb Zach.Bethel
#preflight 60c0de551264df00015e307a

[CL 16613071 by christopher waters in ue5-main branch]
2021-06-09 17:17:23 -04:00
rolando caloca
d7a4ece397 UE5EA - Fix threading issue when updating devices with Turnkey
One should not access target platform manager outside the game thread - in this case the target platforms array was invalidated while rendering thread was requesting info which was also causing it to re-initialize
#rb Josh.Adams
#jira UE-116932
#lockdown Cristina.Riveron

#ROBOMERGE-SOURCE: CL 16596321 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v828-16531559)

[CL 16596377 by rolando caloca in ue5-main branch]
2021-06-08 19:07:53 -04:00
graham wihlidal
5b31085baa Instance data optimizations - removed NonUniformScale and InvNonUniformScale from CPU, since they are already derived on the GPU from LocalToWorld as of CL 15961534
#rb ola.olsson
[FYI] brian.karis, rune.stubbe, krzysztof.narkowicz


#ROBOMERGE-SOURCE: CL 16590891
#ROBOMERGE-BOT: (v828-16531559)

[CL 16590932 by graham wihlidal in ue5-main branch]
2021-06-08 15:21:52 -04:00