From: Timothy Arceri Date: Mon, 29 Jan 2018 23:55:19 +0000 (+1100) Subject: nir: add lower_all_io_to_temps flag X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9a2e0856805d5dd27975d5a2bf68fab44346aa4f;p=mesa.git nir: add lower_all_io_to_temps flag This will be used for freedreno and vc4 which require all inputs and outputs to be copied to temps. Reviewed-by: Marek Olšák --- diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 46f3c9bc419..0e2e8e2daad 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1874,6 +1874,7 @@ nir_to_vir(struct v3d_compile *c) } const nir_shader_compiler_options v3d_nir_options = { + .lower_all_io_to_temps = true, .lower_extract_byte = true, .lower_extract_word = true, .lower_bitfield_insert = true, diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 86d1c68fa72..9ab2769e067 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1873,6 +1873,8 @@ typedef struct nir_shader_compiler_options { bool lower_extract_byte; bool lower_extract_word; + bool lower_all_io_to_temps; + /** * Does the driver support real 32-bit integers? (Otherwise, integers * are simulated by floats.) diff --git a/src/gallium/drivers/freedreno/ir3/ir3_nir.c b/src/gallium/drivers/freedreno/ir3/ir3_nir.c index 9ab5e0f7f25..2393306e19c 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_nir.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_nir.c @@ -50,6 +50,7 @@ static const nir_shader_compiler_options options = { .vertex_id_zero_based = true, .lower_extract_byte = true, .lower_extract_word = true, + .lower_all_io_to_temps = true, }; struct nir_shader * diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 98cdfdf33ea..706982c4a1c 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -2180,6 +2180,7 @@ nir_to_qir(struct vc4_compile *c) } static const nir_shader_compiler_options nir_options = { + .lower_all_io_to_temps = true, .lower_extract_byte = true, .lower_extract_word = true, .lower_ffma = true,