#rb Sebastien.Hillaire
#jira UE-186066, UE-193202
#rnx
#lockdown Michal.Valient
#ushell-cherrypick of 26774226 by Laura.Hermanns
[CL 27208751 by Laura Hermanns in 5.3 branch]
- PC previews of SM6 platforms weren't going to DXC correctly.
- Preview platform include paths weren't initialized when compiling with local-only shader compiles.
- A few preview platform DDSPI settings weren't being initialized correctly based on the capabilites of the preview format.
#rb arciel.rekman, dan.elksnitis
[CL 26587878 by christopher waters in 5.3 branch]
- Setting FXC="..." is different from setting "FXC=...", the former will break uses of just %FXC% when the path has spaces in it.
- Switching to all "FXC=..." and "%FXC%" to make the variable consistent.
- Tweaking the bat file formatting inside of D3DShaderCompiler to make it more readable.
#rb dan.elksnitis
[CL 25853249 by christopher waters in ue5-main branch]
- add new fields to FShaderCompilerOutput which should be populated with the shader source and entry point name if modified by a backend compile process (in a format implementing the independent preprocessing API). this is intended to supercede "OptionalFinalShaderSource" for such shader formats, as well as being used as the source for preprocessed debug dumps when enabled.
- modify the PCD3D shader format to use these fields as intended (and so fix the debug output for pipelines which remove unused interpolators to match the final modified source).
#rb Laura.Hermanns
#preflight 64777f850848b7126dda194c
[CL 25706448 by dan elksnitis in ue5-main branch]
We don't want to restrict other shaders to resource binding tier 2 or higher even for CFLAG_ForceDXC or CFLAG_WaveOperations.
Invalidating PCD3D_SM5 and PCD3D_SM6 shaders.
#rb yuriy.odonnell
#preflight 646cd8d764351d76f32b449c
[CL 25585973 by christopher waters in ue5-main branch]
- 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]
- Changes focused around making our DXC interface less dependent on FXC flags.
- Moving FDxcArguments to D3DShaderCompilerDXC
- Making FDxcArguments depend on FShaderCompilerInput instead of reinterpreting the FXC API arguments.
- Changing DXC arguments to use "-" prefix instead of "/"
#rb dan.elksnitis
#preflight 643efd109566b6145063e5d7
[CL 25094077 by christopher waters in ue5-main branch]
This was originally added to have parity between Vulkan and D3D12, but it only emitted a debug file and wasn't even feeding the rewritten HLSL back into the D3D compiler.
In an effort to be independent of the DXC rewriter, this is a first step as this rewriter invocation served solely a debugging purpose anyway.
#rb Dan.Elksnitis
#fyi Jason.Nadro, Rolando.Caloca
#jira none
#preflight 642ddad58f078cc7031925d3
[CL 24936708 by Laura Hermanns in ue5-main branch]
- Adding correct handling for bindless uniform buffer parameters.
- Reworking RHITextureReference creation to allow the RHI to create them differently, especially with bindless views.
- Adding RHITextureReference bindless view updates to D3D12RHI.
#jira UE-162014
#rb mihnea.balta, jeannoe.morissette
#preflight 642dba03c6769c6082f592f6
[CL 24936647 by christopher waters in ue5-main branch]