Commit Graph

1295 Commits

Author SHA1 Message Date
zach bethel
a618c04cbf Converted light grid injection resources to RDG.
#preflight 61ddebe6ce7fe7aeff6fb109

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18576538 in //UE5/Release-5.0/... via CL 18576549
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18576556 by zach bethel in ue5-release-engine-test branch]
2022-01-11 15:57:18 -05:00
dmitriy dyomin
667034ee1e Fixed: DumpGPU command on mobile platforms
#jira UE-135663
#rb Guillaume.Abadie, Jack.Porter
#preflight 61dd77e18d72a407aabd881b

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 18571322 in //UE5/Release-5.0/... via CL 18571337
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18571345 by dmitriy dyomin in ue5-release-engine-test branch]
2022-01-11 09:24:45 -05:00
zach bethel
d25adbdb9a Fixed RDG culling behavior differences between Clang and MSVC due to static initialization of shader parameter metadata.
#rb trivial
#preflight trivial

#ushell-cherrypick of 18565342 by zach.bethel

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18565748 in //UE5/Release-5.0/... via CL 18565820
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18565855 by zach bethel in ue5-release-engine-test branch]
2022-01-10 17:03:48 -05:00
zach bethel
d5b21eab6b Major refactor of transient allocator to support page table mapping implementation and extracted transient resources.
- Implemented common transient page allocator in RHICore.
 - Implemented XBox specific GPU page table mapping allocator.
 - Extended RDG insights to support viewing heap visualization or page pool visualization.

#preflight 61d356682e0e436c725818bf

#ushell-cherrypick of 18504626 by zach.bethel

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18565702 in //UE5/Release-5.0/... via CL 18565762
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18565807 by zach bethel in ue5-release-engine-test branch]
2022-01-10 17:00:33 -05:00
arciel rekman
5770544450 Fix CIS (DebugGame builds) (UE-138641).
#jira UE-138641
#rb none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18546547 via CL 18546647 via CL 18546655 via CL 18547597 via CL 18547662
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18547724 by arciel rekman in ue5-release-engine-test branch]
2022-01-07 13:00:48 -05:00
andrew davidson
0715ebc996 Type truncation fixes - Renderer
#rb arne.schober
#preflight 61d85ab0932a02483ce13e7d

#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18544411 in //UE5/Release-5.0/... via CL 18544434
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18544466 by andrew davidson in ue5-release-engine-test branch]
2022-01-07 10:39:08 -05:00
jason hoerner
144df66f84 UE5_RELEASE: MGPU, include GPU mask per pass in DumpGPU. The GPU mask is added at the front of the pass name, making it easy to visually see in the pass browser, and also to text search for globally. The mask is only added when running on a system with multiple GPUs present (very few users), and is enabled by default for discoverability.
#rb Guillaume.Abadie
#rnx
#jira none
#preflight 61d83b345d522c9b40a54579

#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 18541852 in //UE5/Release-5.0/... via CL 18541856
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18541859 by jason hoerner in ue5-release-engine-test branch]
2022-01-07 08:18:56 -05:00
arciel rekman
43b5c6d968 Change shader compression to Mermaid6 to increase memory savings (UE-136845).
#rb Discussed preflight results on Slack with Jay.C, Serge.B, Pete.S
#jira UE-136845

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18537018 via CL 18537027 via CL 18537032 via CL 18538372 via CL 18538388
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18538396 by arciel rekman in ue5-release-engine-test branch]
2022-01-06 20:16:56 -05:00
devin doucette
25eb043633 StringBuilder: Deprecated Append(Char) in favor of AppendChar(Char)
Having only one Append overload with a single argument makes for clearer error messages. Otherwise, a failure to match Append(CharRangeType) leads to an error that ArgType cannot be converted to CharType.

#rb Zousar.Shaker
#preflight 61d72f3f6511bc498e54c250

#ROBOMERGE-OWNER: devin.doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18533638 in //UE5/Release-5.0/... via CL 18534325
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18534364 by devin doucette in ue5-release-engine-test branch]
2022-01-06 14:27:35 -05:00
arciel rekman
f1e9a0ff06 Fix non-unity CIS (ShaderCodeArchive.cpp)
#rb none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18531363 via CL 18531384 via CL 18531388 via CL 18531727 via CL 18531731
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18531736 by arciel rekman in ue5-release-engine-test branch]
2022-01-06 10:55:44 -05:00
arciel rekman
0b17540895 Add visualization of the runtime shader usage.
- Produces an image in Saved/Profiling with the preloaded and created shaders, helping to understand preloading / creation patterns.
- Only works on desktop platforms in Development. Disabled by default (set r.ShaderCodeLibrary.VisualizeShaderUsage=1 in ini to enable).

