aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2011-12-30 17:25:42 +0200
committernotaz2011-12-30 17:25:42 +0200
commitc7945666b47fa5636762bfa52cd6328125d607c4 (patch)
treec918033594edaa7b2197a7159bf2e864186d734f
parentd825e872b9b7062b9d9aff4c6b5069cfed0600de (diff)
downloadpcsx_rearmed-c7945666b47fa5636762bfa52cd6328125d607c4.tar.gz
pcsx_rearmed-c7945666b47fa5636762bfa52cd6328125d607c4.tar.bz2
pcsx_rearmed-c7945666b47fa5636762bfa52cd6328125d607c4.zip
gpu_neon: flush cmd buffer before blit too
-rw-r--r--plugins/gpu_neon/gpu.c2
-rw-r--r--plugins/gpu_neon/gpu.h1
-rw-r--r--plugins/gpu_neon/vout_fb.c2
-rw-r--r--plugins/gpu_neon/vout_sdl.c2
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;