Commit Graph

1535 Commits

Author SHA1 Message Date
Stu McKenna
1130512cfe - Rigid Mesh Collision DI converted to RDG
#rb rob.krajcarski, devon.penney
#jira UE-151234
#preflight 62aa5acb102b5101ccdaaa8d
#preflight 62ab6712e9031caf98af7f6c

[CL 20690140 by Stu McKenna in ue5-main branch]
2022-06-16 13:35:46 -04:00
Florin Pascu
6b14075ce6 Adding Cvar Flags that will make them automatically modify the KeyString when modified
Cvars with this flag will modify the Shader Keystring for All Platforms
ECVF_GeneralShaderChange = 0x200,

Cvars with this flag will modify the Shader Keystring for Mobile Platforms
ECVF_MobileShaderChange = 0x400,

Cvars with this flag will modify the Shader Keystring for Desktop Platforms
ECVF_DesktopShaderChange = 0x800,

r.MobileHDR is using this system now. Others will follow.

#rb Jack.Porter, Mihnea.Balta
#jira UE-120561
#preflight 62aae0aeea213dadf0b36fdd

[CL 20684686 by Florin Pascu in ue5-main branch]
2022-06-16 04:38:20 -04:00
jeannoe morissette
a55062b58e VulkanRHI: Temporarily disable gpu stat accumulation during modal dialog's 'long frame' to prevent OOM from staging buffer accumulation.
#rb Mihnea.Balta
#jira UE-148255
#preflight 62a89264cf54a658ee0e8316
#lockdown Mihnea.Balta

#ROBOMERGE-AUTHOR: jeannoe.morissette
#ROBOMERGE-SOURCE: CL 20674492 in //UE5/Release-5.0/... via CL 20675969
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20679016 by jeannoe morissette in ue5-main branch]
2022-06-15 19:31:56 -04:00
zach bethel
8a9fd982e6 Sync RDG setup events prior to the PSO cache coalescing sync point.
#fyi dave.barrett
#preflight 62a95ee1293ff41d4957783a

[CL 20665487 by zach bethel in ue5-main branch]
2022-06-15 00:28:49 -04:00
zach bethel
058bdd7d2f Implemented support for parallel buffer creation and lock / unlock.
- Refactored relevant FDynamicRHI APIs to take an FRHICommandListBase reference. Platforms which require operations deferred to the RHI thread will enqueue commands into the command list.
 - Hardened platform implementations to use locks where needed.
 - Added unit tests to stress test creating and locking many buffers in parallel.

#preflight 62a2855c54169bd8aa114d29
#rb christopher.waters, jeannoe.morissette, luke.thatcher, will.damon, kenzo.terelst

[CL 20659113 by zach bethel in ue5-main branch]
2022-06-14 17:59:07 -04:00
christopher waters
f9e5f44dee Restoring functionality to r.ShaderCompiler.EmitWarningsOnLoad
#jira none
#rb jason.nadro
#preflight 62a8ab32d502a554367beb52

[CL 20657856 by christopher waters in ue5-main branch]
2022-06-14 17:03:34 -04:00
carl lloyd
4b6434cac6 Fix for Apple A8 device support
- Devices crashing when using Base_Vertex metal shader semantics
  - Runtime error when using Virtual Texturing on A8 devices which is unsupported.

#jira UE-131863, UE-132217
#rb Will.Damon
[FYI] Jack.Porter
#preflight 62a75ad63d0a713cf8caf486

#ROBOMERGE-AUTHOR: carl.lloyd
#ROBOMERGE-SOURCE: CL 20631592 in //UE5/Release-5.0/... via CL 20649245
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20656300 by carl lloyd in ue5-main branch]
2022-06-14 16:23:13 -04:00
robert srinivasiah
f2302251e4 Missing copyright boilerplate in StereoRenderUtils.cpp
#rb none
#jira none
#preflight trivial

