diff options
author | notaz | 2011-08-13 02:13:13 +0300 |
---|---|---|
committer | notaz | 2011-08-13 02:15:08 +0300 |
commit | 5b745e5bbcb51267122821ed9dc1c8c2c77dc100 (patch) | |
tree | 32e183e310e5b3877f0f5928e55ef974a57b0b51 /plugins/gpu_neon/gpu.c | |
parent | 19e7cf877b6a925517238c59485edf5fe85bf2a1 (diff) | |
download | pcsx_rearmed-5b745e5bbcb51267122821ed9dc1c8c2c77dc100.tar.gz pcsx_rearmed-5b745e5bbcb51267122821ed9dc1c8c2c77dc100.tar.bz2 pcsx_rearmed-5b745e5bbcb51267122821ed9dc1c8c2c77dc100.zip |
gpu_neon: handle 0xEx cmds while frameskiping
otherwise things go out of sync
Diffstat (limited to 'plugins/gpu_neon/gpu.c')
-rw-r--r-- | plugins/gpu_neon/gpu.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/gpu_neon/gpu.c b/plugins/gpu_neon/gpu.c index 2db4379..03b0c71 100644 --- a/plugins/gpu_neon/gpu.c +++ b/plugins/gpu_neon/gpu.c @@ -328,11 +328,12 @@ static int check_cmd(uint32_t *data, int count) start_vram_transfer(data[pos + 1], data[pos + 2], cmd == 0xc0); pos += len; } - - if (cmd == -1) + else if (cmd == -1) break; } + if (gpu.frameskip.active) + renderer_sync_ecmds(gpu.ex_regs); gpu.state.fb_dirty |= vram_dirty; return count - pos; @@ -498,6 +499,7 @@ long GPUfreeze(uint32_t type, GPUFreeze_t *freeze) gpu.regs[i] ^= 1; // avoid reg change detection GPUwriteStatus((i << 24) | (gpu.regs[i] ^ 1)); } + renderer_sync_ecmds(gpu.ex_regs); break; } |