gpu_neon: psx_gpu: try to update texture cache instead of invalidating
[pcsx_rearmed.git] / plugins / gpu_neon / psx_gpu_if.c
index 8907ac0..1c462e1 100644 (file)
 
 #include <stdio.h>
 
-#if 1
+extern const unsigned char cmd_lengths[256];
+#define command_lengths cmd_lengths
+
 #include "psx_gpu/psx_gpu.c"
-#else
-#define printf xprintf
-#define xprintf(...)
-#include "psx_gpu/psx_gpu_standard.c"
-#endif
 #include "psx_gpu/psx_gpu_parse.c"
 #include "gpu.h"
 
@@ -38,9 +35,9 @@ void renderer_sync_ecmds(uint32_t *ecmds)
   gpu_parse(&egpu, ecmds + 1, 6 * 4);
 }
 
-void renderer_invalidate_caches(int x, int y, int w, int h)
+void renderer_update_caches(int x, int y, int w, int h)
 {
-  invalidate_texture_cache_region(&egpu, x, y, x + w - 1, y + h - 1);
+  update_texture_cache_region(&egpu, x, y, x + w - 1, y + h - 1);
 }
 
 void renderer_flush_queues(void)
@@ -48,6 +45,15 @@ void renderer_flush_queues(void)
   flush_render_block_buffer(&egpu);
 }
 
+void renderer_set_interlace(int enable, int is_odd)
+{
+  egpu.interlace_mode &= ~(RENDER_INTERLACE_ENABLED|RENDER_INTERLACE_ODD);
+  if (enable)
+    egpu.interlace_mode |= RENDER_INTERLACE_ENABLED;
+  if (is_odd)
+    egpu.interlace_mode |= RENDER_INTERLACE_ODD;
+}
+
 void renderer_set_config(const struct rearmed_cbs *cbs)
 {
 }