[CL 20652500 by robert srinivasiah in ue5-main branch]
2022-06-14 13:12:57 -04:00
robert srinivasiah
511b73a9ef Bind InstancedViewUB independent of active stereo rendering
The shader compiler will enable ISR or Mobile Multi-View in shaders, independent of whether they are actively engaged in stereo rendering.
But we _bind_ the instanced view UB when we think stereo is active. We can bind the instanced view UB even while doing mono rendering.

#jira UE-145187
#rb Arciel.Rekman
#preflight 62a7d16df017fed6d25c6641 62a80b5c67522b9df01e96cc

[CL 20650995 by robert srinivasiah in ue5-main branch]
2022-06-14 12:14:38 -04:00
steve robb
28609e6f3c Removal of TEXT used in static_asserts (redundant in ANSI/wide modes, broken in UTF-8 mode).
#rb james.hopkin
#jira UE-132142
#preflight 62a87ef40b7bda795a7dfff0

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20647361 via CL 20647632 via CL 20647654
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20650895 by steve robb in ue5-main branch]
2022-06-14 12:11:45 -04:00
zach bethel
eee5dbab99 Fix for engine test failure in DumpGPU on Vulkan
#preflight 62a60279b94c57409e81884f

[CL 20619061 by zach bethel in ue5-main branch]
2022-06-12 11:28:44 -04:00
jason hoerner
d15b1426d0 Scene Capture Cube: fix for severe artifacts in volumetric cloud rendering, and possibly other artifacts. The artifacts are caused by the temporal volumetric cloud effect not having a separate history per cube map face.
* Each cube map face gets its own FSceneViewState.  The downside is that it potentially could add a lot of extra memory.  So some memory optimizations were made to compensate.
* Global distance field data is shared for all cube map faces.  This data is only dependent on the view origin, which is invariant for the cube map faces.  A mechanism was added to allow cross view state data sharing for shared origin views.  This saves 8.5 MB, and improves perf.
* Disabled distance field lighting temporal AO for cube map capture.  The AO history texture in the view state is dependent on the Scene texture extents, which is typically the front buffer size, which then gets multiplied by 6.  For a 1080p front buffer, this is 24 MB, while for a 4K front buffer, this is 96 MB, regardless of the resolution of the cube map capture itself.  A 256x256 cube map capture, including all the auxiliary state, is otherwise only around 9 MB, so this is an order of magnitude increase.  A comment in the function "DistanceFieldAOUseHistory" has more details on how this could be fixed, by using the view rect rather than Scene texture extents for the history texture -- for the 256x256 case, it would reduce the incremental memory cost to 768K.

With the memory savings from disabling distance field lighting temporal AO, this change is more or less memory neutral if the Scene texture extent (front buffer) is 1080p.  A net increase of 590K.  With a higher resolution front buffer, it's a subsantial memory win.

#jira UE-151717
#rnx
#rb tiago.costa daniel.wright
#preflight 629f6a27233ae0a8f8f99932

[CL 20614815 by jason hoerner in ue5-main branch]
2022-06-11 19:06:03 -04:00
mihnea balta
b6bd0ea0ac Add missing task tag when FRDGBuilder::CreateUniformBuffers runs async.
#fyi Zach.Bethel
#preflight skip
#jira none
#rnx

[CL 20594531 by mihnea balta in ue5-main branch]
2022-06-10 09:39:51 -04:00
zach bethel
378ddb20ea Deprecated local uniform buffers now that RHICreateUniformBuffer works on any thread.
#rb kenzo.terelst
#preflight 62a224461a21ec565ca0fad9

[CL 20580156 by zach bethel in ue5-main branch]
2022-06-09 13:17:06 -04:00
zach bethel
67d0028aab Moved RDG uniform buffer creation off the render thread. Added AddSetupTask helper function for async tasks that are automatically waited on prior to execution.
#preflight 62a0d919fc5ffe569a6774c0

[CL 20560693 by zach bethel in ue5-main branch]
2022-06-08 14:00:10 -04:00
zach bethel
08528f0f52 Fixed typo in -rdgparallelexecute.
#preflight trivial

