diff options
| author | bunnei <bunneidev@gmail.com> | 2020-05-25 21:31:33 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-25 21:31:33 -0400 |
| commit | 86345c126acc80a6019abb9be77359f7e6bb0f27 (patch) | |
| tree | 5e983c6c1ac295bfcce992efbe623bfc0e25a329 /src/video_core/renderer_opengl | |
| parent | 1adabdac7fa0c5804b0472fa1cd215efaecd119b (diff) | |
| parent | ed4e3249917c5991fd515ff846ae4b52b99153fb (diff) | |
Merge pull request #3978 from ReinUsesLisp/write-rz
shader_decompiler: Visit source nodes even when they assign to RZ
Diffstat (limited to 'src/video_core/renderer_opengl')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index c83a08d42..84ca830f4 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: Expression target; if (const auto gpr = std::get_if<GprNode>(&*dest)) { if (gpr->GetIndex() == Register::ZeroIndex) { - // Writing to Register::ZeroIndex is a no op + // Writing to Register::ZeroIndex is a no op but we still have to visit the source + // as it might have side effects. + code.AddLine("{};", Visit(src).GetCode()); return {}; } target = {GetRegister(gpr->GetIndex()), Type::Float}; |
