summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarol Herbst <[email protected]>2019-10-15 01:06:18 +0200
committerKarol Herbst <[email protected]>2019-10-16 21:53:46 +0000
commit656c038d010b1cc82e0944f4c0fca85ece769bfb (patch)
tree4b8597d4974585f3a694dbb86b0f91ae4c20bf01
parentaaab70035a3db8da7c93965301f50e40ddbbbef9 (diff)
st/mesa: fix crash for drivers supporting nir defaulting to tgsi
nvc0 and I assume radeonsi as well hit an assert inside glsl_to_tgsi as atan instructions get inserted into the shader. Fixes: cece947a8dfa ("glsl/builtin: Add alternate versions of atan using new ops") Cc: Neil Roberts <[email protected]> Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Rob Clark <[email protected]>
-rw-r--r--src/mesa/state_tracker/st_extensions.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index c9a99b06f4b..14f270e1447 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -163,7 +163,10 @@ void st_init_limits(struct pipe_screen *screen,
struct gl_program_constants *pc;
const nir_shader_compiler_options *nir_options = NULL;
- if (screen->get_compiler_options) {
+ bool prefer_nir = PIPE_SHADER_IR_NIR ==
+ screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_PREFERRED_IR);
+
+ if (screen->get_compiler_options && prefer_nir) {
nir_options = (const nir_shader_compiler_options *)
screen->get_compiler_options(screen, PIPE_SHADER_IR_NIR, sh);
}
@@ -324,9 +327,6 @@ void st_init_limits(struct pipe_screen *screen,
if (!screen->get_param(screen, PIPE_CAP_NIR_COMPACT_ARRAYS))
options->LowerCombinedClipCullDistance = true;
- bool prefer_nir = PIPE_SHADER_IR_NIR ==
- screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_PREFERRED_IR);
-
/* NIR can do the lowering on our behalf and we'll get better results
* because it can actually optimize SSBO access.
*/