40 Commits

Author SHA1 Message Date
rune stubbe
1ce4f32846 Temporary workaround for Nanite geometry corruption
#rb kevin.ortegren

[CL 37182155 by rune stubbe in 5.5 branch]
2024-10-16 11:51:09 -04:00
serge bernier
f3620d4994 Support Dynamic shader preloading. Similar to PSOPrecaching, we can load shaders on demand instead of preloading all of them when we load the package. This reduce the memory footprint on shaders since we only load shaders that will be used for rendering. Shader preloading also support the same code logic to delay the creation of the prender proxy when the shaders are not finished loading.
Save up to 16MB on some platforms.

#rb daniele.vettorel, danny.couture, Kenzo.Terelst
#tests 66d8b4154a47dde1dd226334



#ushell-cherrypick of 36036431 by serge.bernier (first of 2 submits)

[CL 36747837 by serge bernier in 5.5 branch]
2024-10-01 17:48:22 -04:00
graham wihlidal
3f83db7963 Enable Nanite software VRS (contrast adaptive) on all appropriate platforms by default now
#rb christopher.fiala
[FYI] brian.karis, rune.stubbe, jamie.hayes

[CL 36454500 by graham wihlidal in 5.5 branch]
2024-09-19 17:55:31 -04:00
erica stella
49e49fb6fd Added movable point lights dynamic shadows in mobile forward renderer
#jira UE-211646
#rb Dmitriy.Dyomin, Florin.Pascu

[CL 36004303 by erica stella in ue5-main branch]
2024-09-04 08:00:07 -04:00
bob tellez
f363f1bdc3 [Backout] - CL35965427
[FYI] erica.stella
Original CL Desc
-----------------------------------------------------------------
Added movable point lights dynamic shadows in mobile forward renderer

#jira UE-211646
#rb Dmitriy.Dyomin, Florin.Pascu

[CL 35974859 by bob tellez in ue5-main branch]
2024-09-03 14:41:29 -04:00
erica stella
cdfe4f12af Added movable point lights dynamic shadows in mobile forward renderer
#jira UE-211646
#rb Dmitriy.Dyomin, Florin.Pascu

[CL 35965433 by erica stella in ue5-main branch]
2024-09-03 09:20:10 -04:00
kenzo terelst
aa7743a524 Support for dynamic grow of d3d12 bindless descriptor heap allocator
[CL 34781955 by kenzo terelst in ue5-main branch]
2024-07-08 04:42:05 -04:00
kenzo terelst
bfee3138c3 Double D3D12.Bindless.ResourceDescriptorHeapSize to fix running out of bindless handles until dynamic descriptor heap size is supported (temporary workaround)
#rb christopher.waters

[CL 34684976 by kenzo terelst in ue5-main branch]
2024-06-26 14:50:21 -04:00
tiago costa
2d07b192eb Changes to r.RayTracing.EnableOnDemand to work with offline data.
- moved ownership of RayTracingGeometry from FStaticMeshLODResources to FStaticMeshRayTracingProxyLOD so offline data can be streamed-in when ray tracing is toggled on.
- request streaming of ray tracing geometry when it is initally registered or FirstLODIndex changes.
- moved call to ProcessCompletedStreamingRequests(...) so it in every code path of FRayTracingGeometryManager::Tick(...)
- enabled r.RayTracing.EnableOnDemand by default on all platforms.

#rb aleksander.netzel

[CL 34416694 by tiago costa in ue5-main branch]
2024-06-17 05:45:28 -04:00
tiago costa
6ac6fb1465 Enable COMPILE_DYNAMIC_FRAME_TIME on all platforms.
- disable r.DynamicRes.DynamicFrameTime by default and only enable on Windows to maintain same behaviour.

#rb Guillaume.Abadie

[CL 34104175 by tiago costa in ue5-main branch]
2024-06-04 15:37:28 -04:00
tiago costa
4b7fccdfac Enable r.RayTracing.EnableOnDemand by default on Windows.
[FYI] aleksander.netzel

[CL 32978039 by tiago costa in ue5-main branch]
2024-04-15 18:17:58 -04:00
kenzo terelst
a7e0d62c3d Enable PSO precaching for global compute shaders by default on Windows
[CL 32466188 by kenzo terelst in ue5-main branch]
2024-03-25 06:02:12 -04:00
rune stubbe
79573f21b4 Enable r.Nanite.Streaming.ReservedResources on Windows
#rb yuriy.odonnell
[FYI] brian.karis, graham.wihlidal, jamie.hayes, ben.woodhouse

[CL 32297488 by rune stubbe in ue5-main branch]
2024-03-18 07:24:23 -04:00
christopher waters
565a78058a D3D12 Bindless Resources with CPU managed descriptor heap updates
- D3D12 PC Bindless needs descriptor heaps managed on the CPU; we cannot update them on the GPU timeline.
- Each context now has a FD3D12ContextBindlessState that contains the per-context GPU descriptor heap as well as descriptor rollbacks to apply to the heap before submission.
- We have to roll descriptors back to their values before the incoming view updates were applied so that we can leverage the CPU heap copy at all times. This isn't deferring the updates; it's storing the values before the updates and making sure the heap is used with those values.
- When a context encounters a draw/dispatch and there were any descriptor updates, the previously used heap is updated with the correct set of descriptors before a new heap is created for the subsequent draws/dispatches.

