Commit Graph

110 Commits

Author SHA1 Message Date
Ola Olsson
fe64cb01af Add InstanceSceneDataOffset to visible/cached mesh draw commands and propagate
- Intermediate step towards making renderer instance-first.
 - Enables simplification of instance culling setup.

#rb Krzysztof.Narkowicz

[CL 16729395 by Ola Olsson in ue5-main branch]
2021-06-21 12:25:46 -04:00
Arciel Rekman
19f8932436 Use material asset names, and not friendly names, for debug markers.
- Friendly name ignores material instances for historical reasons (it should really be using a debug name on the shadermap).

#rb Kevin.Ortegren
#jira none

[CL 16606161 by Arciel Rekman in ue5-main branch]
2021-06-09 11:40:42 -04:00
Ola Olsson
075ef36828 Move SetupGPUInstancedDraws into FInstanceCullingContext
- provides easier iteration on related code, plus sets the stage for abstraction for desktop/mobile version.
#preflight 60bf64925bc96f0001ba7fe1

[CL 16587267 by Ola Olsson in ue5-main branch]
2021-06-08 10:54:17 -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
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
Ola Olsson
e49320f038 Batch GPU-Scene Instance Culling passes for shadows
#rb graham.wihlidal
#preflight 609e26220e81c70001cc778f

[CL 16327421 by Ola Olsson in ue5-main branch]
2021-05-14 04:16:02 -04:00
nick whiting
95c6af63a7 Make sure the material draw events actually capture the draw event.
[REVIEW] [at]Graham.Wihlidal
#jira UETOP-1583
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16170812 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16170820 by nick whiting in ue5-main branch]
2021-04-30 14:04:55 -04:00
brandon dawson
742b10538b Use ReadWrite locks isntead of critical sections to protect cached mesh draw commands
Use ReadWrite locks instead of critical sections to protect the Graphics Minimal Pipline State ID's persistent table.
Use remove locking around the pipeline id table size, and use atomic operators instead.
Disable the pipeline id table size completely in test or shipping builds

[REVIEW] [at]Graham.Wihlidal [at]Nick.Whiting
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16136028 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16136043 by brandon dawson in ue5-main branch]
2021-04-27 23:50:55 -04:00
ola olsson
c6d735addf Stereo GPU-Scene Instance culling fixes
- added explicit stereo mode to instance culling context.
- fixed the stencil setup pass parameter to include the InstancedView (lost in RDG conversion probably)
- restored the hack to run the stereo stencil pass twice (needed to make FSimpleMeshDrawCommandPass support setting up stereo)

#rb andrew.lauritzen,steve.smith
[FYI] jules.blok

#ROBOMERGE-OWNER: ola.olsson
#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 15739174 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
#ROBOMERGE-CONFLICT from-shelf

[CL 15739606 by ola olsson in ue5-main branch]
2021-03-18 13:39:09 -04:00
dmitriy dyomin
999748ec66 Revert CL#15658521 as it breaks instancing and causes mesh flicker
[FYI] Charles.deRousiers, ola.olsson
#rb none

#ROBOMERGE-SOURCE: CL 15663752 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)

[CL 15663754 by dmitriy dyomin in ue5-main branch]
2021-03-10 01:44:26 -04:00
charles derousiers
84dc3e1c0e Fix hair strands HitProxy and outline rendering.
#rb none
#jira none
[FYI] ola.olsson

#ROBOMERGE-SOURCE: CL 15658521 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)

[CL 15658529 by charles derousiers in ue5-main branch]
2021-03-09 15:58:22 -04:00
ola olsson
09532969fe Added (read only) cvar r.Shadow.Virtual.NonNaniteVSM to toggle non-nanite VSM support
#rb Brian.Karis,Andrew.Lauritzen

#ROBOMERGE-SOURCE: CL 15526905 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15526909 by ola olsson in ue5-main branch]
2021-02-25 05:03:27 -04:00
will damon
0a298b5d97 Disable GPU culling on Apple and Linux platforms.
- Convert preprocessor 'defined(GPUCULL_TODO)' checks to 'GPUCULL_TODO'
- Define GPUCULL_TODO to 0 for Apple and Linux platforms

