summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
index 0d943a826..42cf068b6 100644
--- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
+++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
@@ -1704,6 +1704,13 @@ public:
1704 return expr.value ? decomp.v_true : decomp.v_false; 1704 return expr.value ? decomp.v_true : decomp.v_false;
1705 } 1705 }
1706 1706
1707 Id operator()(const ExprGprEqual& expr) {
1708 const Id target = decomp.Constant(decomp.t_uint, expr.value);
1709 const Id gpr = decomp.BitcastTo<Type::Uint>(
1710 decomp.Emit(decomp.OpLoad(decomp.t_float, decomp.registers.at(expr.gpr))));
1711 return decomp.Emit(decomp.OpLogicalEqual(decomp.t_uint, gpr, target));
1712 }
1713
1707 Id Visit(const Expr& node) { 1714 Id Visit(const Expr& node) {
1708 return std::visit(*this, *node); 1715 return std::visit(*this, *node);
1709 } 1716 }