Additional changes
- Allowing RHIs to override FRHITextureReference for custom bindless implementations.
- Adding FRHIDescriptorAllocator::GetAllocatedRange to allow managers to find the smallest range of descriptors that need to be copied to new heaps.
- DescriptorCache now holds reference counted pointers to the bindless heaps to avoid potential use after free scenarios.
- Adding ED3D12DescriptorHeapFlags to mirror D3D12_DESCRIPTOR_HEAP_FLAGS while adding new flags.
- Adding ability to pool descriptor heaps to avoid high OS overhead when constantly allocating new ones.
- Pooling descriptor heaps required more descriptor heap managers to implement CleanupResources.

#jira UE-162014
#rb Luke.Thatcher

[CL 30183702 by christopher waters in ue5-main branch]
2023-12-07 12:30:21 -05:00
serge bernier
7bf7dd423c Fix global usage of all cvars related to shader pipelines:
r.ShaderPipelines
r.Material.ExcludeNonPipelinedShaders

Both cvars are currently disable on WindowsEngine.ini which make them also disable when we cook for consoles. ExcludeNonPipelinedShaderTypes is currently used only at cooking time when we compile shaders which is currently returning false, since the value is disabled on windows. Making those cvars use FShaderPlatformCachedIniValue, will allow to have specific platform value when cooking for a specific target. Moving r.Material.ExcludeNonPipelinedShaders to the defaultengine.ini file to keep it disable for the moment and not affecting shader key string. Will enable it progressively on console later.


r.Shaders.RemoveUnusedInterpolators

Make that cvar platform agnostic, since it will be used in on other consoles eventually. Platforms supporting the stripping of unused interpolators will check the same flag (CFLAG_ForceRemoveUnusedInterpolators) to enable it. Since windows can run opengl, and stripping is not supported on that shader platform, add extra logic to exclude the flag.

-Make the RHISupportsShaderPipelines function access a real DDPI attribute and not just test if we are not on mobile. Will need this to be able to have stripping unused shader interpolators on Switch.

[REVIEW] Laura.Hermanns

[CL 26018371 by serge bernier in ue5-main branch]
2023-06-15 13:27:44 -04:00
Aaron McLeran
70e7c3734f Removing many vestigates of old audio engine code.
#rb Ryan.Mangin
#jira UE-144348
#preflight 6446e9d30206a6e20f49f2e7

[CL 25172786 by Aaron McLeran in ue5-main branch]
2023-04-24 18:22:37 -04:00
Yuriy ODonnell
505aa91ff3 Undo 23894521 - revert back to non-bindless samplers for DXR
* The CVar can't be used to enable bindless resources per platform

#rb christopher.waters
#preflight skip

[CL 23912269 by Yuriy ODonnell in ue5-main branch]
2023-01-30 13:26:03 -05:00
Yuriy ODonnell
0fee1ac082 Use bindless samplers for DXR on Windows by default
* The non-bindless code path is planned to be deprecated in the future engine release

#rb christopher.waters
#jira UE-171919
#preflight skip

[CL 23894521 by Yuriy ODonnell in ue5-main branch]
2023-01-27 18:20:23 -05:00
jimmy smith
b92f1fdf0d Configuration support for AudioInfos / AudioFormats per platform
#jira UE-159832
#rb Aaron.mcleran Phil.Popp Dan.Thompson Josh.Adams
#preflight 62d260033c3df323907eaa93

[CL 21153330 by jimmy smith in ue5-main branch]
2022-07-18 17:47:55 -04:00
ola olsson
b5219b04e6 Remove Geometry Shader path for point-light shadow rendering, disable point light shadows if VertexShaderLayer is not supported (at runtime).
- Add r.Shadow.DetectVertexShaderLayerAtRuntime to make it possible to force (for DX11/12/SM5/Vulkan) compilation of vslayer despite RHISupportsVertexShaderLayer being false.
- Set r.Shadow.DetectVertexShaderLayerAtRuntime in WindowsEngine.ini,WinGDKEngine.ini & LinuxEngine.ini.
- Add DoesRuntimeSupportOnePassPointLightShadows to determine support at runtime.
- Fix bug excluding Nanite meshes from DF shadows for local lights if VSM is enabled (now only affects directional lights).
- Add OnGetOnScreenMessages to enable modular generation of on-screen messages in the scene renderer (aimed at transient rendering processes).

#rb arciel.rekman,andrew.lauritzen
#jira UE-138933
#preflight 61f3c967da54035207f6e560

#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 18769670 in //UE5/Release-5.0/... via CL 18769671 via CL 18769765
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18769767 by ola olsson in ue5-main branch]
2022-01-28 06:36:41 -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
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
jonas meyer
8a6b032961 disable r.Vulkan.UploadCmdBufferSemaphore
fix a validation error on shutdown
#jira none
#rb none

#ROBOMERGE-SOURCE: CL 12232777 in //UE4/Release-4.25/... via CL 12232780
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)

[CL 12234783 by jonas meyer in Main branch]
2020-03-17 15:11:26 -04:00
arciel rekman
787d7bbaf6 Vulkan: prevent overlap between the upload and graphics cmd buffers.
- Enabled on Windows and Linux(-like) platforms only, Android behavior should be unchaged.
- Perf testing inconclusive, from slight improvement to lower dips in the FPS. The main goal is correctness though.

#rb Rolando.Caloca, Dmitriy.Dyomin, Jonas.Meyer
[FYI] Rolando.Caloca, Jonas.Meyer, Dmitriy.Dyomin, Michael.Sartain, Brandon.Schaefer
#jira originally UE-86149

#ROBOMERGE-SOURCE: CL 12025149 in //UE4/Release-4.25/... via CL 12025157
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 12025188 by arciel rekman in Main branch]
2020-03-06 17:45:45 -05:00