Pica/VertexShader: Fix a bug in the call stack handling.
This commit is contained in:
parent
b5b3aeb576
commit
697b50c3ff
|
@ -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;
|
||||||
|
|
Reference in New Issue