GB, GBA Video: Don't call finishFrame twice in thread proxy
Vicki Pfau vi@endrift.com
Sat, 22 Sep 2018 10:36:02 -0700
3 files changed,
8 insertions(+),
3 deletions(-)
M
CHANGES
→
CHANGES
@@ -60,6 +60,7 @@ - GB Serialize: Fix IRQ pending/EI pending confusion
- GB MBC: Improve multicart detection heuristic (fixes mgba.io/i/1177) - GB Audio: Fix channel 3 reset value - GB Audio: Fix channel 4 initial LFSR + - GB, GBA Video: Don't call finishFrame twice in thread proxy Misc: - GBA Timer: Use global cycles for timers - GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)
M
src/gb/extra/proxy.c
→
src/gb/extra/proxy.c
@@ -254,7 +254,9 @@ if (proxyRenderer->logger->block && proxyRenderer->logger->wait) {
proxyRenderer->logger->lock(proxyRenderer->logger); proxyRenderer->logger->wait(proxyRenderer->logger); } - proxyRenderer->backend->finishFrame(proxyRenderer->backend); + if (!proxyRenderer->logger->block) { + proxyRenderer->backend->finishFrame(proxyRenderer->backend); + } mVideoLoggerRendererFinishFrame(proxyRenderer->logger); mVideoLoggerRendererFlush(proxyRenderer->logger); if (proxyRenderer->logger->block && proxyRenderer->logger->wait) {
M
src/gba/extra/proxy.c
→
src/gba/extra/proxy.c
@@ -137,7 +137,7 @@ proxyRenderer->backend->writePalette(proxyRenderer->backend, item->address, item->value);
} break; case DIRTY_OAM: - if (item->address < SIZE_PALETTE_RAM) { + if (item->address < SIZE_OAM) { logger->oam[item->address] = item->value; proxyRenderer->backend->writeOAM(proxyRenderer->backend, item->address); }@@ -252,7 +252,9 @@ if (proxyRenderer->logger->block && proxyRenderer->logger->wait) {
proxyRenderer->logger->lock(proxyRenderer->logger); proxyRenderer->logger->wait(proxyRenderer->logger); } - proxyRenderer->backend->finishFrame(proxyRenderer->backend); + if (!proxyRenderer->logger->block) { + proxyRenderer->backend->finishFrame(proxyRenderer->backend); + } mVideoLoggerRendererFinishFrame(proxyRenderer->logger); mVideoLoggerRendererFlush(proxyRenderer->logger); if (proxyRenderer->logger->block && proxyRenderer->logger->wait) {