diff --git a/src/modules/graphics/opengl/Canvas.cpp b/src/modules/graphics/opengl/Canvas.cpp index b0267f31f..06457498d 100644 --- a/src/modules/graphics/opengl/Canvas.cpp +++ b/src/modules/graphics/opengl/Canvas.cpp @@ -510,6 +510,18 @@ bool Canvas::isFormatSupported(PixelFormat format, bool readable) GLuint texture = 0; GLuint renderbuffer = 0; + // Avoid the test for depth/stencil formats - not every GL version + // guarantees support for depth/stencil-only render targets (which we would + // need for the test below to work), and we already do some finagling in + // convertPixelFormat to try to use the best-supported internal + // depth/stencil format for a particular driver. + if (isPixelFormatDepthStencil(format)) + { + checkedFormats[format].set(readable, true); + supportedFormats[format].set(readable, true); + return true; + } + bool unusedSRGB = false; OpenGL::TextureFormat fmt = OpenGL::convertPixelFormat(format, readable, unusedSRGB);