frontend: handle double res rendering, enable on x86_64
authornotaz <notasas@gmail.com>
Thu, 15 Sep 2022 16:11:11 +0000 (19:11 +0300)
committernotaz <notasas@gmail.com>
Thu, 15 Sep 2022 17:16:20 +0000 (20:16 +0300)
configure
frontend/plat_sdl.c
frontend/plugin_lib.c

index 8ef59ce..2352ec6 100755 (executable)
--- a/configure
+++ b/configure
@@ -288,6 +288,12 @@ aarch64)
     builtin_gpu="neon"
   fi
   ;;
+x86_64)
+  enable_dynarec="no"
+  if [ "x$builtin_gpu" = "x" ]; then
+    builtin_gpu="neon"
+  fi
+  ;;
 *)
   # dynarec only available on ARM
   enable_dynarec="no"
index 5e11cf8..5f29b90 100644 (file)
@@ -147,8 +147,9 @@ void plat_init(void)
   SDL_WM_SetCaption("PCSX-ReARMed " REV, NULL);
 
   shadow_size = g_menuscreen_w * g_menuscreen_h * 2;
-  if (shadow_size < 640 * 512 * 2)
-    shadow_size = 640 * 512 * 2;
+  // alloc enough for double res. rendering
+  if (shadow_size < 1024 * 512 * 2)
+    shadow_size = 1024 * 512 * 2;
 
   shadow_fb = malloc(shadow_size);
   menubg_img = malloc(shadow_size);
index cc3576b..588f133 100644 (file)
@@ -308,6 +308,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
        unsigned char *dest = pl_vout_buf;
        const unsigned short *src = vram;
        int dstride = pl_vout_w, h1 = h;
+       int h_full = pl_vout_h - pl_vout_yoffset;
        int doffs;
 
        pcnt_start(PCNT_BLIT);
@@ -318,7 +319,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
                        pl_plat_clear();
                else
                        memset(pl_vout_buf, 0,
-                               dstride * pl_vout_h * pl_vout_bpp / 8);
+                               dstride * h_full * pl_vout_bpp / 8);
                goto out_hud;
        }
 
@@ -334,7 +335,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
                        pl_plat_clear();
                else
                        memset(pl_vout_buf, 0,
-                               dstride * pl_vout_h * pl_vout_bpp / 8);
+                               dstride * h_full * pl_vout_bpp / 8);
                clear_counter--;
        }