summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
diff options
context:
space:
mode:
authorGravatar Fernando S2022-01-03 00:39:59 +0100
committerGravatar GitHub2022-01-03 00:39:59 +0100
commitae7da0b12dd8aef115d741eb60d00ddf8ed357df (patch)
tree09d269fe3838d1f8aa5672d2af06cbeb9b45d81f /src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
parentMerge pull request #7659 from ameerj/overlap-overflow (diff)
parentglsl: Add boolean reference workaround (diff)
downloadyuzu-ae7da0b12dd8aef115d741eb60d00ddf8ed357df.tar.gz
yuzu-ae7da0b12dd8aef115d741eb60d00ddf8ed357df.tar.xz
yuzu-ae7da0b12dd8aef115d741eb60d00ddf8ed357df.zip
Merge pull request #7629 from ameerj/nv-driver-fixes
shaders: Add fixes for NVIDIA drivers 495+
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_glsl_special.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_special.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
index b8ddafe48..fcf620b79 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
@@ -90,7 +90,9 @@ void EmitPhiMove(EmitContext& ctx, const IR::Value& phi_value, const IR::Value&
90 if (phi_reg == val_reg) { 90 if (phi_reg == val_reg) {
91 return; 91 return;
92 } 92 }
93 ctx.Add("{}={};", phi_reg, val_reg); 93 const bool needs_workaround{ctx.profile.has_gl_bool_ref_bug && phi_type == IR::Type::U1};
94 const auto suffix{needs_workaround ? "?true:false" : ""};
95 ctx.Add("{}={}{};", phi_reg, val_reg, suffix);
94} 96}
95 97
96void EmitPrologue(EmitContext& ctx) { 98void EmitPrologue(EmitContext& ctx) {