diff --git a/CHANGES b/CHANGES index 3b6474330..9b80bb5d2 100644 --- a/CHANGES +++ b/CHANGES @@ -28,6 +28,7 @@ Bugfixes: - GBA: Fix warnings when creating and loading savestates - Qt: Add additional checks in CheatModel to prevent crashes - GBA Hardware: Fix Game Boy Player rumble in Pokemon Pinball + - OpenGL: Fix fast-forward on some OpenGL drivers where it may block early Misc: - Qt: Window size command line options are now supported - Qt: Increase usability of key mapper diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index e64e226ca..339f903ba 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -16,7 +16,7 @@ extern "C" { #endif #if !defined(_WIN32) || defined(USE_EPOXY) #include "platform/opengl/gles2.h" -#ifdef _WIN32 +#ifdef _WIN32 #include #endif #endif @@ -264,10 +264,10 @@ void PainterGL::draw() { } if (GBASyncWaitFrameStart(&m_context->sync) || !m_queue.isEmpty()) { dequeue(); + GBASyncWaitFrameEnd(&m_context->sync); m_painter.begin(m_gl->context()->device()); performDraw(); m_painter.end(); - GBASyncWaitFrameEnd(&m_context->sync); m_backend->swap(m_backend); } else { GBASyncWaitFrameEnd(&m_context->sync); diff --git a/src/platform/sdl/gl-sdl.c b/src/platform/sdl/gl-sdl.c index e343f1a8b..bb927bfce 100644 --- a/src/platform/sdl/gl-sdl.c +++ b/src/platform/sdl/gl-sdl.c @@ -64,8 +64,8 @@ void GBASDLGLRunloop(struct GBAThread* context, struct SDLSoftwareRenderer* rend if (GBASyncWaitFrameStart(&context->sync)) { v->postFrame(v, renderer->d.outputBuffer); } - v->drawFrame(v); GBASyncWaitFrameEnd(&context->sync); + v->drawFrame(v); v->swap(v); } } diff --git a/src/platform/sdl/gles2-sdl.c b/src/platform/sdl/gles2-sdl.c index e719f4ab1..bbdffffe0 100644 --- a/src/platform/sdl/gles2-sdl.c +++ b/src/platform/sdl/gles2-sdl.c @@ -117,8 +117,8 @@ void GBASDLGLES2Runloop(struct GBAThread* context, struct SDLSoftwareRenderer* r if (GBASyncWaitFrameStart(&context->sync)) { v->postFrame(v, renderer->d.outputBuffer); } - v->drawFrame(v); GBASyncWaitFrameEnd(&context->sync); + v->drawFrame(v); #ifdef BUILD_RASPI eglSwapBuffers(renderer->display, renderer->surface); #else