diff options
author | Timothy Arceri <[email protected]> | 2018-01-30 10:55:19 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-01-31 09:14:08 +1100 |
commit | 9a2e0856805d5dd27975d5a2bf68fab44346aa4f (patch) | |
tree | 6ece304f89edbe9e33558e961b3840057fcb5562 | |
parent | 32187562623b78cc502eaa976a2933fa8a201cab (diff) |
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 <[email protected]>
-rw-r--r-- | src/broadcom/compiler/nir_to_vir.c | 1 | ||||
-rw-r--r-- | src/compiler/nir/nir.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_nir.c | 1 | ||||
-rw-r--r-- | src/gallium/drivers/vc4/vc4_program.c | 1 |
4 files changed, 5 insertions, 0 deletions
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, |