From 281f3d3e53ffe0b80e79087d5e6344dc61f91cf9 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 16 Nov 2021 17:02:50 -0800 Subject: [PATCH] glsl/nir: Don't build soft float64 when it cannot be used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: 82d9a37a59c ("glsl/nir: Add a shared helper for building float64 shaders") Closes: #5556 Reviewed-by: Matt Turner Reviewed-by: Tapani Pälli Part-of: (cherry picked from commit 04f5c543ded15362dc6286ff4ae7a38f00f6ca7e) --- .pick_status.json | 2 +- src/compiler/glsl/glsl_to_nir.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 9beb773c3ad..5774cb8b6d5 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1732,7 +1732,7 @@ "description": "glsl/nir: Don't build soft float64 when it cannot be used", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "82d9a37a59c94ba3678b33acb9f2749cbbd7bfcc" }, diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index c3a5bba80c3..bc722a32450 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -39,6 +39,7 @@ #include "main/errors.h" #include "main/mtypes.h" #include "main/shaderobj.h" +#include "main/context.h" #include "util/u_math.h" /* @@ -2622,6 +2623,13 @@ nir_shader * glsl_float64_funcs_to_nir(struct gl_context *ctx, const nir_shader_compiler_options *options) { + /* It's not possible to use float64 on GLSL ES, so don't bother trying to + * build the support code. The support code depends on higher versions of + * desktop GLSL, so it will fail to compile (below) anyway. + */ + if (!_mesa_is_desktop_gl(ctx) || ctx->Const.GLSLVersion < 400) + return NULL; + /* We pretend it's a vertex shader. Ultimately, the stage shouldn't * matter because we're not optimizing anything here. */