[Mesa-dev] etnaviv: When to use supertiled layout?

Wladimir J. van der Laan laanwj at gmail.com
Mon Apr 17 15:30:19 UTC 2017


Hello,

Currently etnaviv chooses supertiled layout always for new resources that can
be rendered to, when this is available:

    bool want_supertiled = screen->specs.can_supertile && !DBG_ENABLED(ETNA_DBG_NO_SUPERTILE);

However, etnaviv does not support render *from* supertiled textures (GC3000
claims to support SUPERTILED_TEXTURE but we don't use it), only from 4x4-tiled
ones.

This means that with FBO render-to-texture, extra overhead is incurred to
re-tile the texture every frame, which likely doesn't offset the cache benefits
of using supertiled in the first place (as well as using 2x as much video memory.)

I'm not sure how to improve this heuristic though: at the time the resource is
do we know whether it will be used to texture from? I don't think so.

Another heuristic option would be to use supertiled only for scan-out surfaces.
These in most cases need a conversion to linear anyway, or (in the case of
gc3000) the PRE supports supertiled as-is.

Regards,
Wladimir


More information about the mesa-dev mailing list