st/mesa: don't enable NV_copy_depth_to_color if NIR doesn't support FP64
authorMarek Olšák <marek.olsak@amd.com>
Tue, 1 Sep 2020 01:00:01 +0000 (21:00 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 16 Sep 2020 02:22:52 +0000 (02:22 +0000)
Fixes: e512f2cef92 - mesa: add NV_copy_depth_to_color support for nir
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3459

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6467>

src/mesa/state_tracker/st_extensions.c

index 1278ef1..1769d27 100644 (file)
@@ -1771,8 +1771,12 @@ void st_init_extensions(struct pipe_screen *screen,
 
    bool prefer_nir = PIPE_SHADER_IR_NIR ==
          screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_PREFERRED_IR);
+   const struct nir_shader_compiler_options *nir_options =
+      consts->ShaderCompilerOptions[MESA_SHADER_FRAGMENT].NirOptions;
+
    if (prefer_nir &&
        screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS) &&
-       extensions->ARB_stencil_texturing)
+       extensions->ARB_stencil_texturing &&
+       !(nir_options->lower_doubles_options & nir_lower_fp64_full_software))
       extensions->NV_copy_depth_to_color = TRUE;
 }