From 245f4b961ac2222907cb1b218c9116acad84ea6d Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 12 Dec 2022 03:58:12 -0800 Subject: [PATCH] Qt: Tentative fix for renderer switching crash --- src/platform/qt/DisplayGL.cpp | 5 +++++ src/platform/qt/Window.cpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index 59a441aca..86e115517 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -960,6 +960,11 @@ QOpenGLContext* PainterGL::shareContext() { void PainterGL::updateFramebufferHandle() { QOpenGLFunctions_Baseline* fn = m_gl->versionFunctions(); fn->glFinish(); + + CoreController::Interrupter interrupter(m_context); + if (!m_context->hardwareAccelerated()) { + return; + } enqueue(m_bridgeTexIn); m_context->setFramebufferHandle(m_bridgeTexIn); } diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index 20249f4a0..e43a9ebd8 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -1107,6 +1107,8 @@ void Window::changeRenderer() { if (!m_controller) { return; } + + CoreController::Interrupter interrupter(m_controller); if (m_config->getOption("hwaccelVideo").toInt() && m_display->supportsShaders() && m_controller->supportsFeature(CoreController::Feature::OPENGL)) { std::shared_ptr proxy = m_display->videoProxy(); if (!proxy) {