From f836a67863e66499c812c8d963d37ff56ad10638 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 15 Oct 2015 23:13:45 -0700 Subject: [PATCH] GBA Video: Batch wakeups better --- src/gba/renderers/thread-proxy.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gba/renderers/thread-proxy.c b/src/gba/renderers/thread-proxy.c index 74ec22651..7e8a64948 100644 --- a/src/gba/renderers/thread-proxy.c +++ b/src/gba/renderers/thread-proxy.c @@ -158,7 +158,6 @@ uint16_t GBAVideoThreadProxyRendererWriteVideoRegister(struct GBAVideoRenderer* 0xDEADBEEF, }; RingFIFOWrite(&proxyRenderer->dirtyQueue, &dirty, sizeof(dirty)); - ConditionWake(&proxyRenderer->toThreadCond); return value; } @@ -180,7 +179,6 @@ void GBAVideoThreadProxyRendererWritePalette(struct GBAVideoRenderer* renderer, 0xDEADBEEF, }; RingFIFOWrite(&proxyRenderer->dirtyQueue, &dirty, sizeof(dirty)); - ConditionWake(&proxyRenderer->toThreadCond); } void GBAVideoThreadProxyRendererWriteOAM(struct GBAVideoRenderer* renderer, uint32_t oam) { @@ -198,7 +196,6 @@ void GBAVideoThreadProxyRendererWriteOAM(struct GBAVideoRenderer* renderer, uint 0xDEADBEEF, }; RingFIFOWrite(&proxyRenderer->dirtyQueue, &dirty, sizeof(dirty)); - ConditionWake(&proxyRenderer->toThreadCond); } void GBAVideoThreadProxyRendererDrawScanline(struct GBAVideoRenderer* renderer, int y) { @@ -228,7 +225,9 @@ void GBAVideoThreadProxyRendererDrawScanline(struct GBAVideoRenderer* renderer, 0xDEADBEEF, }; RingFIFOWrite(&proxyRenderer->dirtyQueue, &dirty, sizeof(dirty)); - ConditionWake(&proxyRenderer->toThreadCond); + if (!(y & 15)) { + ConditionWake(&proxyRenderer->toThreadCond); + } } void GBAVideoThreadProxyRendererFinishFrame(struct GBAVideoRenderer* renderer) {