diff --git a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp index 38006e0e8d..db521b7dd0 100644 --- a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp +++ b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp @@ -1730,19 +1730,24 @@ std::string GSDeviceOGL::GenGlslHeader(const std::string_view entry, GLenum type { std::string header; - if (m_features.vs_expand && GLAD_GL_VERSION_4_3) + // Intel's GL driver doesn't like the readonly qualifier with 3.3 GLSL. + if (GLAD_GL_VERSION_4_3) { - // Intel's GL driver doesn't like the readonly qualifier with 3.3 GLSL. header = "#version 430 core\n"; } + else if (GLAD_GL_VERSION_4_2) + { + header = "#version 420 core\n"; + } else { header = "#version 330 core\n"; header += "#extension GL_ARB_shading_language_420pack : require\n"; - if (m_features.vs_expand) - header += "#extension GL_ARB_shader_storage_buffer_object: require\n"; } + if (m_features.vs_expand && !GLAD_GL_VERSION_4_3) + header += "#extension GL_ARB_shader_storage_buffer_object: require\n"; + if (m_features.framebuffer_fetch && GLAD_GL_EXT_shader_framebuffer_fetch) header += "#extension GL_EXT_shader_framebuffer_fetch : require\n";