Commit Graph

615 Commits

Author SHA1 Message Date
graham wihlidal
6f93930e59 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 via CL 16590932
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16590946 by graham wihlidal in ue5-release-engine-test branch]
2021-06-08 15:22:21 -04:00
Wei Liu
de5a48902e 1. Fix a bug of missing velocity due to wrong LoadAction for parallel rendering.
2. Add a project setting option to avoid generating velocity and TAA shader unexpectly for mobile platform.

#jira none

#rb Dmitriy.Dyomin, Guillaume.Abadie

[CL 16584354 by Wei Liu in ue5-main branch]
2021-06-08 06:01:07 -04:00
graham wihlidal
c3dcd43b0a Implemented a new 32bit bounding box type called FRenderBounds, which complements FRenderTransform. This implementation does not require a boolean to keep track of initial invalid state, the bounds merging is vectorized (safe for unaligned float3 data), and it also doesn't store the sphere radius (keep memory down for heavy instanced content). Future optimizations and work around tighter encoding (reduced extent precision with a conservative roundup?) and also LWC can change the underlying implementation of these types without changing every callsite; should also switch to center+extent later.
#rb krzysztof.narkowicz, rune.stubbe
[FYI] brian.karis, ola.olsson, jason.nadro, zak.middleton


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

[CL 16577575 by graham wihlidal in ue5-main branch]
2021-06-07 16:55:33 -04:00
Jian Ru
13d2d6e79e Batch BuildRenderingCommands from major mesh passes inside the main render function
#jira UE-117281
#rb ola.olsson, zach.bethel

[CL 16572282 by Jian Ru in ue5-main branch]
2021-06-07 12:19:06 -04:00
graham wihlidal
c3bda99324 Fix LWC issues with FRenderTransform
#fyi rune.stubbe, zak.middleton

[CL 16561641 by graham wihlidal in ue5-main branch]
2021-06-04 15:39:10 -04:00
graham wihlidal
c850a02c69 Implemented a new WIP type called FRenderTransform that (for now) represents instance transforms as a float 4x3 matrix - in the future we expect a much tighter per-instance encoding (for example: 12bytes for position, 4bytes for rotation, 6bytes for scale), so this type can be optimized in that direction. Other than saving hundreds of MB in *heavy* instance scenes, faster updates/uploads, etc.. this type could be used to represent a transform that stays 32bit w/ a rebase offset. Passing around ambiguous FVector and FMatrix data is bound to get us into trouble, whereas a concrete type we can reason about for transforms in render-only code makes a good deal of sense.
This change is another basis for more instance data and GPUScene improvements coming down the pipe.

#rb jason.nadro, krzysztof.narkowicz, zach.bethel, zak.middleton, rune.stubbe, ben.woodhouse
[FYI] brian.karis, ola.olsson
#preflight 60b9608d0249c300016598de


#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16555619
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf

[CL 16555914 by graham wihlidal in ue5-main branch]
2021-06-03 21:10:11 -04:00
rune stubbe
49dab7faa0 Added UAVOverlap to UnifiedBuffer MemcpyResource to fix RHI validation errors.
#ROBOMERGE-SOURCE: CL 16547260
#ROBOMERGE-BOT: (v828-16531559)

[CL 16547263 by rune stubbe in ue5-main branch]
2021-06-03 10:26:59 -04:00
zach bethel
db4d19f641 Fix for culled RDG uniform buffer being created.
#rb andrew.lauritzen

[CL 16523561 by zach bethel in ue5-main branch]
2021-06-01 17:25:18 -04:00
Lukas Hermanns
b5aafce030 Dump preprocessed shader source in log on D3DCompile exception.
#rb Rolando.Caloca
#fyi Michal.Valient, Mihnea.Balta, Luke.Thatcher, Arciel.Rekman, Chris.Bunner
#jira UE-114967
#rnx

[CL 16518546 by Lukas Hermanns in ue5-main branch]
2021-06-01 14:24:07 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
zach bethel
c8cd80f396 Converted SetShaderUniformBufferImmediate to local uniform buffers to move creation off the render thread. Removed uses of RHICommandListImmediate. Moved local uniform buffer functions onto the compute command list.
[CL 16478490 by zach bethel in ue5-main branch]
2021-05-26 20:00:20 -04:00
graham wihlidal
10d53c644f Large primitive data refactor
--
Repacked prim data (removes 8x float32)
Implemented builder pattern for primitive uniform shader parameters
Various cleanup, optimizations, improvements - all forming a basis for subsequent refactors and optimizations
Derive calculations like lighting channel mask, per object gbuffer data, and determinant sign bit on the GPU now, instead of wasting buffer space on it.
Removed LPV bias (unused)

#rb jason.nadro, kevin.ortegren, zach.bethel, krzysztof.narkowicz
#[fyi] brian.karis

#ushell-cherrypick of 16474697 by graham.wihlidal
#ushell-cherrypick of 16476806 by graham.wihlidal
#ushell-cherrypick of 16477587 by graham.wihlidal

[CL 16477749 by graham wihlidal in ue5-main branch]
2021-05-26 19:03:46 -04:00
zach bethel
2ab8c34577 Replaced FRDGBufferUploader with internal RDG upload. Removes several transitions and passes and removes immediate command list passes from the graph.
#rb jian.ru

