diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader/track.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/video_core/shader/track.cpp b/src/video_core/shader/track.cpp index a113a5868..15e22b9fa 100644 --- a/src/video_core/shader/track.cpp +++ b/src/video_core/shader/track.cpp | |||
| @@ -157,10 +157,10 @@ std::tuple<Node, u32, u32> ShaderIR::TrackCbuf(Node tracked, const NodeBlock& co | |||
| 157 | if (gpr->GetIndex() == Tegra::Shader::Register::ZeroIndex) { | 157 | if (gpr->GetIndex() == Tegra::Shader::Register::ZeroIndex) { |
| 158 | return {}; | 158 | return {}; |
| 159 | } | 159 | } |
| 160 | // Reduce the cursor in one to avoid infinite loops when the instruction sets the same | ||
| 161 | // register that it uses as operand | ||
| 162 | s64 current_cursor = cursor; | 160 | s64 current_cursor = cursor; |
| 163 | while (current_cursor > 0) { | 161 | while (current_cursor > 0) { |
| 162 | // Reduce the cursor in one to avoid infinite loops when the instruction sets the same | ||
| 163 | // register that it uses as operand | ||
| 164 | const auto [source, new_cursor] = TrackRegister(gpr, code, current_cursor - 1); | 164 | const auto [source, new_cursor] = TrackRegister(gpr, code, current_cursor - 1); |
| 165 | current_cursor = new_cursor; | 165 | current_cursor = new_cursor; |
| 166 | if (!source) { | 166 | if (!source) { |