Mesa (master): glsl: don't lower to mediump for desktop OpenGL

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 5 22:23:15 UTC 2020


Module: Mesa
Branch: master
Commit: 282a1e6288f6dfde7a5481fa43d350f755104452
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=282a1e6288f6dfde7a5481fa43d350f755104452

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Jul 24 20:31:07 2020 -0400

glsl: don't lower to mediump for desktop OpenGL

Desktop OpenGL ignores all precision qualifiers.

Also, the lowering pass doesn't work if precision qualifiers are not set,
which is only possible with desktop OpenGL, causing random behavior.

Reviewed-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6073>

---

 src/compiler/glsl/glsl_parser_extras.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index e9130d16d25..cb206e32a49 100644
--- a/src/compiler/glsl/glsl_parser_extras.cpp
+++ b/src/compiler/glsl/glsl_parser_extras.cpp
@@ -2249,7 +2249,8 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
       &ctx->Const.ShaderCompilerOptions[shader->Stage];
 
    if (!state->error && !shader->ir->is_empty()) {
-      if (options->LowerPrecisionFloat16 || options->LowerPrecisionInt16)
+      if (state->es_shader &&
+          (options->LowerPrecisionFloat16 || options->LowerPrecisionInt16))
          lower_precision(options, shader->ir);
       lower_builtins(shader->ir);
       assign_subroutine_indexes(state);



More information about the mesa-commit mailing list