GLSL ES: Extensions must go first. Fixes #13620

This commit is contained in:
Henrik Rydgård 2020-11-03 19:53:02 +01:00
parent f429c97392
commit 88e772cdf7

View File

@ -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");