lima/ppir: enable vectorize optimization
authorErico Nunes <nunes.erico@gmail.com>
Sat, 10 Aug 2019 20:46:02 +0000 (22:46 +0200)
committerErico Nunes <nunes.erico@gmail.com>
Sun, 25 Aug 2019 18:29:12 +0000 (18:29 +0000)
pp has vector units and some operations can be optimized when bundled
together.
Benchmarking this with piglit shaders shows that the instruction count
can be greatly reduced on many examples with vectorize.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
src/gallium/drivers/lima/lima_program.c

index cb05c6f379f2dab9ec0ddb13a87f029318162657..b9c4cbc4d5f0437d4bf638b3e1c0392188bb50a9 100644 (file)
@@ -169,6 +169,11 @@ lima_program_optimize_fs_nir(struct nir_shader *s)
    NIR_PASS_V(s, nir_lower_regs_to_ssa);
    NIR_PASS_V(s, nir_lower_tex, &tex_options);
 
+   do {
+      progress = false;
+      NIR_PASS(progress, s, nir_opt_vectorize);
+   } while (progress);
+
    do {
       progress = false;