Commit Graph

188 Commits

Author SHA1 Message Date
Ben Marsh
dde2879803 Fix static analyzer warnings.
#preflight 6294df46380652524edb3498

[CL 20431977 by Ben Marsh in ue5-main branch]
2022-05-30 13:34:24 -04:00
Yujiang Wang
e408e97526 GPULM: Fix hit shader initialization under SM6
#preflight none

[CL 20375025 by Yujiang Wang in ue5-main branch]
2022-05-25 21:30:49 -04:00
zach bethel
50b6956d6a Ported IrradianceEnvironmentMap to RDG.
#preflight 628d31a3c97e4beea3ad4e21
#rb sebastien.hillaire

[CL 20370328 by zach bethel in ue5-main branch]
2022-05-25 15:53:11 -04:00
zach bethel
e999ee610f Converted volumetric lightmap textures to RDG.
#preflight 628d0ab76c4351e372874c73
#rb yujiang.wang

[CL 20354037 by zach bethel in ue5-main branch]
2022-05-24 15:40:32 -04:00
Marc Audy
e5a303d119 Fix CIS issues
#codereview ahmed.rizwan, yujiang.wang, graham.wihlidal, Aidan.Possemiers, luke.thatcher, zach.bethel
#rnx
#preflight

[CL 20306971 by Marc Audy in ue5-main branch]
2022-05-20 20:25:42 -04:00
tiago costa
e98ce47a3b Keep track of all callable shaders to build RTPSO
- GetRayTracingCallableLibrary() similar to how we handle hitgroups.
FindRayTracingCallableIndex(...) to query callable shader index in RTPSO.

#rb yuriy.odonnell
#preflight 628620c99016c6dd8974b510

[CL 20278150 by tiago costa in ue5-main branch]
2022-05-19 07:03:30 -04:00
Yujiang Wang
5c25690948 GPULM: Implement skylight bent normal calculation in VLM. This completes the support for stationary skylights.
#preflight none

[CL 20203333 by Yujiang Wang in ue5-main branch]
2022-05-14 23:04:26 -04:00
Yujiang Wang
b5c782f2b1 GPULM: Fix bug where VT lightmap preview tiles are not getting populated properly
#preflight none

[CL 20203328 by Yujiang Wang in ue5-main branch]
2022-05-14 23:01:06 -04:00
Yujiang Wang
f2f1969ee6 GPULM: 64bit hash table with contention detection. This should allow IC to cover a space of 2^19 * cache entry size. Also, no corner rejection during IC building passes
#preflight none

[CL 20155435 by Yujiang Wang in ue5-main branch]
2022-05-11 20:33:17 -04:00
christopher waters
4b9e68073c Deprecating RHICreateTexture2D and RHICreateTextureExternal2D.
#jira none
#rb zach.bethel
#preflight 627a6ec010766ef8c1f54f1e

[CL 20129702 by christopher waters in ue5-main branch]
2022-05-10 17:13:37 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Yujiang Wang
abf84f1dd3 GPULM: Implement transcoding for stationary skylight shadows. Results can now be saved. No denoising support yet
#preflight none

[CL 20054485 by Yujiang Wang in ue5-main branch]
2022-05-04 23:25:05 -04:00
tiago costa
0fa9385203 Support multiple raytracing scene layers in RayTracingInstanceBufferUtil
- LayerIndex can be specified in FRayTracingGeometryInstance.
- Apply offset to FRayTracingInstanceDescriptorInput.OutputDescriptorIndex so that the instance buffer is divided into different one subrange per layer.

#rb yuriy.odonnell
#preflight 62723d054c664a162465e0c4
#jira none

[CL 20039080 by tiago costa in ue5-main branch]
2022-05-04 04:59:03 -04:00
tiago costa
4d9ee7b667 Support multiple layers in FRHIRayTracingScene.
- Each layer corresponds to a separate TLAS.
- Values returned by FRHIRayTracingScene::GetSizeInfo() are large enough to contain all layers.
- Higher level code can use FRHIRayTracingScene::GetLayerBufferOffset(...) to query the offset of individual layer TLAS when building SRVs.
- Updated FRayTracingSceneInitializer2 so higher level code specifies how many instances are in each layer.

#rb yuriy.odonnell
#preflight 62714094e16e280be60fc35c
#jira none

[CL 20025952 by tiago costa in ue5-main branch]
2022-05-03 11:02:15 -04:00
Yujiang Wang
77b18d88b9 GPULM: Preliminary support for stationary skylights. Results cannot be saved now
#preflight none