[CL 16459303 by zach bethel in ue5-main branch]
2021-05-25 20:46:17 -04:00
zach bethel
d4b14c0e3b Reworking default textures to be read-only to reduce RDG tracking overhead.
#rb charles.derousiers

[CL 16456671 by zach bethel in ue5-main branch]
2021-05-25 17:12:22 -04:00
zach bethel
b843dabf06 Minor RDG fixes and support for read-only system textures.
[CL 16456650 by zach bethel in ue5-main branch]
2021-05-25 17:11:34 -04:00
Ola Olsson
df492855e0 Removed GPUCULL_TODO define (fixed in on-state)
#preflight 60acc49b58f02e0001a0a996
#rb graham.wihlidal,Arciel.Rekman,Brandon.Schaefer,will.damon

[CL 16446355 by Ola Olsson in ue5-main branch]
2021-05-25 08:15:14 -04:00
krzysztof narkowicz
9740106930 Pass UAVFormat through RenderGraph in order to enable BC surface cache compression in Lumen on platforms which support BC-UINT UAV aliasing.
#rb Christopher.Waters, Zach.Bethel

#ROBOMERGE-SOURCE: CL 16444306 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v814-16434418)

[CL 16444308 by krzysztof narkowicz in ue5-main branch]
2021-05-24 23:48:48 -04:00
christopher waters
02fe0df0fd ETextureCreateFlags enum class.
#jira none
#rb luke.thatcher
#preflight 60abd0c758f02e00017a2196

[CL 16438084 by christopher waters in ue5-main branch]
2021-05-24 14:25:19 -04:00
andrew lauritzen
b268beb927 Disable VSMs by default on Vulkan until they can be debugged/fixed.
#jira UE-116358
#rb graham.wihlidal
[FYI] nick.whiting, michal.valient

#ROBOMERGE-OWNER: andrew.lauritzen
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 16432929 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v812-16428861)
#ROBOMERGE-CONFLICT from-shelf

[CL 16433196 by andrew lauritzen in ue5-main branch]
2021-05-23 21:34:07 -04:00
zach bethel
67229c547a Reworked scene renderer lifetime to allow deferral of scene render cleanup.
This avoids a long stall on mesh draw command recording tasks at the end of the frame and saves about .1 ms of work off the render thread.

#jira UE-114622
#rb luke.thatcher

[CL 16419616 by zach bethel in ue5-main branch]
2021-05-21 11:30:17 -04:00
christopher waters
13e7df6bcf Adding ability to format breadcrumbs if you want to use them manually.
Using manual breadcrumbs to track mesh draw command sources.
Fixing issues caused by recursive Command List execution where the newer Command Lists would end up hiding the higher command lists in the breadcrumb dumps.
Cleaned up a few aspects of breadcrumbs, including moving some functionality to the proper classes.

#jira UE-115087
#rb zach.bethel, kenzo.terelst, mihnea.balta
#preflight 60a68bd57d6b06000180ca18

[CL 16407874 by christopher waters in ue5-main branch]
2021-05-20 15:18:40 -04:00
zach bethel
90bc2efada RDG refactor to enable draining of work after issuing occlusion queries.
- New Drain() method on FRDGBuilder; will flush all pending work.
 - Drained passes are not culled; resource lifetimes are extended; async compute fences are optimized as best as possible but fence joining may occur after the drain.
 - Batch up and pre-build all resource transitions. This is a prerequisite for parallel command lists.
 - Removed ServiceLocalQueue passes with built-in RDG AddDispatchHint().

#jira UE-114622

[CL 16393495 by zach bethel in ue5-main branch]
2021-05-19 17:54:58 -04:00
Luke Thatcher
d9728437c1 Add UAVFormat field to FPooledRenderTargetDesc to allow selection of an aliasing format when retrieving surfaces from the pool
- Used by the VT system to alias DXT surfaces with integer formats.

#rb Zach.Bethel
#fyi Christopher.Waters
#jira UE-114726
#preflight 60a3aca422cce000018d88ad

[CL 16369514 by Luke Thatcher in ue5-main branch]
2021-05-18 12:34:02 -04:00
Lukas Hermanns
53d8a7c8a9 Use "GetErrorStringWithLineMarker()" by default for FShaderCompilerError.
#rb Rolando.Caloca
#fyi Arciel.Rekman
#jira none
#rnx

[CL 16356881 by Lukas Hermanns in ue5-main branch]
2021-05-17 15:06:27 -04:00
graham wihlidal
e936df5a56 Implemented on screen error message if Nanite is enabled w/ assets in the scene, and lack of 64bit image atomics. This change also allows for requiring 64bit atomic support (falling back to proxies if unsupported), or printing an error but still running Nanite using the lockbuffer hack (expected corruption, but AncientGame is surprisingly tolerant of this due to lots of high frequency detail/noise + TAA). The default is to fallback to lockbuffer + printing an error, but atomic64 can be required with r.Nanite.RequireAtomic64Support. Additionally, this change lays down ground work to (in the future) properly avoid Nanite doing any work for views/scenes without any actual Nanite assets, yet Nanite is supported.
#rb andrew.lauritzen
[FYI] brian.karis, rune.stubbe, michal.valient
#lockdown nick.whiting
#jira UE-115717

#ROBOMERGE-SOURCE: CL 16327193 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v804-16311228)

[CL 16327195 by graham wihlidal in ue5-main branch]
2021-05-14 02:51:21 -04:00