diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 960ebf1a1..f695ee1db 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -1538,7 +1538,9 @@ private: | |||
| 1538 | Expression target; | 1538 | Expression target; |
| 1539 | if (const auto gpr = std::get_if<GprNode>(&*dest)) { | 1539 | if (const auto gpr = std::get_if<GprNode>(&*dest)) { |
| 1540 | if (gpr->GetIndex() == Register::ZeroIndex) { | 1540 | if (gpr->GetIndex() == Register::ZeroIndex) { |
| 1541 | // Writing to Register::ZeroIndex is a no op | 1541 | // Writing to Register::ZeroIndex is a no op but we still have to visit the source |
| 1542 | // as it might have side effects. | ||
| 1543 | code.AddLine("{};", Visit(src).GetCode()); | ||
| 1542 | return {}; | 1544 | return {}; |
| 1543 | } | 1545 | } |
| 1544 | target = {GetRegister(gpr->GetIndex()), Type::Float}; | 1546 | target = {GetRegister(gpr->GetIndex()), Type::Float}; |
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index 808a265e5..1749e068e 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | |||
| @@ -1361,7 +1361,9 @@ private: | |||
| 1361 | Expression target{}; | 1361 | Expression target{}; |
| 1362 | if (const auto gpr = std::get_if<GprNode>(&*dest)) { | 1362 | if (const auto gpr = std::get_if<GprNode>(&*dest)) { |
| 1363 | if (gpr->GetIndex() == Register::ZeroIndex) { | 1363 | if (gpr->GetIndex() == Register::ZeroIndex) { |
| 1364 | // Writing to Register::ZeroIndex is a no op | 1364 | // Writing to Register::ZeroIndex is a no op but we still have to visit its source |
| 1365 | // because it might have side effects. | ||
| 1366 | Visit(src); | ||
| 1365 | return {}; | 1367 | return {}; |
| 1366 | } | 1368 | } |
| 1367 | target = {registers.at(gpr->GetIndex()), Type::Float}; | 1369 | target = {registers.at(gpr->GetIndex()), Type::Float}; |