From da216a7c58c1842fdbe5615225b2bcdb0e4a68c8 Mon Sep 17 00:00:00 2001 From: Sasha Szpakowski Date: Sat, 28 Mar 2026 16:11:38 -0300 Subject: [PATCH] opengl: fix readbackAsync causing crashes on quit. Fixes #2298. --- src/modules/graphics/opengl/GraphicsReadback.cpp | 11 +++++++++++ src/modules/graphics/opengl/GraphicsReadback.h | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/modules/graphics/opengl/GraphicsReadback.cpp b/src/modules/graphics/opengl/GraphicsReadback.cpp index 5843473fb..a2f37b2a5 100644 --- a/src/modules/graphics/opengl/GraphicsReadback.cpp +++ b/src/modules/graphics/opengl/GraphicsReadback.cpp @@ -119,6 +119,17 @@ void GraphicsReadback::update() } } +bool GraphicsReadback::loadVolatile() +{ + // Don't need to (re)create anything here, since the work is done in sync.fence(). + return true; +} + +void GraphicsReadback::unloadVolatile() +{ + sync.cleanup(); +} + } // opengl } // graphics } // love diff --git a/src/modules/graphics/opengl/GraphicsReadback.h b/src/modules/graphics/opengl/GraphicsReadback.h index f94753527..23697b618 100644 --- a/src/modules/graphics/opengl/GraphicsReadback.h +++ b/src/modules/graphics/opengl/GraphicsReadback.h @@ -22,6 +22,7 @@ // LOVE #include "graphics/GraphicsReadback.h" +#include "graphics/Volatile.h" #include "FenceSync.h" #include "common/math.h" @@ -32,7 +33,7 @@ namespace graphics namespace opengl { -class GraphicsReadback final : public love::graphics::GraphicsReadback +class GraphicsReadback final : public love::graphics::GraphicsReadback, public Volatile { public: @@ -43,6 +44,9 @@ public: void wait() override; void update() override; + bool loadVolatile() override; + void unloadVolatile() override; + private: FenceSync sync;