On Wed, Aug 15, 2018 at 5:36 PM Timothy Arceri <tarc...@itsqueeze.com> wrote:
> On 16/08/18 02:10, Jason Ekstrand wrote: > > On Tue, Aug 14, 2018 at 7:25 PM Timothy Arceri <tarc...@itsqueeze.com > > <mailto:tarc...@itsqueeze.com>> wrote: > > > > On 09/08/18 05:05, Jason Ekstrand wrote: > > > Commit 4434591bf56a6b0 caused substantially more URB messages in > > > geometry and tessellation shaders. Before we can really enable > this > > > sort of optimization, We either need some way of combining them > back > > > together into vectors or we need to do cross-stage vector element > > > elimination without splitting everything into scalars. > > > > You should be calling: > > > > nir_compact_varyings() after remove_unused_varyings this should do > most > > of what you want. > > > > > > Does that turn things back into vectors? The problem we're hitting is > > not that things aren't compacted, it's that we want to read/write whole > > vectors at a time as much as possible. Just reverting the patch isn't > > quite the proper solution because we want to be able to compact things > > and it would be nice if we could load two variables at a time if they're > > packed side-by-side in one vec4. However, it does solve the perf > > regression for now. > > Yes. nir_compact_varyings() compacts everything into vec4s. The only > thing it doesn't currently do is compact the locations (the nir->llvm > pass does this for radeonsi anyway). > I think I was unclear. nir_compact_varyings does pack things tightly but it doesn't turn each set of 4 scalar vars into a single vec4 var which is what we would need in order for it to fix the perf problem caused by these patches.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev