Commit Graph

53 Commits

Author SHA1 Message Date
guillaume abadie
223782df74 Adds missing SHADER_USE_PARAMETER_STRUCT() on some shader classes
#rb trivial

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 18393957 in //UE5/Release-5.0/... via CL 18393975
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18393985 by guillaume abadie in ue5-release-engine-test branch]
2021-12-07 07:48:20 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
jeannoe morissette
9ae01b3f37 Specify a render area to clearing render pass without targets to fix asserts in Vulkan for AncientGame.
#rb Rolando.Caloca
[FYI] krzysztof.narkowicz

#ROBOMERGE-AUTHOR: jeannoe.morissette
#ROBOMERGE-SOURCE: CL 17664497 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17664554 by jeannoe morissette in ue5-release-engine-test branch]
2021-09-29 13:48:29 -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
ola olsson
c78ae71b1f Replace side-effect invalidation during instance/cluster cull with a buffer appended to at instance cull.
- preparational step to enable HZB culling of invalidations in an uniform way.
- also add FComputeShaderUtils helper to set up an indirect dispatch.

#rb andrew.lauritzen
#preflight 6130818017a8610001b0cfc7

#ROBOMERGE-SOURCE: CL 17400532 via CL 17400838
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17400862 by ola olsson in ue5-release-engine-test branch]
2021-09-02 07:13:18 -04:00
charles derousiers
22a10915c8 Enable resummarize on HTile data for hair visibility pass.
#rb none
#preflight 61261adeba9f0e0001d834a2

#ROBOMERGE-SOURCE: CL 17300694 via CL 17300699
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17300708 by charles derousiers in ue5-release-engine-test branch]
2021-08-25 06:52:59 -04:00
charles derousiers
a5d9c590f0 Add copy buffer pass to RDG utility functions.
#rb zach.bethel
#preflight 6101782bab06550001e89ddd

#ROBOMERGE-SOURCE: CL 16985200 via CL 16986684
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16986765 by charles derousiers in ue5-release-engine-test branch]
2021-07-28 16:21:28 -04:00
zach bethel
a44fbef833 Incremental fix-up to add names to RDG passes and use the correct RHI command list.
#rb christopher.waters

#ROBOMERGE-SOURCE: CL 16923748 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16923764 by zach bethel in ue5-release-engine-test branch]
2021-07-22 11:00:18 -04:00
christopher waters
1542fdb3b2 Adding CreateUploadBuffer helpers.
Adding FRDGUploadData to create upload data directly from the GraphBuilder persistent memory.

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

#ROBOMERGE-SOURCE: CL 16613071 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16613087 by christopher waters in ue5-release-engine-test branch]
2021-06-09 17:18:09 -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
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
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
zach bethel
7c28e71d9e Batch RDG upload passes together to reduce transitions and RDG compilation work.
#rb charles.derousisers, andrew.lauritzen
#jira UE-114621

[CL 16209728 by zach bethel in ue5-main branch]
2021-05-05 13:20:09 -04:00
Charles deRousiers
535d1d95c1 Add render graph support for default textures and default buffers with custom format and custom default value.
#rb zach.bethel, sebastien.hillaire
#jira none

[CL 16183014 by Charles deRousiers in ue5-main branch]
2021-05-03 06:44:33 -04:00
Krzysztof Narkowicz
f94472aea1 Lumen surface cache compression
* First all cards are allocated to a temporary atlas of fixed size set by r.LumenScene.CardCaptureAtlasFactor
* After cards are captured into temporary atlas, they are compressed into final BC compressed atlas. Compression can be disabled with r.LumenScene.SurfaceCache.Compress
* Atlas clears were also converted to support clearing compressed surfaces
* Atlas capture operations work on uploaded rect list, instead of a GPU generated card list
* Renamed r.LumenSurfaceCache.* to r.LumenScene.SurfaceCache.*
* Renamed LumenSceneLighting.usf to LumenSurfaceCache.usf
* Renamed LumenScenePrefilter.cpp to LumenSurfaceCache.cpp

Cuts down VRAM memory usage by 160mb
Compression performance on console: ~0.18ms for 1M texels (~0.9ms with UAV aliasing path, which is currently disabled due to missing pieces in RHI)

