From 9a2e0856805d5dd27975d5a2bf68fab44346aa4f Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 30 Jan 2018 10:55:19 +1100 Subject: [PATCH] nir: add lower_all_io_to_temps flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This will be used for freedreno and vc4 which require all inputs and outputs to be copied to temps. Reviewed-by: Marek Olšák --- src/broadcom/compiler/nir_to_vir.c | 1 + src/compiler/nir/nir.h | 2 ++ src/gallium/drivers/freedreno/ir3/ir3_nir.c | 1 + src/gallium/drivers/vc4/vc4_program.c | 1 + 4 files changed, 5 insertions(+) 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, -- 2.30.2