Jelajahi Sumber

Includde saturation in the evaluation of the control code

Rodolfo Bogado 7 tahun lalu
induk
melakukan
bbf8d6bf01
1 mengubah file dengan 4 tambahan dan 3 penghapusan
  1. 4 3
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 4 - 3
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@@ -416,12 +416,13 @@ public:
                             u64 dest_num_components, u64 value_num_components,
                             bool is_saturated = false, bool sets_cc = false, u64 dest_elem = 0,
                             bool precise = false) {
-
-        SetRegister(reg, elem, is_saturated ? "clamp(" + value + ", 0.0, 1.0)" : value,
+        const const std::string clamped_value =
+            is_saturated ? "clamp(" + value + ", 0.0, 1.0)" : value;
+        SetRegister(reg, elem, clamped_value,
                     dest_num_components, value_num_components, dest_elem, precise);
         if (sets_cc) {
             if (reg == Register::ZeroIndex) {
-                SetConditionalCodesFromExpression(value);
+                SetConditionalCodesFromExpression(clamped_value);
             } else {
                 SetConditionalCodesFromRegister(reg, dest_elem);
             }