diff options
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/blorp/blorp.c | 4 | ||||
-rw-r--r-- | src/intel/compiler/brw_nir.c | 22 | ||||
-rw-r--r-- | src/intel/compiler/brw_nir.h | 3 | ||||
-rw-r--r-- | src/intel/vulkan/anv_pipeline.c | 2 |
4 files changed, 9 insertions, 22 deletions
diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c index ecd4289db17..cb5d0f73e77 100644 --- a/src/intel/blorp/blorp.c +++ b/src/intel/blorp/blorp.c @@ -192,7 +192,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx, */ wm_prog_data->base.binding_table.texture_start = BLORP_TEXTURE_BT_INDEX; - nir = brw_preprocess_nir(compiler, nir); + nir = brw_preprocess_nir(compiler, nir, NULL); nir_remove_dead_variables(nir, nir_var_shader_in); nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir)); @@ -221,7 +221,7 @@ blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx, nir->options = compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions; - nir = brw_preprocess_nir(compiler, nir); + nir = brw_preprocess_nir(compiler, nir, NULL); nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir)); vs_prog_data->inputs_read = nir->info.inputs_read; diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index 58b89a1bd3c..34aaa29a5cb 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -653,7 +653,8 @@ lower_bit_size_callback(const nir_alu_instr *alu, UNUSED void *data) * is_scalar = true to scalarize everything prior to code gen. */ nir_shader * -brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir) +brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir, + const nir_shader *softfp64) { const struct gen_device_info *devinfo = compiler->devinfo; UNUSED bool progress; /* Written by OPT */ @@ -677,7 +678,7 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir) progress = false; OPT(nir_lower_int64, nir->options->lower_int64_options); - OPT(nir_lower_doubles, nir->options->lower_doubles_options); + OPT(nir_lower_doubles, softfp64, nir->options->lower_doubles_options); /* Necessary to lower add -> sub and div -> mul/rcp */ OPT(nir_opt_algebraic); @@ -685,21 +686,6 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir) lowered_64bit_ops |= progress; } while (progress); - if (lowered_64bit_ops) { - OPT(nir_lower_constant_initializers, nir_var_function_temp); - OPT(nir_lower_returns); - OPT(nir_inline_functions); - OPT(nir_opt_deref); - } - - const nir_function *entry_point = nir_shader_get_entrypoint(nir)->function; - foreach_list_typed_safe(nir_function, func, node, &nir->functions) { - if (func != entry_point) { - exec_node_remove(&func->node); - } - } - assert(exec_list_length(&nir->functions) == 1); - if (nir->info.stage == MESA_SHADER_GEOMETRY) OPT(nir_lower_gs_intrinsics); @@ -1098,7 +1084,7 @@ brw_nir_create_passthrough_tcs(void *mem_ctx, const struct brw_compiler *compile nir_validate_shader(nir, "in brw_nir_create_passthrough_tcs"); - nir = brw_preprocess_nir(compiler, nir); + nir = brw_preprocess_nir(compiler, nir, NULL); return nir; } diff --git a/src/intel/compiler/brw_nir.h b/src/intel/compiler/brw_nir.h index bc81950d47e..7c73079c35d 100644 --- a/src/intel/compiler/brw_nir.h +++ b/src/intel/compiler/brw_nir.h @@ -93,7 +93,8 @@ enum { void brw_nir_analyze_boolean_resolves(nir_shader *nir); nir_shader *brw_preprocess_nir(const struct brw_compiler *compiler, - nir_shader *nir); + nir_shader *nir, + const nir_shader *softfp64); void brw_nir_link_shaders(const struct brw_compiler *compiler, diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index a460a1ff428..dbff784fb10 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -231,7 +231,7 @@ anv_shader_compile_to_nir(struct anv_device *device, /* Vulkan uses the separate-shader linking model */ nir->info.separate_shader = true; - nir = brw_preprocess_nir(compiler, nir); + nir = brw_preprocess_nir(compiler, nir, NULL); return nir; } |