From e78f57d8629c3f830bd703220c83a735d7fc7922 Mon Sep 17 00:00:00 2001 From: yellows8 Date: Thu, 25 Jan 2018 01:34:31 -0500 Subject: [PATCH] Check for fence id NO_FENCE before calling nvgfxEventWait() in _gfxDequeueBuffer(), since that does occur in some cases. --- nx/source/gfx/gfx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nx/source/gfx/gfx.c b/nx/source/gfx/gfx.c index 751a5400..31471d93 100644 --- a/nx/source/gfx/gfx.c +++ b/nx/source/gfx/gfx.c @@ -136,7 +136,8 @@ static Result _gfxDequeueBuffer(void) { rc = bufferProducerDequeueBuffer(async, g_gfx_framebuf_width, g_gfx_framebuf_height, 0, 0x300, &g_gfxCurrentProducerBuffer, fence); - if (R_SUCCEEDED(rc) && tmp_fence.is_valid) rc = nvgfxEventWait(tmp_fence.nv_fences[0].id, tmp_fence.nv_fences[0].value, -1); + //Only run nvgfxEventWait when the fence is valid and the id is not NO_FENCE. + if (R_SUCCEEDED(rc) && tmp_fence.is_valid && tmp_fence.nv_fences[0].id!=0xffffffff) rc = nvgfxEventWait(tmp_fence.nv_fences[0].id, tmp_fence.nv_fences[0].value, -1); if (R_SUCCEEDED(rc)) g_gfxCurrentBuffer = (g_gfxCurrentBuffer + 1) & (g_nvgfx_totalframebufs-1);