[CL 16160800 by Krzysztof Narkowicz in ue5-main branch]
2021-04-29 15:30:04 -04:00
zach bethel
47cf1f4458 Rewrite of RHI transient resource system.
- Views are cached on RHI transient resources; view renames are no longer necessary.
 - RHI Transient resources utilize a single cache per heap keyed off of the descriptor + offset. Resource caches and heaps are garbage collected.
 - CPU performance is effectively equivalent to the existing pooled resource method.
 - Added common RHI transient resource allocator implementation in RHI core; significantly reduces the amount of platform code.
 - Resource aliasing overlaps are tracked by the RHI and submitted through an acquire operation.
 - Fixed D3D12 implementation to support multi-GPU.
 - Removed condition that excluded small (<64k) buffers in the transient allocator.
 - RHI validation now checks that resource overlaps are valid; i.e. if an overlap occurs between resource A and B during an acquire of B, validation checks that A has been discarded.

#rb graham.wihlidal, luke.thatcher, kenzo.terelst

[CL 16076280 by zach bethel in ue5-main branch]
2021-04-21 13:03:28 -04:00
zach bethel
9fc8b1722d Refactored RDG ConvertToUntrackedX functionality into the RDG builder; renamed the operation to 'FinalizeAccess' for clarity, as the resource is considered finalized in the graph and will not transition to any other state. This operation now supports multiple resources, improving performance in cases where multiple resources are finalized back-to-back. Added validation to check that the user don't attempt to use it outside of its finalized state. Fixed up a few places where this assumption was being violated. Minor refactors in various places to use new API.
#rb arne.schober, christopher.waters
#jira none

[CL 15931331 by zach bethel in ue5-main branch]
2021-04-06 11:45:09 -04:00
andrew lauritzen
9b0a6fab9d Remove complete shadow maps and replace with direct VSM sampling
- Move VSM parameters into a single uniform buffer; required for base pass rendering.
  - SRVs are initialized to dummy data until they are computed during the frame and subsequently updated before any VSM sampling.
  - Make names and usage more consistent with other UB bindings in mesh passes
- Direct injection of VSM into translucent volume and fog
- Support VSM sampling in forward lighting shaders
  - Enabled and bound currently for translucent forward and single pass water meshes
- Support VSM sampling in sky atmosphere and cloud rendering
  - NOTE: Sky atmosphere LUT pass currently executes before BasePass and ShadowDepths so it will not sample proper data and throw a warning. Moving passes around to address this will come in a future commit.

#rb Brian.Karis, Ola.Olsson, Sebastien.Hillaire, Zachary.Bethel

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

[CL 15650486 by andrew lauritzen in ue5-main branch]
2021-03-08 23:14:54 -04:00
zach bethel
cfcbdd1d90 Removed dead code from render target pool; removed 'passthrough' RDG hacks used during conversion.
#rb none
#rnx

[CL 15584180 by zach bethel in ue5-main branch]
2021-03-03 12:56:07 -04:00
zach bethel
81d46bc35e Fixed cloud RHI validation failures.
#rb sebastien.hillaire
#jira UE-105065
#rnx

[CL 15155170 by zach bethel in ue5-main branch]
2021-01-21 12:46:39 -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
zach bethel
44e2bf09de Miscellaneous render graph changes in preparation for the scene textures refactor.
- Added GetLoadActionIfProduced helper function.
 - Made GetPooledFreeBuffer attempt to reuse the existing allocation.
 - Disable load action validation when SkipRenderPass is specified.

#rb none
#rnx

[CL 14957259 by zach bethel in ue5-main branch]
2020-12-18 16:33:44 -04:00
Emil Persson
72db809300 Replace legacy LockVertexBuffer()/LockIndexBuffer()/LockStructuredBuffer() calls with the unified LockBuffer()
#rb kenzo.terelst

[CL 14898308 by Emil Persson in ue5-main branch]
2020-12-10 11:51:32 -04:00
zach bethel
0d7dc4d4ed Refactor of uniform buffer binding to allow for runtime selection of static or per-shader binding. This is a necessary precursor to moving the View uniform buffer to use static bindings on mesh passes; it is used in so many places that both binding models are required to preserve compatibility. Added validation to catch when a uniform buffer is bound using both methods at the same time. Added CVar to RHI transition validation to control whether to break in the debugger on a transition failure.
#rb christopher.waters

[CL 14873973 by zach bethel in ue5-main branch]
2020-12-07 17:42:32 -04:00
zach bethel
e8495060db Fixed deprecation warnings.
#rb none

[CL 14821612 by zach bethel in ue5-main branch]
2020-11-30 13:28:09 -04:00