notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
psx_gpu: partial interlace mode support
[pcsx_rearmed.git]
/
plugins
/
gpu_neon
/
gpu.c
diff --git
a/plugins/gpu_neon/gpu.c
b/plugins/gpu_neon/gpu.c
index
4fc2897
..
02dd372
100644
(file)
--- a/
plugins/gpu_neon/gpu.c
+++ b/
plugins/gpu_neon/gpu.c
@@
-270,10
+270,13
@@
static void start_vram_transfer(uint32_t pos_word, uint32_t size_word, int is_re
gpu.dma.h = size_word >> 16;
gpu.dma.offset = 0;
gpu.dma.h = size_word >> 16;
gpu.dma.offset = 0;
- if (is_read)
+ renderer_flush_queues();
+ if (is_read) {
gpu.status.img = 1;
gpu.status.img = 1;
+ // XXX: wrong for width 1
+ memcpy(&gpu.gp0, VRAM_MEM_XY(gpu.dma.x, gpu.dma.y), 4);
+ }
else {
else {
- renderer_flush_queues();
renderer_invalidate_caches(gpu.dma.x, gpu.dma.y, gpu.dma.w, gpu.dma.h);
}
renderer_invalidate_caches(gpu.dma.x, gpu.dma.y, gpu.dma.w, gpu.dma.h);
}
@@
-467,15
+470,17
@@
void GPUreadDataMem(uint32_t *mem, int count)
uint32_t GPUreadData(void)
{
uint32_t GPUreadData(void)
{
-
log_io("gpu_read\n")
;
+
uint32_t ret
;
if (unlikely(gpu.cmd_len > 0))
flush_cmd_buffer();
if (unlikely(gpu.cmd_len > 0))
flush_cmd_buffer();
+ ret = gpu.gp0;
if (gpu.dma.h)
if (gpu.dma.h)
- do_vram_io(&
gpu.gp0
, 1, 1);
+ do_vram_io(&
ret
, 1, 1);
- return gpu.gp0;
+ log_io("gpu_read %08x\n", ret);
+ return ret;
}
uint32_t GPUreadStatus(void)
}
uint32_t GPUreadStatus(void)
@@
-528,4
+533,8
@@
long GPUfreeze(uint32_t type, struct GPUFreeze *freeze)
return 1;
}
return 1;
}
+void GPUvBlank(int is_vblank, int lcf)
+{
+}
+
// vim:shiftwidth=2:expandtab
// vim:shiftwidth=2:expandtab