From 75b57f1567a7c758694ef0bec33902e4752ca0e6 Mon Sep 17 00:00:00 2001 From: aliaspider Date: Thu, 12 Nov 2015 14:57:26 +0100 Subject: [PATCH] (3ds) improve performance when using video filters by allocating the output buffer in linear memory. --- gfx/video_driver.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 00a96f0e45..1bdc9435f1 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -285,7 +285,11 @@ bool video_driver_set_shader(enum rarch_shader_type type, static void deinit_video_filter(void) { rarch_softfilter_free(video_state.filter.filter); +#ifdef _3DS + linearFree(video_state.filter.buffer); +#else free(video_state.filter.buffer); +#endif memset(&video_state.filter, 0, sizeof(video_state.filter)); } @@ -344,7 +348,11 @@ static void init_video_filter(enum retro_pixel_format colfmt) sizeof(uint32_t) : sizeof(uint16_t); /* TODO: Aligned output. */ +#ifdef _3DS + video_state.filter.buffer = linearMemAlign(width * height * video_state.filter.out_bpp, 0x80); +#else video_state.filter.buffer = malloc(width * height * video_state.filter.out_bpp); +#endif if (!video_state.filter.buffer) goto error;