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>
This commit is contained in:
Marek Olšák
2020-07-24 20:31:07 -04:00
committed by Marge Bot
parent 01e0085637
commit 282a1e6288

View File

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