On 19.07.18 11:47, Timothy Arceri wrote:
On 19/07/18 08:31, Eric Anholt wrote:
Danylo Piliaiev <danylo.pilia...@gmail.com> writes:

After optimization passes and many trasfromations most of memory

"transformations"

NIR holds is a garbage which was being freed only after shader deletion.

"is garbage"

Freeing it at the end of linking will save memory which would be useful
in case there are a lot of complex shaders being compiled.
The common case for this issue is 32bit game running under Wine.

The cost of the optimization is around ~3-5% of compilation speed
with complex shaders.

Signed-off-by: Danylo Piliaiev <danylo.pilia...@globallogic.com>

This seems good, and I'm running it through the CTS now.


The problem is this does the sweep too early. We still do lots of work on NIR after this, I've thought about this a few times and it really seems we should be able to call a driver specific function from the st and pass it the IR so it can do what ever it wants (lowering opts etc) and spits it back out. Once this is done we should then call sweep and cache the IR.

At the very least we should call sweep before we cache NIR rather than where this patch places it.
I debugged mesa once more and cannot see where else memory is allocated for NIR after this sweep. Could you point it to me? After this sweep the memory NIR holds never grows. Later this NIR is cloned from and these cloned NIRs are being sweeped in other place.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to