X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpu_neon%2Funai_if.cpp;h=8917f2a304ab0e816cce88c4b6f932a6e62f022c;hp=488d26c2335c8a4d9b4bb7189125244dc3967fac;hb=5d834c089ea695dba7643cba8686ce2ac06d8db4;hpb=8aea5f5ac9382379622991974bded6b08f328ddc diff --git a/plugins/gpu_neon/unai_if.cpp b/plugins/gpu_neon/unai_if.cpp index 488d26c2..8917f2a3 100644 --- a/plugins/gpu_neon/unai_if.cpp +++ b/plugins/gpu_neon/unai_if.cpp @@ -39,10 +39,10 @@ #define FRAME_HEIGHT 512 #define FRAME_OFFSET(x,y) (((y)<<10)+(x)) -static bool isSkip = false; /* skip frame (info coming from GPU) */ -static int linesInterlace = 0; /* internal lines interlace */ - +#define isSkip 0 /* skip frame (info coming from GPU) */ #define alt_fps 0 +static int linesInterlace; /* internal lines interlace */ +static int force_interlace; static bool light = true; /* lighting */ static bool blend = true; /* blending */ @@ -165,9 +165,13 @@ extern const unsigned char cmd_lengths[256]; void do_cmd_list(unsigned int *list, int list_len) { unsigned int cmd, len; - unsigned int *list_end = list + list_len; + linesInterlace = force_interlace; +#ifndef __ARM_ARCH_7A__ /* XXX */ + linesInterlace |= gpu.status.interlace; +#endif + for (; list < list_end; list += 1 + len) { cmd = *list >> 24; @@ -231,6 +235,18 @@ void do_cmd_list(unsigned int *list, int list_len) break; } +#ifdef TEST + case 0xA0: // sys -> vid + { + u32 load_width = list[2] & 0xffff; + u32 load_height = list[2] >> 16; + u32 load_size = load_width * load_height; + + len += load_size / 2; + break; + } +#endif + default: unai_do_prim(cmd, list, len + 1); break; @@ -248,7 +264,7 @@ void renderer_sync_ecmds(uint32_t *ecmds) unai_do_prim(0xe6, &ecmds[6], 1); } -void renderer_invalidate_caches(int x, int y, int w, int h) +void renderer_update_caches(int x, int y, int w, int h) { } @@ -256,11 +272,20 @@ void renderer_flush_queues(void) { } +void renderer_set_interlace(int enable, int is_odd) +{ +} + +#ifndef TEST + #include "../../frontend/plugin_lib.h" void renderer_set_config(const struct rearmed_cbs *cbs) { + force_interlace = cbs->gpu_unai.lineskip; enableAbbeyHack = cbs->gpu_unai.abe_hack; light = !cbs->gpu_unai.no_light; blend = !cbs->gpu_unai.no_blend; } + +#endif