From 1404b63219ae751e4e16df5c737a0f9dd83ca7e5 Mon Sep 17 00:00:00 2001 From: misson20000 Date: Wed, 30 May 2018 18:04:35 -0700 Subject: [PATCH] fix for tearing (depends on libtransistor commit cf5d0403 in v2.0.0, which is yet to be released) --- gfx/drivers/switch_gfx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 529f74e04a..6bab28d5e3 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -232,13 +232,14 @@ static bool switch_frame(void *data, const void *frame, RARCH_LOG("message: %s\n", msg); r = surface_dequeue_buffer(&sw->surface, &out_buffer); - if (sw->vsync) - switch_wait_vsync(sw); - svcSleepThread(10000); if(r != RESULT_OK) { return true; // just skip the frame } - + + r = surface_wait_buffer(&sw->surface); + if(r != RESULT_OK) { + return true; + } gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); r = surface_queue_buffer(&sw->surface);