summaryrefslogtreecommitdiff
path: root/src/compiler/glsl/glsl_parser_extras.cpp
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2020-07-24 20:31:07 -0400
committerMarge Bot <eric+marge@anholt.net>2020-08-05 22:04:47 +0000
commit282a1e6288f6dfde7a5481fa43d350f755104452 (patch)
tree93818c0b33c74af51f48f35f1810d58cdbd07048 /src/compiler/glsl/glsl_parser_extras.cpp
parent01e008563753671c9076867c355d723932bc1b27 (diff)
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@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6073>
Diffstat (limited to 'src/compiler/glsl/glsl_parser_extras.cpp')
-rw-r--r--src/compiler/glsl/glsl_parser_extras.cpp3
1 files changed, 2 insertions, 1 deletions
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);