Commit Graph

72 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
eric mcdaniel
a8bd1fae30 Fix for mesh lod selection when rendering into virtual texture
- virtual texture mesh lod range can have no intersection with available lods for the mesh
  - this resulted in attempted rendering of the mesh lod corresponding to the range max which may not be streamed in
    - we now render the highest detail mesh lod streamed in into the VT in this case even if it falls outside the desired range

#rb David.Harvey, Jian.Ru
#jira UE-116401, UE-116589

[CL 16587795 by eric mcdaniel in ue5-main branch]
2021-06-08 11:28:47 -04:00
Ola Olsson
4552223433 Convert RuntimeVirtualTexture to not use SubmitMeshDrawCommands directly, such that GPU-scene instance culling passes can be inserted.
#rb jeremy.moore
#preflight 60b4ec0c072a1d0001c66299
#preflight 60b4ec0c072a1d0001c66299

[CL 16509434 by Ola Olsson in ue5-main branch]
2021-05-31 11:32:39 -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
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
Jason Nadro
fe67c17978 Converting FMeshPassProcessors to use ODSC.
- FRuntimeVirtualTextureMeshProcessor

#rb Jeremy.Moore
#review-16132085 @Jeremy.Moore
#fyi Arciel.Rekman, Ben.Ingram, Kevin.Ortegren
#jira UE-113686

[CL 16143153 by Jason Nadro in ue5-main branch]
2021-04-28 09:55:03 -04:00
zach bethel
cfd61f6e52 Moved GPU scene upload work to RDG.
#rb ola.olsson
[FYI] graham.wihlidal, andrew.lauritzen
#lockdown michal.valient

#ROBOMERGE-SOURCE: CL 15932750 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15932762 by zach bethel in ue5-main branch]
2021-04-06 13:59:36 -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
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
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
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
357b5d5a39 Fold GPU-Scene uploads into one funciton such that dynamic primitives can have instances also & more instance culling prep.
- Moved the primitive instance registration such that we don't end up with added primitives that have no instance index at GPU-Scene update time
- added calls to InstanceCullingManager and disabled implementation.
- GPU scene can now exists without a FScene  instance

#rb graham.wihlidal
#rnx

[CL 15106518 by Ola Olsson in ue5-main branch]
2021-01-15 10:04:26 -04:00
Jeremy Moore
11b6560ac9 Use RenderPagesStandAlone() when building RVT and VHM MinMax textures.
Plays correctly with GPUScene and stops ensure() firing.
#rb none

[CL 15100429 by Jeremy Moore in ue5-main branch]
2021-01-14 20:15:23 -04:00
graham wihlidal
862e861803 Added instance culling manager and context (disabled, and without shader files), and tons of hooks all over the renderer in preparation for upcoming GPU culling work.
#author ola.olsson
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15082481 by graham wihlidal in ue5-main branch]
2021-01-14 05:23:34 -04:00
zach bethel
c6cb1e82be Deprecated and gutted FSceneRenderTargets. Moved all textures over to FSceneTextures. Refactored the renderer to use RDG textures from FSceneTextures instead.
#rb arne.schober, luke.thatcher, christopher.waters, kenzo.terelst

[CL 15040082 by zach bethel in ue5-main branch]
2021-01-11 14:49:16 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Jeremy Moore
ab646ffa51 Tidy virtual texture update event markers.
#rnx
#jira none
#rb none

[CL 14957303 by Jeremy Moore in ue5-main branch]
2020-12-18 16:35:14 -04:00
zach bethel
502f4b6d80 Fix for crash in virtual landscape due to erroneous BeginRenderView call in VT.
#fyi jonathan.bard

[CL 14890363 by zach bethel in ue5-main branch]
2020-12-09 14:25:24 -04:00
zach bethel
056a26cddd Refactored uniform buffers to use static bindings as opposed to FPersistentUniformBuffers across the deferred renderer. This removes the view uniform buffer and reflection capture uniform buffers from mesh draw commands and reduces the use of RHIUpdateUniformBuffers.
- View / InstancedView uniform buffers are now bound through RDG directly from the FViewInfo, or created on-demand for cases like jitter-free custom depth.
 - Removed most of the custom persistent view uniform buffers. Left one in Lumen to be done in a later CL.
 - ReflectionCapture uniform buffer is now bound at the RDG pass level.

#rb christopher.waters

[CL 14873982 by zach bethel in ue5-main branch]
2020-12-07 17:43:21 -04:00
Ola Olsson
69d2af54aa Refactored GPU-Scene to store per-view dynamic primitives (for all views) in the one and primitive data buffer, after the regular primitives.
- Added step after dynamic primitives are gathered to allocate a range in GPU scene for the dynamic primitives.
- Moved more GPU-Scene functionality to member functions to clean up references to internal data
- Removed the PrimitiveShaderDataBuffer/Texture from FSceneViewState
- Removed OneFramePrimitiveShaderDataBuffer/Texture from FViewInfo
- Encapsulated the collection of dynamic primitive data for upload to avoid uploading twice and prepare for parallel upload.

#rb Krzysztof.Narkowicz,graham.wihlidal

[CL 14785776 by Ola Olsson in ue5-main branch]
2020-11-19 05:23:44 -04:00
zach bethel
e4f467569d Removed scene render target context snapshot system.
#rb arne.schober

[CL 14615156 by zach bethel in ue5-main branch]
2020-10-29 16:32:16 -04:00
zach bethel
f3fb7ddab6 Moved RDG builder to top of Deferred Shading Render function. Ported hit proxy rendering to RDG.
#rb christopher.waters
#jira none

[CL 14589785 by zach bethel in ue5-main branch]
2020-10-27 13:40:36 -04:00
zach bethel
2bc88676d6 Converted virtual texture system and GPU lightmass to RDG.
#rb yujiang.wang, jeremy.moore
#jira none

[CL 14581416 by zach bethel in ue5-main branch]
2020-10-26 16:44:44 -04:00
Jeremy Moore
b581f50658 Set the IS_VIRTUAL_TEXTURE_MATERIAL define in Runtime Virtual Texture rendering.
Makes everything compatible with new shader generation work.
#rb John.Hable

[CL 14561854 by Jeremy Moore in ue5-main branch]
2020-10-23 15:56:17 -04:00