Instead make the output VelocityPrevScreenPosition interpolant INVARIANT which is a better match for the other approaches to INVARIANT in the shader code.
Initially the USE_WPO_PRECISE code was added for DXBC only, to prevent mismatch between depth and base pass. This type of error was later more widely fixed by 19392831.
This fix led to another need for USE_WPO_PRECISE. That came from the output position now being (correctly) INVARIANT but the output VelocityPrevScreenPosition didn't have INVARIANT. This could lead to very different calculations between current and previous position and therefore incorrect velocity vectors.
#preflight 62755e8be31cfc52d5c5d21d
[CL 20080347 by Jeremy Moore in ue5-main branch]
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.
#jira none
#rb mihnea.balta
#preflight 626c1762ce3959ce8fe7766e
[CL 20026049 by christopher waters in ue5-main branch]
Use MakePrecise() on WPO
This was happening for FXC compiler but not DXC compiler.
It was causing broken velocity vectors, and broken editor outlines on SM6.
#preflight 6260629add47b4ad2180eb83
[CL 19837321 by Jeremy Moore in ue5-main branch]
- backing out due to assertions in Vulkan shader compiler
- constant buffer renaming causes failures to lookup parameter name
#preflight 625f6ed5e239763df51ba585
#fyi christopher.waters
Original CL Desc
-----------------------------------------------------------------
Migrating back to using UniformBuffer structs.
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.
#jira none
#rb kenzo.terelst
#preflight 625edc5f034d8924cdcc35e2
[CL 19825755 by eric mcdaniel in ue5-main branch]
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.
#jira none
#rb kenzo.terelst
#preflight 625edc5f034d8924cdcc35e2
[CL 19813742 by christopher waters in ue5-main branch]
This is a prerequisite for upcoming bindless changes as it centralizes key points where we register the different binding types.
#jira none
#rb jason.nadro, eric.mcdaniel, jeannoe.morissette
#preflight 62574453f7476d662c8dd2fe
[CL 19761676 by christopher waters in ue5-main branch]
- This fixes an issue where all SM6 compiles were reporting 0 instructions.
#rb christopher.waters
#jira FORT-468097
#preflight none
[CL 19742347 by Jason Nadro in ue5-main branch]
This unifies a few Performance Mode settings together and now allows a project to restrict D3D12 to SM6 only.
#rb mihnea.balta, josh.adams
#preflight 622f83adc51b66df4c210b1e
#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 19376538 via CL 19376631
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19378054 by christopher waters in ue5-main branch]
DXC is missing some override of select()
DXC's -spirv is missing and() and or() intrinsics
Fixes CFLAG_WarningsAsErrors that would cause a compilation failure if rewritted HLSL for FXC had warning
Adds a COMPILER_SUPPORTS_HLSL2021
#rb rune.stubbe
#preflight 622aaaf2f44b0772ad9f743a
#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 19352013 via CL 19352023
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19356591 by guillaume abadie in ue5-main branch]