On Fri, Feb 22, 2019 at 12:39 PM Jason Ekstrand <ja...@jlekstrand.net> wrote: > > On Fri, Feb 22, 2019 at 9:51 AM Eric Anholt <e...@anholt.net> wrote: >> >> Timothy Arceri <tarc...@itsqueeze.com> writes: >> >> > shader-db results i965 (SKL): >> > >> > total instructions in shared programs: 13219105 -> 13024761 (-1.47%) >> > instructions in affected programs: 1169457 -> 975113 (-16.62%) >> > helped: 599 >> > HURT: 154 >> > >> > total cycles in shared programs: 333968972 -> 324822073 (-2.74%) >> > cycles in affected programs: 130032440 -> 120885541 (-7.03%) >> > helped: 590 >> > HURT: 216 >> > >> > total spills in shared programs: 57947 -> 29130 (-49.73%) >> > spills in affected programs: 53364 -> 24547 (-54.00%) >> > helped: 351 >> > HURT: 0 >> > >> > total fills in shared programs: 51310 -> 25468 (-50.36%) >> > fills in affected programs: 44882 -> 19040 (-57.58%) >> > helped: 351 >> > HURT: 0 >> > --- >> > src/compiler/nir/nir_lower_phis_to_scalar.c | 1 + >> > 1 file changed, 1 insertion(+) >> > >> > diff --git a/src/compiler/nir/nir_lower_phis_to_scalar.c >> > b/src/compiler/nir/nir_lower_phis_to_scalar.c >> > index 16001f73685..f6f702bca15 100644 >> > --- a/src/compiler/nir/nir_lower_phis_to_scalar.c >> > +++ b/src/compiler/nir/nir_lower_phis_to_scalar.c >> > @@ -74,6 +74,7 @@ is_phi_src_scalarizable(nir_phi_src *src, >> > /* A phi is scalarizable if we're going to lower it */ >> > return should_lower_phi(nir_instr_as_phi(src_instr), state); >> > >> > + case nir_instr_type_tex: >> > case nir_instr_type_load_const: >> > case nir_instr_type_ssa_undef: >> > /* These are trivially scalarizable */ >> >> Sounds promising, but I would definitely not describe instr_type_tex as >> "trivially scalarizable" -- could you explain what's going on with this >> patch? > > > I think I can for Intel though I'm not sure how this affects other drivers. > > On Intel hardware, we almost always have to combine all the texture sources > into one big message. Since having more than one source is very common, this > means that we have to make a temporary copy of the sources anyway. Because > we're copying them, having them contiguous (a vector in NIR terms) doesn't > actually gain us anything. We may as well let NIR scalarize them and give > more freedom to the register allocator and other NIR passes which may need to > clean things up. We don't want to make the same choice for destinations as > they are required to be contiguous. >
hmm, but this is abut the phi src (ie. the tex dest), not the tex src, isn't it? BR, -R > Feel free to copy+paste that somewhere. I agree with Eric that they are not > "trivially scalarizable" but they are safe to scalarize. > > --Jason > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev