Pica/VertexShader: Fix a bug in the call stack handling.

master
Tony Wasserka 2014-08-23 14:14:34 +07:00
parent b5b3aeb576
commit 697b50c3ff
1 changed files with 3 additions and 2 deletions

@ -191,8 +191,9 @@ static void ProcessShaderCode(VertexShaderState& state) {
if (*state.call_stack_pointer == VertexShaderState::INVALID_ADDRESS) { if (*state.call_stack_pointer == VertexShaderState::INVALID_ADDRESS) {
exit_loop = true; exit_loop = true;
} else { } else {
state.program_counter = &shader_memory[*state.call_stack_pointer--]; // Jump back to call stack position, invalidate call stack entry, move up call stack pointer
*state.call_stack_pointer = VertexShaderState::INVALID_ADDRESS; state.program_counter = &shader_memory[*state.call_stack_pointer];
*state.call_stack_pointer-- = VertexShaderState::INVALID_ADDRESS;
} }
break; break;