v3d: Move the stores for fixed function VS output reads into NIR.
authorEric Anholt <eric@anholt.net>
Fri, 22 Feb 2019 22:26:26 +0000 (14:26 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 5 Mar 2019 18:59:40 +0000 (10:59 -0800)
commit2780a99ff80cf84f887e8a1dca0079271f90f947
treea78779a32e805091a16d98e2c60e0d0e596903a2
parenta9dd227a47c8fd767b313827ccbb9e3c67e6b8e7
v3d: Move the stores for fixed function VS output reads into NIR.

This lets us emit the VPM_WRITEs directly from
nir_intrinsic_store_output() (useful once NIR scheduling is in place so
that we can reduce register pressure), and lets future NIR scheduling
schedule the math to generate them.  Even in the meantime, it looks like
this lets NIR DCE some more code and make better decisions.

total instructions in shared programs: 6429246 -> 6412976 (-0.25%)
total threads in shared programs: 153924 -> 153934 (<.01%)
total loops in shared programs: 486 -> 483 (-0.62%)
total uniforms in shared programs: 2385436 -> 2388195 (0.12%)

Acked-by: Ian Romanick <ian.d.romanick@intel.com> (nir)
src/broadcom/compiler/nir_to_vir.c
src/broadcom/compiler/v3d_compiler.h
src/broadcom/compiler/v3d_nir_lower_io.c
src/broadcom/compiler/vir.c
src/compiler/nir/nir_intrinsics.py