Added checks for invalid element counts in various allocators' ResizeAllocation() functions.
[REVIEW] [at]johan.torp
#preflight 63f4e4f1500c05a624a9fe5e
#localization none
#tests preflight, local runs to ensure everything is still fine, runs with deliberately engineered huge reallocations to show that bad resizes are caught.
[CL 24404851 by steve robb in ue5-main branch]
- Fastcook disables chunking of the game content, so when a DLC is cooked against it and its content is split according to regular chunk IDs, the game can no longer find the shader libraries (that get chunk-specific names). To remedy this, chunking of the DLC shader libraries is disabled, especially given that currently the actual DLC pak file isn't split into chunks (if and when it becomes so, we will reconsider).
- Also improved logging to better understand how the libraries are getting opened, given the multitude of possibilities.
#rb Jason.Nadro
[REVIEW] [at]Jason.Nadro
#preflight 63f6ec877064074bd8e15684 , also 63f79cfdef1b24bf940d3624
[CL 24397829 by arciel rekman in ue5-main branch]
Turning bindless samplers back on for PC D3D RayTracing shaders.
#jira UE-171919
#preflight 63f6930826233b957f42b041
#rb chris.kulla
[CL 24372028 by christopher waters in ue5-main branch]
This CL address only user-facing part, i.e. Property field, view modes, tool tips, ...) mentioning Strata. All internal (host code, shaders code, CVars) still contains the 'Strata' name.
#rb sebastien.hillaire
#jira UE-175169
#preflight 63f4db68cf37615300e71db5
#lockdown juan.canada
[CL 24350396 by charles derousiers in ue5-main branch]
- Reported on UDN: when using precompiled editor binaries to package a project, their version will lag behind the game's engine version - resulting in the bundled file being rejected due to GameVersion field mismatch.
- Let's say PCBs (precompiled binaries) were compiled at CL X, you have now synced to X + 100, and you're packaging a game locally. Cooker will embed X as GameVersion of the bundled cache, but the game will check against its X+100 CL.
#rb Allan.Bentham
#jira none
#review @Allan.Bentham
#preflight none
[CL 24345564 by Arciel Rekman in ue5-main branch]
* Previously only active instances were reported, which is sometimes misleading
* The total number of instances affects the TLAS memory allocation, instance buffer building compute shader and TLAS build itself
#rb ...
#preflight 63f3feda6a22bef8c0b1e9da
#jira UE-177938
[CL 24344113 by yuriy odonnell in ue5-main branch]
* Fix incorrect reflections when using r.Lumen.Reflections.SampleSceneColorAtHit. Screen space hit points are now also discarded based on the comparison between reconstructed geometric normal and ray hit geometric normal.
* Fix surface cache sampling with hit lighting due to using detail normal instead of a geometric normal
#rb Daniel.Wright, Charles.deRousiers
#preflight 63efca0961378b7ea0361104
#jira UE-177485
#lockdown Juan.Canada
[CL 24295260 by krzysztof narkowicz in ue5-main branch]
- The config section is the DDSPI ShaderFormat of the shader platform
- BindlessResources and BindlessSamplers can be set independently
- The cvars still exist and will take precedence over the config settings.
- Renamed RHIGetBindlessResourcesConfiguration/RHIGetBindlessSamplersConfiguration to have the word "Runtime" in them to reflect that they should only be used at runtime and not when deciding if it's enabled for a shader.
#jira UE-171919
#rb jason.nadro, yuriy.odonnell, jeannoe.morissette
#preflight 63edaabd0a06073fef07655f
[CL 24282763 by christopher waters in ue5-main branch]
- Removed overrides of PostInit where applicable.
- Added GRequiredRecursiveShaders as a flags enum set by the platform RHI, which indicates which group of global shaders will be used with recursive command lists.
- Replaced calls to CreateClearReplacementShaders() in ShaderCompiler.cpp with CreateRecursiveShaders(), enqueued in a render thread command.
Fix ensure calling IsInRenderingThread() from scene renderer tasks
- The tasks may be launched inline, meaning they're still running on the render thread, so shouldn't be tagged as EParallelRenderingThread.
- Use FOptionalTaskTagScope instead of FTaskTagScope.
General cleanup of OpenGL threading.
- Removed shader proxy objects. Proxies were used to defer creation of shaders to the RHI thread. This is can be achieved simply with RHICmdList.EnqueueLambda() to defer those operations.
- The FOpenGL...RHIThreadFence types were used to fence deletion of resources on the RT. All RHI resources are deleted on the RHIT now, so there is no need to track lifetimes in this way.
- Replaced multiple uses of ALLOC_COMMAND_CL / bCanRunOnThisThread with RHICmdList.EnqueueLambda().
Removed types and functions:
- FOpenGLAssertRHIThreadFence
- FOpenGLRHIThreadResourceFence
- TOpenGLResourceProxy
- TOpenGLShaderProxy
- TIsGLProxyObject_V
- TIsGLResourceWithFence
- FOpenGLVertexShaderProxy
- FOpenGLGeometryShaderProxy
- FOpenGLPixelShaderProxy
- FOpenGLComputeShaderProxy
- CheckRHITFence()
- FOpenGLDynamicRHI::ResourceCastProxy()
- FOpenGLDynamicRHI::ResourceCast_Unfenced()
#rb Dmitriy.Dyomin, Carl.Lloyd,
#jira none
#preflight 63ee96dcd60e91569b60f743
[CL 24278699 by Luke Thatcher in ue5-main branch]
- Buffer stride isn't guaranteed to cover the indirect args, can be zero, 4, etc, or larger which will result in false positive
#rb eric.mcdaniel
#jira UE-176981
#preflight 63ebb0027d2ec3d2fddefb94
#lockdown Mihnea.Balta
[CL 24251640 by stu mckenna in ue5-main branch]
- IoStore chunks must be getting recompressed along the way. Do not trust the header info and use the IoStore chunk info instead.
#rb CM.Nordin
[REVIEW] [at]Dan.Thompson, [at]Allan.Bentham, [at]CarlMagnus.Nordin
#preflight 63ed0204e558a2dbb278ff39
[CL 24251530 by arciel rekman in ue5-main branch]
#fyi wouter.dek
The problem with this change is that late-created shader types will not be in the shadertype list and as such will not be included in the shader map even if their ShouldCompilePermutation() would return true.
Original CL Desc
-----------------------------------------------------------------
Convert shader type and parameter struct metadata from global variables to static locals to defer initialization. This allows us to create these types dynamically at startup, while keeping the rest of the infrastructure as is.
#preflight 63eca58e7d2ec3d2fd286d9a
#rb zach.bethel
[CL 24240825 by Arciel Rekman in ue5-main branch]