#rb Ben.Ingram
[REVIEW] [at]Ben.Ingram

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18528155 via CL 18528185 via CL 18528187 via CL 18528288 via CL 18528302
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18528308 by arciel rekman in ue5-release-engine-test branch]
2022-01-05 22:36:59 -05:00
josh adams
204c73650c - Allow for FShaderPlatformCachedIniValue on non-editor platforms - it will enforce that it can only look up it's own value
- Whenever looking up the running platform, just use the CVar's value directly instead of parsing ini values
#jira UE-138392
#rb arciel.rekman
#p4v-preflight-copy 18520954
#preflight 61d5f3c6d17842e547bbd280

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18524243 via CL 18524264 via CL 18524271 via CL 18524273 via CL 18524712 via CL 18524733
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18524741 by josh adams in ue5-release-engine-test branch]
2022-01-05 16:35:11 -05:00
josh adams
53cd7b2d58 - Fixed up some issues with other platform cvars:
- allow for FConsoleVariableRefs to have other platforms
  - dpreload now clears out cached cvar values and also expanded cvars inside the deviceprofiles
#jira UE-137816, UE-138032
#preflight 61d3bcf2c73b7e46b258511f
#rb francis.hurteau
#p4v-cherrypick 18514921
#p4v-cherrypick 18515238

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18515847 via CL 18515849 via CL 18516128 via CL 18516130
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18516132 by josh adams in ue5-release-engine-test branch]
2022-01-04 23:02:35 -05:00
sebastien hillaire
3fa07b8184 Adding UAV view slice start index and size parameters to UAV creation.
RHIs interface update.
Not implemented on Switch, Mac and OpenGL yet.

Tested with Strata on pc dx11/dx12, xb1 base, ps4 and ps5.
Tested wihtout Strata on pc and ps4.
ShooterGame test on PC
Mac preflight https://horde.devtools.epicgames.com/job/61b268709947f1ef980c602e
#preflight test https://horde.devtools.epicgames.com/job/61b26827b13fefb344312f11

#rb RHI, Console

#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 18508188 in //UE5/Release-5.0/... via CL 18508208
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18508217 by sebastien hillaire in ue5-release-engine-test branch]
2022-01-04 11:08:22 -05:00
dmitriy dyomin
ada14b95f8 Restore CL15587695: Fixed dangling RHI sampler state in FGenerateMips::Execute
#rb zach.bethel
[FYI] brian.white

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 18507738 via CL 18507812 via CL 18507869 via CL 18507913 via CL 18508050 via CL 18508062
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18508067 by dmitriy dyomin in ue5-release-engine-test branch]
2022-01-04 10:53:24 -05:00
guillaume abadie
cbe1cadf94 Implements FRHITextureCreateInfo::Validate() to also validate maximum dimension sizes
#rb zach.bethel
#preflight 61d30944df783d9d868ce26d

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 18506609 in //UE5/Release-5.0/... via CL 18506610
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18506611 by guillaume abadie in ue5-release-engine-test branch]
2022-01-04 04:43:28 -05:00
arciel rekman
2a499437fe Change shader compression method to Oodle Selkie6 by default (UE-136845).
- Provides about 8% runtime memory savings (in local tests).
- Also, adds more compression types for shaders.
- Impact on the shader compilation (in SCWs) seems to be negligible in local tests.

#rb Devin.Doucette, Charles.Bloom
[REVIEW] [at]Devin.Doucette, [at]Charles.Bloom, [at]Jason.Nadro
#jira UE-136845

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18502862 via CL 18503105 via CL 18503112 via CL 18505939 via CL 18505950
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18505961 by arciel rekman in ue5-release-engine-test branch]
2022-01-04 00:58:30 -05:00
jeannoe morissette
bd4550b721 Add Pixel Format: PF_R64_UINT. Needed for (compliant) Vulkan's 64bit image atomics in upcoming changelist. bSupported defaults to FALSE (so no additional code for most APIs).
#rb Zach.Bethel
#preflight 61d34148af44b43628f33091

#ROBOMERGE-AUTHOR: jeannoe.morissette
#ROBOMERGE-SOURCE: CL 18503898 in //UE5/Release-5.0/... via CL 18504029
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18504080 by jeannoe morissette in ue5-release-engine-test branch]
2022-01-03 17:19:35 -05:00
jeanfrancois dube
86d9ce38a3 Fix crash starting Editor when trying to retrieve an inexisting platform cvar.
#rb none
[FYI] josh.adams
#preflight none

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 18483973 in //UE5/Release-5.0/... via CL 18483976
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483977 by jeanfrancois dube in ue5-release-engine-test branch]
2021-12-17 08:52:15 -05:00
josh adams
a46a20f612 - Fixing compile errors after robomerge happened
#rb trivial
#preflight skip

