X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fgpu_neon%2Fpsx_gpu_if.c;h=570cc5d25de095eb575b9b8e30516c16311f4caf;hb=90ac6fed274c1d573a971c66f8a1338e8918f066;hp=ea98ade85e9de4c39f4dc170b2a5a0695c8ae389;hpb=1587b08ecb80dd257ac255f76e716a6053c2785b;p=pcsx_rearmed.git diff --git a/plugins/gpu_neon/psx_gpu_if.c b/plugins/gpu_neon/psx_gpu_if.c index ea98ade8..570cc5d2 100644 --- a/plugins/gpu_neon/psx_gpu_if.c +++ b/plugins/gpu_neon/psx_gpu_if.c @@ -39,7 +39,7 @@ sync_enhancement_buffers(int x, int y, int w, int h); static psx_gpu_struct egpu __attribute__((aligned(256))); -int do_cmd_list(uint32_t *list, int count, int *last_cmd) +int do_cmd_list(uint32_t *list, int count, int *cycles, int *last_cmd) { int ret; @@ -49,9 +49,9 @@ int do_cmd_list(uint32_t *list, int count, int *last_cmd) #endif if (gpu.state.enhancement_active) - ret = gpu_parse_enhanced(&egpu, list, count * 4, (u32 *)last_cmd); + ret = gpu_parse_enhanced(&egpu, list, count * 4, cycles, (u32 *)last_cmd); else - ret = gpu_parse(&egpu, list, count * 4, (u32 *)last_cmd); + ret = gpu_parse(&egpu, list, count * 4, cycles, (u32 *)last_cmd); #if defined(__arm__) && defined(NEON_BUILD) && !defined(SIMD_BUILD) __asm__ __volatile__("":::"q4","q5","q6","q7"); @@ -143,6 +143,9 @@ sync_enhancement_buffers(int x, int y, int w, int h) x2 = min(right, s->x + s_w); y1 = max(y, s->y); y2 = min(bottom, s->y + s_h); + // 16-byte align for the asm version + x2 += x1 & 7; + x1 &= ~7; scale2x_tiles8(dst + y1 * 1024*2 + x1 * 2, src + y1 * 1024 + x1, (x2 - x1 + 7) / 8u, y2 - y1); } @@ -150,7 +153,9 @@ sync_enhancement_buffers(int x, int y, int w, int h) void renderer_sync_ecmds(uint32_t *ecmds) { - gpu_parse(&egpu, ecmds + 1, 6 * 4, NULL); + s32 dummy0 = 0; + u32 dummy1 = 0; + gpu_parse(&egpu, ecmds + 1, 6 * 4, &dummy0, &dummy1); } void renderer_update_caches(int x, int y, int w, int h, int state_changed)