aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpulib
diff options
context:
space:
mode:
authornotaz2012-03-02 23:11:45 +0200
committernotaz2012-03-02 23:11:45 +0200
commit1e07f71d8e8645f9060fcb2ed13f4cb4e0267982 (patch)
tree16cb12dd434c005997dbbfca24f536c36af5ac78 /plugins/gpulib
parent966c128ddcf8b31154d8d2afe62088b3b8f58b4a (diff)
downloadpcsx_rearmed-1e07f71d8e8645f9060fcb2ed13f4cb4e0267982.tar.gz
pcsx_rearmed-1e07f71d8e8645f9060fcb2ed13f4cb4e0267982.tar.bz2
pcsx_rearmed-1e07f71d8e8645f9060fcb2ed13f4cb4e0267982.zip
gpulib: yet another frameskip hack
or should I call it heuristic?
Diffstat (limited to 'plugins/gpulib')
-rw-r--r--plugins/gpulib/gpu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/plugins/gpulib/gpu.c b/plugins/gpulib/gpu.c
index df0099c..aefd53b 100644
--- a/plugins/gpulib/gpu.c
+++ b/plugins/gpulib/gpu.c
@@ -397,7 +397,8 @@ static noinline int do_cmd_buffer(uint32_t *data, int count)
continue;
}
- if (gpu.frameskip.active && gpu.frameskip.allow)
+ // 0xex cmds might affect frameskip.allow, so pass to do_cmd_list_skip
+ if (gpu.frameskip.active && (gpu.frameskip.allow || ((data[pos] >> 24) & 0xf0) == 0xe0))
pos += do_cmd_list_skip(data + pos, count - pos, &cmd);
else {
pos += do_cmd_list(data + pos, count - pos, &cmd);