gpulib: yet another frameskip hack
authornotaz <notasas@gmail.com>
Fri, 2 Mar 2012 21:11:45 +0000 (23:11 +0200)
committernotaz <notasas@gmail.com>
Fri, 2 Mar 2012 21:11:45 +0000 (23:11 +0200)
or should I call it heuristic?

plugins/gpulib/gpu.c

index df0099c..aefd53b 100644 (file)
@@ -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);