diff options
-rw-r--r-- | plugins/gpu_neon/gpu.c | 2 | ||||
-rw-r--r-- | plugins/gpu_neon/gpu.h | 1 | ||||
-rw-r--r-- | plugins/gpu_neon/vout_fb.c | 2 | ||||
-rw-r--r-- | plugins/gpu_neon/vout_sdl.c | 2 |
4 files changed, 6 insertions, 1 deletions
diff --git a/plugins/gpu_neon/gpu.c b/plugins/gpu_neon/gpu.c index 4b18106..c68e81c 100644 --- a/plugins/gpu_neon/gpu.c +++ b/plugins/gpu_neon/gpu.c @@ -359,7 +359,7 @@ static int check_cmd(uint32_t *data, int count) return count - pos; } -static void flush_cmd_buffer(void) +void flush_cmd_buffer(void) { int left = check_cmd(gpu.cmd_buffer, gpu.cmd_len); if (left > 0) diff --git a/plugins/gpu_neon/gpu.h b/plugins/gpu_neon/gpu.h index 3b3e1de..c761bd6 100644 --- a/plugins/gpu_neon/gpu.h +++ b/plugins/gpu_neon/gpu.h @@ -87,6 +87,7 @@ struct psx_gpu { extern struct psx_gpu gpu; extern const unsigned char cmd_lengths[256]; +void flush_cmd_buffer(void); void do_cmd_list(uint32_t *list, int count); diff --git a/plugins/gpu_neon/vout_fb.c b/plugins/gpu_neon/vout_fb.c index b84a86b..a45b5f1 100644 --- a/plugins/gpu_neon/vout_fb.c +++ b/plugins/gpu_neon/vout_fb.c @@ -101,6 +101,8 @@ void GPUupdateLace(void) gpu.frameskip.frame_ready = 0; } + if (gpu.cmd_len > 0) + flush_cmd_buffer(); renderer_flush_queues(); check_mode_change(); if (cbs->pl_vout_raw_flip) diff --git a/plugins/gpu_neon/vout_sdl.c b/plugins/gpu_neon/vout_sdl.c index 53ed197..0830c56 100644 --- a/plugins/gpu_neon/vout_sdl.c +++ b/plugins/gpu_neon/vout_sdl.c @@ -80,6 +80,8 @@ static void blit(void) void GPUupdateLace(void) { if (!gpu.status.blanking && gpu.state.fb_dirty) { + if (gpu.cmd_len > 0) + flush_cmd_buffer(); renderer_flush_queues(); blit(); gpu.state.fb_dirty = 0; |