gpu_neon: rework buffering to reduce flickering
[pcsx_rearmed.git] / plugins / gpu_senquack / gpulib_if.cpp
index c8452a3..e5a51aa 100644 (file)
@@ -144,6 +144,10 @@ void renderer_notify_res_change(void)
   */
 }
 
+void renderer_notify_scanout_change(int x, int y)
+{
+}
+
 #ifdef USE_GPULIB
 // Handles GP0 draw settings commands 0xE1...0xE6
 static void gpuGP0Cmd_0xEx(gpu_senquack_t &gpu_senquack, u32 cmd_word)
@@ -226,10 +230,10 @@ int do_cmd_list(u32 *list, int list_len, int *last_cmd)
   gpu_senquack.ilace_mask = gpu_senquack.config.ilace_force;
 
 #ifdef HAVE_PRE_ARMV7 /* XXX */
-  gpu_senquack.ilace_mask |= gpu.status.interlace;
+  gpu_senquack.ilace_mask |= !!(gpu.status & PSX_GPU_STATUS_INTERLACE);
 #endif
   if (gpu_senquack.config.scale_hires) {
-    gpu_senquack.ilace_mask |= gpu.status.interlace;
+    gpu_senquack.ilace_mask |= !!(gpu.status & PSX_GPU_STATUS_INTERLACE);
   }
 
   for (; list < list_end; list += 1 + len)
@@ -571,11 +575,11 @@ int do_cmd_list(u32 *list, int list_len, int *last_cmd)
         gpuDrawS(packet, driver);
       } break;
 
+#ifdef TEST
       case 0x80:          //  vid -> vid
         gpuMoveImage(packet);
         break;
 
-#ifdef TEST
       case 0xA0:          //  sys -> vid
       {
         u32 load_width = list[2] & 0xffff;
@@ -588,8 +592,9 @@ int do_cmd_list(u32 *list, int list_len, int *last_cmd)
       case 0xC0:
         break;
 #else
-      case 0xA0:          //  sys ->vid
-      case 0xC0:          //  vid -> sys
+      case 0x80 ... 0x9F:          //  vid -> vid
+      case 0xA0 ... 0xBF:          //  sys -> vid
+      case 0xC0 ... 0xDF:          //  vid -> sys
         // Handled by gpulib
         goto breakloop;
 #endif
@@ -613,7 +618,7 @@ void renderer_sync_ecmds(uint32_t *ecmds)
   do_cmd_list(&ecmds[1], 6, &dummy);
 }
 
-void renderer_update_caches(int x, int y, int w, int h)
+void renderer_update_caches(int x, int y, int w, int h, int state_changed)
 {
 }