#rb rolando.caloca
[FYI] carl.lloyd brandon.schaefer ola.olsson lukas.hermanns graham.wihlidal
#jira UE-109070
#rnx

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

[CL 15503935 by will damon in ue5-main branch]
2021-02-23 15:21:24 -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
ola olsson
6ef7f8a95f Instance culling support for Landscape
#ROBOMERGE-SOURCE: CL 15482721 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15482722 by ola olsson in ue5-main branch]
2021-02-20 08:07:57 -04:00
ola olsson
4fe852b5ca Implement lumen card capture rendering using GPU-Scene instance culling
#rb Krzysztof.Narkowicz

#ROBOMERGE-SOURCE: CL 15451406 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15454857 by ola olsson in ue5-main branch]
2021-02-18 13:45:50 -04:00
ola olsson
f7822cb8c5 Enable caching for Non-Nanite VSM
- added a path to propagate and cache whether material modifies position (WPO) to enable invalidating cached pages (touches whole mesh command pipeline).
- added pixel shader verision of page copying & clearing.
- also added flag for whether cached the mesh draw command supports primitive id (which enables checing this earlier).

#rb andrew.lauritzen,brian.karis,graham.wihlidal,Krzysztof.Narkowicz

#ROBOMERGE-SOURCE: CL 15436539 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15441336 by ola olsson in ue5-main branch]
2021-02-17 15:32:52 -04:00
ola olsson
5a3bc4ac39 CIS fix initialization order
#rb trivial

#ROBOMERGE-SOURCE: CL 15433341 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15441243 by ola olsson in ue5-main branch]
2021-02-17 15:31:40 -04:00
ola olsson
0ee0c57088 Defer ID translation for dynamic primitives such that the commit can happen at any time before draw submit.
- dynamic primitive collectors now auto-commit when uploading dynamic primitives, simplifying use.
- fixed shadow stencil passes to properly use GPU-Scene instance culling (and instancing), now using FSimpleMeshDrawCommandPass
- Also move translucency shadow rendering to FSimpleMeshDrawCommandPass

#jira UE-108032
#rb Krzysztof.Narkowicz

#ROBOMERGE-SOURCE: CL 15432971 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15441234 by ola olsson in ue5-main branch]
2021-02-17 15:31:33 -04:00
ola olsson
0224d4d591 Make InstanceCullingContext local to mesh passes to ensure correct life-time.
- Also stripped out instance culling manager and some other superseded code.

#rb rune.stubbe

#ROBOMERGE-SOURCE: CL 15314346 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15314386 by ola olsson in ue5-main branch]
2021-02-04 10:44:19 -04:00
Ola Olsson
f1455aa32a Disabled dynamic instancing for shadow stencil rendering for the new instance culling path (dynamic draw pass)
#rb Graham.wihlidal
#rnx

[CL 15209299 by Ola Olsson in ue5-main branch]
2021-01-26 13:35:42 -04:00
graham wihlidal
652ab75bb8 Workaround for Dynamic Mesh Pass Draws
#author ola.olsson
#ushell-cherrypick of 15144226 by swarm
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15150027 by graham wihlidal in ue5-main branch]
2021-01-20 19:57:54 -04:00
Emil Persson
9d7f102824 Replace FRHIVertexBuffer, FRHIIndexBuffer and FRHIStructuredBuffer with FRHIBuffer, and some additional cleanup.
#rb kenzo.terelst

[CL 15143850 by Emil Persson in ue5-main branch]
2021-01-20 06:49:41 -04:00
Ola Olsson
e595e1c516 Final set of GPU-Scene Instance Culling v0.1 changes (disabled by default)
- LocalVertexFactory can fetch instance data from GPU-Scene
- regular Shadow map rendering can use instance culling view index (route to cube face)
- HISM/ISM/SM registers instance data
- Support for overriding mesh draw commands with indirect dispatch

#rb graham.wihlidal

[CL 15135051 by Ola Olsson in ue5-main branch]
2021-01-19 08:25:03 -04:00
graham wihlidal
9aca61a174 Additional GPU instance culling improvements and cleanup
#author ola.olsson
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15127819 by graham wihlidal in ue5-main branch]
2021-01-18 04:22:34 -04:00