diff options
author | Karol Herbst <kherbst@redhat.com> | 2019-10-15 01:06:18 +0200 |
---|---|---|
committer | Karol Herbst <karolherbst@gmail.com> | 2019-10-16 21:53:46 +0000 |
commit | 656c038d010b1cc82e0944f4c0fca85ece769bfb (patch) | |
tree | 4b8597d4974585f3a694dbb86b0f91ae4c20bf01 | |
parent | aaab70035a3db8da7c93965301f50e40ddbbbef9 (diff) | |
download | mesa-656c038d010b1cc82e0944f4c0fca85ece769bfb.tar.gz |
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 <nroberts@igalia.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
-rw-r--r-- | src/mesa/state_tracker/st_extensions.c | 8 |
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. */ |