diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-05-07 14:15:55 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2021-05-07 14:15:55 +0300 |
commit | b8115ffbe096bfe8ad979d40bb7480aed06226c6 (patch) | |
tree | 96c651dca2185f14851a793b702809e240369a23 /spirv_hlsl.cpp | |
parent | e47a30e807990c6fe1998c9c4f291d825f043557 (diff) |
HLSL: Implement invariant as precise.
Only option we have.
Diffstat (limited to 'spirv_hlsl.cpp')
-rw-r--r-- | spirv_hlsl.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/spirv_hlsl.cpp b/spirv_hlsl.cpp index 1d08251a..9435c4e0 100644 --- a/spirv_hlsl.cpp +++ b/spirv_hlsl.cpp @@ -570,7 +570,7 @@ void CompilerHLSL::emit_builtin_outputs_in_struct() switch (builtin) { case BuiltInPosition: - type = "float4"; + type = is_position_invariant() && backend.support_precise_qualifier ? "precise float4" : "float4"; semantic = legacy ? "POSITION" : "SV_Position"; break; @@ -818,8 +818,8 @@ string CompilerHLSL::to_interpolation_qualifiers(const Bitset &flags) res += "patch "; // Seems to be different in actual HLSL. if (flags.get(DecorationSample)) res += "sample "; - if (flags.get(DecorationInvariant)) - res += "invariant "; // Not supported? + if (flags.get(DecorationInvariant) && backend.support_precise_qualifier) + res += "precise "; // Not supported? return res; } |