summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2018-01-30 10:55:19 +1100
committerTimothy Arceri <[email protected]>2018-01-31 09:14:08 +1100
commit9a2e0856805d5dd27975d5a2bf68fab44346aa4f (patch)
tree6ece304f89edbe9e33558e961b3840057fcb5562
parent32187562623b78cc502eaa976a2933fa8a201cab (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.c1
-rw-r--r--src/compiler/nir/nir.h2
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_nir.c1
-rw-r--r--src/gallium/drivers/vc4/vc4_program.c1
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,