aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authoraliaspider2015-10-03 04:42:55 +0100
committeraliaspider2015-10-03 04:42:55 +0100
commit0b7f536b486f3f411651573009c3da6063b560ea (patch)
tree2cc7fafb8005ee9181404e68e6cce3d1de1bf0fa /frontend
parente87329f47e398760890e8d02a343782fe766728f (diff)
downloadpcsx_rearmed-0b7f536b486f3f411651573009c3da6063b560ea.tar.gz
pcsx_rearmed-0b7f536b486f3f411651573009c3da6063b560ea.tar.bz2
pcsx_rearmed-0b7f536b486f3f411651573009c3da6063b560ea.zip
(CTR/3DS) some performance tweaks:
- use linearAlloc for vout_buf. - use svcFlushProcessDataCache to flush only the required range, invalidating icache doesn't seem to be required.
Diffstat (limited to 'frontend')
-rw-r--r--frontend/libretro.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index d834579..2964587 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -1341,7 +1341,9 @@ void retro_init(void)
exit(1);
}
-#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && !defined(VITA)
+#ifdef _3DS
+ vout_buf = linearMemAlign(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2, 0x80);
+#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && !defined(VITA)
posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2);
#else
vout_buf = malloc(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2);
@@ -1407,7 +1409,11 @@ void retro_init(void)
void retro_deinit(void)
{
SysClose();
+#ifdef _3DS
+ linearFree(vout_buf);
+#else
free(vout_buf);
+#endif
vout_buf = NULL;
}