From fbb411a946de8eb9cf84735696714475517d0c3a Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 15 Dec 2024 18:35:31 +1000 Subject: [PATCH] OpenGLDevice: Blacklist fbfetch on PowerVR as well Apparently it's broken, and I don't have any devices with this chip so I can't find a potential workaround anyway. --- src/util/opengl_context.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/util/opengl_context.cpp b/src/util/opengl_context.cpp index b8222f29c..c5ae86b0b 100644 --- a/src/util/opengl_context.cpp +++ b/src/util/opengl_context.cpp @@ -96,6 +96,14 @@ static void DisableBrokenExtensions(const char* gl_vendor, const char* gl_render VERBOSE_LOG("Keeping GL_EXT_shader_framebuffer_fetch on Adreno version {}", major_version); } } + else if (std::strstr(gl_vendor, "Imagination Technologies") && std::strstr(gl_renderer, "PowerVR")) + { + // Framebuffer fetch is apparently also broken on older PowerVR drivers. + // No clue what the range is, so just disable all of them... + GLAD_GL_EXT_shader_framebuffer_fetch = 0; + GLAD_GL_ARM_shader_framebuffer_fetch = 0; + VERBOSE_LOG("Disabling GL_EXT_shader_framebuffer_fetch on PowerVR driver."); + } // If we're missing GLES 3.2, but have OES_draw_elements_base_vertex, redirect the function pointers. if (!glad_glDrawElementsBaseVertex && GLAD_GL_OES_draw_elements_base_vertex && !GLAD_GL_ES_VERSION_3_2)