summaryrefslogtreecommitdiffstats
path: root/src/freedreno/ir3
diff options
context:
space:
mode:
Diffstat (limited to 'src/freedreno/ir3')
-rw-r--r--src/freedreno/ir3/ir3_nir.c2
-rw-r--r--src/freedreno/ir3/ir3_shader.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c
index f9d059254fd..f2fc46db7cc 100644
--- a/src/freedreno/ir3/ir3_nir.c
+++ b/src/freedreno/ir3/ir3_nir.c
@@ -57,6 +57,7 @@ static const nir_shader_compiler_options options = {
.use_interpolated_input_intrinsics = true,
.lower_rotate = true,
.lower_to_scalar = true,
+ .has_imul24 = true,
};
/* we don't want to lower vertex_id to _zero_based on newer gpus: */
@@ -84,6 +85,7 @@ static const nir_shader_compiler_options options_a6xx = {
.lower_rotate = true,
.vectorize_io = true,
.lower_to_scalar = true,
+ .has_imul24 = true,
};
const nir_shader_compiler_options *
diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c
index 344e15f38f8..4e1b1081764 100644
--- a/src/freedreno/ir3/ir3_shader.c
+++ b/src/freedreno/ir3/ir3_shader.c
@@ -317,6 +317,8 @@ ir3_shader_from_nir(struct ir3_compiler *compiler, nir_shader *nir)
NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects, false);
+ NIR_PASS_V(nir, nir_lower_amul, ir3_glsl_type_size);
+
/* do first pass optimization, ignoring the key: */
ir3_optimize_nir(shader, nir, NULL);