[CL 20523088 by zach bethel in ue5-main branch]
2022-06-06 13:08:58 -04:00
graham wihlidal
ca70de9156 Work in progress Nanite support for landscape
#preflight 6297a7f3a660a44a23c0c879
#rb jonathan.bard
[FYI] brian.karis, ola.olsson, michal.valient, rune.stubbe

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 20490481 via CL 20490493 via CL 20490509
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20495473 by graham wihlidal in ue5-main branch]
2022-06-03 19:13:16 -04:00
christopher waters
14ae8de4f8 Adding RHI cvars to control if bindless resources or samplers are enabled. If an RHI is configured with Bindless support, these configs will turn on the bindless defines and should control bindless heap creation.
The previous control was just setting the D3D12 bindless heap sizes; now those sizes can be set and will only be used when the RHI controls are enabled.

#jira UE-139617
#rb yuriy.odonnell, zach.bethel
#preflight 629a7fb7bf3102c6e4b6f53b

[CL 20494064 by christopher waters in ue5-main branch]
2022-06-03 18:12:17 -04:00
Zak Middleton
f6067e1851 #ue5 - TruncToInt(double) and similar *ToInt(double) functions now return int64 rather than int32. Fixed up existing uses of *ToInt(double) functions to use explicit *ToInt32(double) where old result type was expected to be int32.
Enabled overloads of Max() and Min() with mixed signed integral arguments (promoting to largest type). Unsigned are not allowed to implicitly mix.
Added explicit overload of Clamp(int64, int32, int32) => int64 to allow for easier upgrades, and once type truncation warnings are enabled in more modules they can be evaluated per-case.


#jira UE-124808
#preflight 6297a9b0e809e387be231e60
#rb Andy.Davidson

[CL 20456547 by Zak Middleton in ue5-main branch]
2022-06-01 14:56:52 -04:00
Johan Berg
71a33b5f69 Allow users to opt-out of default crash handling.
This change allows users to opt-out of the engines default crash handling. Currently only implemented on Windows where the SEH code forwards the exception to externally registered handlers.

Thanks to Kristj�n Valur J�nsson for PR.

#rb patrick.laflamme
#preflight 62977779101592b80503b809

[CL 20452469 by Johan Berg in ue5-main branch]
2022-06-01 10:48:03 -04:00
guillaume abadie
6aa3e60ba3 Fixes VisualizeTexture not visualizing Texture2DArray's slices
#rb trivial
#preflight 6295e710926be5fb68ab8d37

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20436510 via CL 20436511 via CL 20436521
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448582 by guillaume abadie in ue5-main branch]
2022-06-01 03:50:53 -04:00
Guillaume Abadie
bf28d22c62 Fixes crash in Dynamic Resolution with -ExecCmds="stat unitgraph"
#rb trivial
#jira none
#preflight trivial
#preflight 62948c337149e31ace6fe941

[CL 20429419 by Guillaume Abadie in ue5-main branch]
2022-05-30 05:39:47 -04:00
jeremy moore
925a8fe75c Fix some items rendering to a separate velocity pass when base velocity pass is used with r.SelectiveBasePassOutputs.
This logic took primitives with a material using static lighting and moved velocity writing to a second pass.
Seems like that is some old behavior and after asking around it isn't well known why we had it.
Anyway it's not good to pay the cost of that second pass, so removing that.
#preflight 628fd8f574630984fd4d4464

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 20392160 via CL 20392172 via CL 20392182
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20398501 by jeremy moore in ue5-main branch]
2022-05-27 16:44:41 -04:00
Guillaume Abadie
2a0978a831 Fixes linking failure on shipping in render graph
#rb trivial
#jira UE-154236
#preflight trivial

[CL 20380402 by Guillaume Abadie in ue5-main branch]
2022-05-26 12:09:03 -04:00
zach bethel
fba0d17713 Removed GetUAV from IPooledRenderTarget.
#preflight 628e8986af7a2e956bd802bc

[CL 20379501 by zach bethel in ue5-main branch]
2022-05-26 11:00:52 -04:00