Commit 0f0e5b44dcf5b5e5a34e90c268c1b3db0533065e

Francisco Javier Trujillo Mata 2022-07-08T17:47:19

Increase size of pool for gsKit events

diff --git a/src/render/ps2/SDL_render_ps2.c b/src/render/ps2/SDL_render_ps2.c
index a0dc13d..25c4949 100644
--- a/src/render/ps2/SDL_render_ps2.c
+++ b/src/render/ps2/SDL_render_ps2.c
@@ -34,6 +34,10 @@
 
 /* turn black GS Screen */
 #define GS_BLACK GS_SETREG_RGBA(0x00, 0x00, 0x00, 0x80)
+/* Size of Persistent drawbuffer (Single Buffered) */
+#define RENDER_QUEUE_PER_POOLSIZE 1024 * 256 // 256K of persistent renderqueue
+/* Size of Oneshot drawbuffer (Double Buffered, so it uses this size * 2) */
+#define RENDER_QUEUE_OS_POOLSIZE 1024 * 1024 * 2 // 2048K of oneshot renderqueue
 
 typedef struct clear_vertex {
     float x;
@@ -533,6 +537,7 @@ PS2_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture)
     SDL_free(ps2_texture);
 }
 
+
 static void
 PS2_DestroyRenderer(SDL_Renderer * renderer)
 {
@@ -588,7 +593,7 @@ PS2_CreateRenderer(SDL_Window * window, Uint32 flags)
     sema.option = 0;
     vsync_sema_id = CreateSema(&sema);
     
-    gsGlobal = gsKit_init_global();
+    gsGlobal = gsKit_init_global_custom(RENDER_QUEUE_OS_POOLSIZE, RENDER_QUEUE_PER_POOLSIZE);
 
 	gsGlobal->Mode = gsKit_check_rom();
 	if (gsGlobal->Mode == GS_MODE_PAL){