- Support structured buffers in HLSL backend of SPIRV-Cross (PR #2143).
- Integrate SPIRV-Cross fix to forward opaque types in GLSL backend (PR #2110).
- Integrate SPIRV-Cross fix to use actual field offset to validate vec4 boundary alignment (#PR 2139).
- Integrate SPIRV-Cross fix to not restrict SV_RenderTargetArrayIndex to GS and MS (#PR 2138).
- Make SV_Position decoration as implicitly invariant optional (Used to address Z-fighting issues in Vulkan and Metal; Drastically impacts vertex shader performance on certain platforms).
- Don't force DXC for all shaders when r.Substrate is enabled.
#jira UE-174555
#rb Sebastien.Hillaire, Carl.Lloyd, Dan.Elksnitis
#fyi Brian.White, Jason.Nadro, JeaNoe.Morissette, Yuriy.Odonnell, Guillaume.Abadie
#preflight 6453d3df0e33f2d51d2b032e
[CL 25353473 by Laura Hermanns in ue5-main branch]
Added functionality to strip at ratios higher 1 out of every 2. testing shows good savings at stripping 2/3 frames on switch and in editor of around 8mb with no noticeable visual degradation.
2 Cvars added "a.Compression.UseVaribleFrameStripping" & "a.Compression.VaribleFrameStrippingRatio" which enable and change the amount of variable stripping.
In addition added 3 variables to anim sequences bOverrideVariableFrameStripping, UseVariableFrameStripping& FrameStrippingRatio; which allow you to override any stripping options on a per asset basis. mainly for the purpose of the case that a particular animation is behaving badly under higher stripping you don’t have to lower the whole platforms stripping to accommodate.
#preflight 642305be803cb466e858b86e
#rb alex.nischwitz
[CL 25343990 by nick baltis in ue5-main branch]
- Without doing this the found formats might not contain the format leading to a crash when compiling with the VVM
#rb Dan.Elksnitis
#jira UE-185063
#rnx
#preflight 645405e8023fe5d3ad3fbb52
[CL 25343124 by Stu McKenna in ue5-main branch]
* Include Nanite landscape scene proxy in the scene capture as these are the ones that are actually visible when rendering LS with Nanite support
#jira none
#rb philippe.deseve
#preflight 6453cc916538e45f752661bf
[CL 25335988 by Sebastien Lussier in ue5-main branch]
- add new IShaderFormat API for separate preprocessing and compilation; backends can implement one or the other depending on the return value of SupportsIndependentPreprocessing
- add support for executing preprocessing in the cook process prior to job submission and constructing job input hashes based on preprocessed source (and a subset of the environment used as compile inputs). controlled by a cvar for now and disabled by default
- add a BaseShaderFormat class in ShaderCompilerCommon which implements common behaviour for output of debug data - note this function is only called for formats which support independent preprocessing, so is expected to be used only by formats which have been converted to use this API
- add new cvars for output of some additional shader debug data - 1. a txt file containing the input hash a.k.a. job cache key 2. a text file containing all diagnostic messages (errors and warnings) for the job
- minor change to how input hashes are constructed for pipeline jobs - sum hashes as 256-bit ints instead of adding to a buffer and re-hashing. faster and simpler, and also more collision resistant (sum of two well distributed hashes equally well distributed)
#rb Jason.Nadro
#rb Yuriy.ODonnell
#preflight 64512c88c86798f650b953d3
[CL 25317218 by dan elksnitis in ue5-main branch]