From bf74553878ee4495b684fecb80ca31a567e79c63 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 24 May 2020 16:11:10 +1000 Subject: FramebufferManager: Copy to color format for depth readbacks on GLES glReadPixels() with depth formats is not supported. Should fix broken EFB access on GLES. --- Source/Core/VideoBackends/OGL/Render.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Source/Core/VideoBackends/OGL/Render.cpp') diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index 27a8c05287..ee813fbbda 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -521,6 +521,10 @@ Renderer::Renderer(std::unique_ptr main_gl_context, float backbuffer_ // GLES does not support logic op. g_Config.backend_info.bSupportsLogicOp = false; + // glReadPixels() can't be used with non-color formats. But, if we support + // ARB_get_texture_sub_image (unlikely, except maybe on NVIDIA), we can use that instead. + g_Config.backend_info.bSupportsDepthReadback = g_ogl_config.bSupportsTextureSubImage; + if (GLExtensions::Supports("GL_EXT_shader_framebuffer_fetch")) { g_ogl_config.SupportedFramebufferFetch = EsFbFetchType::FbFetchExt; -- cgit v1.2.3