From 88e772cdf7417ddbf0eff8cdf5697b774364baeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 3 Nov 2020 19:53:02 +0100 Subject: [PATCH] GLSL ES: Extensions must go first. Fixes #13620 --- GPU/Common/ShaderWriter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/GPU/Common/ShaderWriter.cpp b/GPU/Common/ShaderWriter.cpp index 323bd3b86c..44959b57fe 100644 --- a/GPU/Common/ShaderWriter.cpp +++ b/GPU/Common/ShaderWriter.cpp @@ -96,6 +96,10 @@ void ShaderWriter::Preamble(const char **gl_extensions, size_t num_gl_extensions break; default: // OpenGL F("#version %d%s\n", lang_.glslVersionNumber, lang_.gles && lang_.glslES30 ? " es" : ""); + // IMPORTANT! Extensions must be the first thing after #version. + for (size_t i = 0; i < num_gl_extensions; i++) { + F("%s\n", gl_extensions[i]); + } switch (stage_) { case ShaderStage::Fragment: C("#define DISCARD discard\n"); @@ -109,9 +113,6 @@ void ShaderWriter::Preamble(const char **gl_extensions, size_t num_gl_extensions } break; } - for (size_t i = 0; i < num_gl_extensions; i++) { - F("%s\n", gl_extensions[i]); - } if (!lang_.gles) { C("#define lowp\n"); C("#define mediump\n");