[CL 20008565 by Yujiang Wang in ue5-main branch]
2022-05-02 10:45:08 -04:00
Yujiang Wang
be5397cd9b GPULM: Implement support for lights' cast shadow flag, and proper support for stationary light shadow masks
#preflight none

[CL 19991349 by Yujiang Wang in ue5-main branch]
2022-04-29 23:34:35 -04:00
Yujiang Wang
08d389c26a GPULM: Refactor FGPUTileDescription to remove duplicated code
#preflight none

[CL 19989199 by Yujiang Wang in ue5-main branch]
2022-04-29 22:15:07 -04:00
Yujiang Wang
e3bd4c92ba GPULM: Pause operation when shader compilation is active
#preflight none

[CL 19905681 by Yujiang Wang in ue5-main branch]
2022-04-25 13:54:09 -04:00
Yujiang Wang
7b02136193 GPULM: Optimize lightmap transcoding & encoding performance
* Sample quantization & copying is now parallel
* Oodle is used to compress temporary memory
* Now we have mimalloc editor-wide, we can remove FAnsiAllocator as its slow
* VT lightmaps are reduced from 32k back to 1-2k as huge single lightmaps hurt encoding performance seriously and 1-2k lightmaps should be adequate to reduce drawcalls

#preflight none

[CL 19905652 by Yujiang Wang in ue5-main branch]
2022-04-25 13:53:08 -04:00
Yujiang Wang
069ee84d68 GPU Lightmass Solver Improvements
Irradiance Caching
* Instead of setting a per-cell cap of samples, now we use the first X path samples of the receiver (lightmap texels) to adaptively distribute the irradiance cache samples. This will distribute them where BRDF sampling thinks the most important (more around corners and fewer in open area, for example). This is also the distribution that the old school irradiance caching's distance-based heuristics approximates for.
* New cache cells are only spawned during the first X passes. This avoids the case where the cache is constantly thrashed when it is not big enough to cover the scene.
* The image is reset after the first X passes are done. Like path guiding, these passes are uncached and thus contain high variance. Mixing them with the passes later will actually increase overall variance.

First Bounce Ray Guiding
* Now the FBRG passes run after IC passes are done. Way less input noise into the guiding PDF and better at locating importance sources.

New Parameter Tweaking Strategy for IC and FBRG
* IC: set quality to 1/16-1/8 of GI samples. Increase when seeing bright splotches around corners, or color discrepancies over large area.
* FBRE: set trial samples to 1/4 of GI samples. Increase when fireflies or small square-shaped artifacts are introduced by this technique.

General Cleanups
* IC and FBRG passes now add to the total number of passes to render instead of being subtracted from the number of GI Samples to reduce user confusion.
* IC buffer size reduction to save some GPU memory.

#rb juan.canada
#preflight 625ef3cb5f498a37c921b2f0

[CL 19815248 by Yujiang Wang in ue5-main branch]
2022-04-19 15:43:02 -04:00
christopher waters
31658ac660 Renderer dependency cleanup focused on removing RenderGraph.h from SceneRenderTargetParameters.h
#jira none
#rb zach.bethel
#preflight 62573bf61543022eed4bc2aa

[CL 19746250 by christopher waters in ue5-main branch]
2022-04-13 17:33:48 -04:00
Yujiang Wang
836889005a GPULM: Fix denoiser discoloration issue by removing the no longer needed inputScale
#preflight none

[CL 19744084 by Yujiang Wang in ue5-main branch]
2022-04-13 15:18:22 -04:00
Yujiang Wang
6d8d2eec11 GPULM: Fix occasional SWidget related crash when exiting the editor without ending the lighting build first
#preflight none

[CL 19743600 by Yujiang Wang in ue5-main branch]
2022-04-13 14:52:42 -04:00
zach bethel
a00b40ad3b Deprecated GetRenderTargetItem() from IPooledRenderTarget.
#preflight 624ddb30090236773a1a83e0
#rb luke.thatcher

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 19655641 via CL 19655653 via CL 19655661
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19657582 by zach bethel in ue5-main branch]
2022-04-06 18:24:24 -04:00
Yujiang Wang
ba9f5c4a00 GPULM: Fix type error introduced when TilePositionsBuffer was converted to RDG
#fyi chris.kulla
#preflight none

[CL 19640678 by Yujiang Wang in ue5-main branch]
2022-04-05 22:58:45 -04:00