summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2020-05-24 16:11:10 +1000
committerStenzek <stenzek@gmail.com>2020-05-24 16:11:11 +1000
commitbf74553878ee4495b684fecb80ca31a567e79c63 (patch)
treecabefd405b53d973e3f6391429da11bda4a6c768 /Source/Core/VideoBackends/OGL/Render.cpp
parent393ce529af87b1b11877eb6e376c54592f4160ee (diff)
FramebufferManager: Copy to color format for depth readbacks on GLES
glReadPixels() with depth formats is not supported. Should fix broken EFB access on GLES.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp4
1 files changed, 4 insertions, 0 deletions
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<GLContext> 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;