#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18483084 via CL 18483085 via CL 18483219 via CL 18483230
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483243 by josh adams in ue5-release-engine-test branch]
2021-12-17 00:28:13 -05:00
josh adams
5953f4ad9f - Added ability to get a CVar's value for another platform (IConsoleVariable::GetPlatformValueVariable()), which gets another IConsoleVariable that contains the value
- Added console command syntax for viewing the value from the editor (<CVarName>[at]<PlatformName>)
- Converted FShaderPlatformCachedIniValue to use the new system (which will give a better possible value on the target platform). Eventually, this can be replaced with direct calls to GetPlatformValueVariable(ShaderPlatformToPlatformName(SHaderPlatform))
#p4v-preflight-copy 18268687
#preflight 61ba5a7aed09cd864b35372b
#rb arciel.rekman

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18476914 via CL 18479791 via CL 18482819 via CL 18482821 via CL 18483214 via CL 18483227
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483239 by josh adams in ue5-release-engine-test branch]
2021-12-17 00:27:52 -05:00
jeremy moore
d51269ce92 Fix GPU stat scope race condition.
Start or stop trace GPU channel could lead to mismatched scope begin/end.
[FYI] zach.bethel
#preflight 61bc0e61b12f441ed9e0e118

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18483144 in //UE5/Release-5.0/... via CL 18483148
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483149 by jeremy moore in ue5-release-engine-test branch]
2021-12-16 23:41:00 -05:00
christopher waters
0b0457558b Moving RHIIsTypedUAVLoadSupported and RHIIsTypedUAVStoreSupported out of FDynamicRHI. New versions now use TextureFormat Capability flags.
#jira none
#rb mihnea.balta
#preflight 61ba46c8055f3013459a5b62

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18476758 in //UE5/Release-5.0/... via CL 18481366
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481459 by christopher waters in ue5-release-engine-test branch]
2021-12-16 19:29:23 -05:00
jeremy moore
c6cfb9d57f Fix RDG event scope race condition.
Start or stop trace RDG channel could lead to mismatched scope begin/end.
#preflight 61bb55cfbd7d5fe54ec56d29
#rb guillaume.abadie
[FYI] zach.bethel

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18475949 in //UE5/Release-5.0/... via CL 18481328
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481434 by jeremy moore in ue5-release-engine-test branch]
2021-12-16 19:26:09 -05:00
jason hoerner
5600dd7c35 UE5_RELEASE: MGPU, numerous fixes to get EngineTest AFR, and Virtual Production City map to run with multiple GPUs. Ultimately there were 3 crash sources (RayTracing, Nanite, Distance Field streaming), each of which required a couple fixes, plus infrastructure to support those fixes...
There remain significant visual artifacts in the Virtual Production City map.  Lumen has serious issues with multiple views in both single and multi-GPU modes -- I think Lumen data needs to be split per view family to solve this.  There is some corrupt geometry in the second view, which may be Nanite or instance rendering related (or something else entirely).  To narrow down these issues, I think I'm going to need to extend the DumpGPU feature to be able to do more effective MGPU graphical debugging, since none of PIX, RenderDoc, or NSight work.  But at least it doesn't crash now...

Full list of changes:
* CVAR (DC.MultiGPUMode) to override multi-GPU mode for Display Cluster, debug feature copied over from 4.27.
* Barrier and synchronization fixes for RHITransferTextures copied over 4.27.  Future work will make RDG handle multi-GPU transitions more seamlessly...
* CVAR (DC.ForceCrossGPUCopy) to force expensive full synchronization and copy of resources cross GPU at the end of each view family render (for debugging).  RHITransferTextures upgraded to support copying things besides 2D textures, including other texture resources and buffers.
* AFR temporal fixes from a previous CL (which I moved from my single GPU to multi GPU PC), now improved to avoid some validation asserts in Debug builds (pass inputs not declared, GetParent()->GetRHI() not working because parent not declared to pass).
* Ray tracing (hang):  acceleration buffers are branched per GPU, as GPU virtual addresses for resources internally referenced by these buffers may vary per GPU.  Needed to add infrastructure to support buffers that duplicate memory per GPU, rather than using driver aliasing of the underlying resource.
* Ray tracing (hang):  some buffer bindings weren't using a proper GPU index.
* Nanite (hang):  Force initial clear of Nanite.MainAndPostNodesAndClusterBatchesBuffer to run on all GPUs.  Solves GPU hang in shadow rendering the first frame (due to shadow rendering running across all GPUs), and later random hangs in view rendering.
* Distance field streaming (assert):  GPU readback staging buffers need to be branched per GPU, as the underlying class is single device.  GPU readback buffers and textures properly take into account the GPU they were last written on when locking and unlocking.  Includes handling an edge case where a write can be queued when a lock is active, due to the deferred way commands are played back in the render graph.
* Distance field streaming (assert):  UAV clear wasn't taking into account GPU index.
* GPU scene update needs to run across all GPUs.
* Fix for "DumpGPU" command to avoid assert with MGPU -- arbitrarily pick a GPU (last index) when the GPU mask contains multiple bits.  Hope to improve this in the future, but it works.

#rnx
#rb mihnea.balta juan.canada tiago.costa kenzo.terelst
#jira none
#preflight 61ba7edbdc58e54b3318fdf5

#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 18472819 in //UE5/Release-5.0/... via CL 18473380
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18473412 by jason hoerner in ue5-release-engine-test branch]
2021-12-15 23:12:04 -05:00