From: Timothy Arceri Date: Mon, 29 Jan 2018 23:55:19 +0000 (+1100) Subject: nir: add lower_all_io_to_temps flag X-Git-Tag: upstream/18.1.0~2144 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9a2e0856805d5dd27975d5a2bf68fab44346aa4f;p=platform%2Fupstream%2Fmesa.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 46f3c9b..0e2e8e2 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 86d1c68..9ab2769 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 9ab5e0f..2393306 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 98cdfdf..706982c 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,