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]
- 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]
- 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]
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]
* 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]
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]
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]
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]
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]