[PATCH 2/2] etnaviv: ASTC texture support
Wladimir J. van der Laan
laanwj at gmail.com
Wed Nov 1 19:32:52 UTC 2017
> These formats are in a completely different space from the others, in the
> hardware (programmed through a different register), so IMO it makes sense to
> add a new format bit for it, just like for EXT_FORMAT.
>
> Relying on mesa's judgement on whether something is astc seems brittle.
>
>
> Sorry I do not share this option. Did you had a look at
> https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/auxiliary/util/u_
> format.csv ?
>
> All astc formats are marked as those and why should we not trust mesa here?
Well vivante's opinion of what an ASTC format might differ from mesa's
some day. I think we should keep specific implementation details
such as what register switches formats contained to our driver.
This keeps etnaviv_format.c self-contained.
It's not like we're running out of bits or something. I really disagree
with calling into mesa for this, at least in the sampler view code.
> Such helper could look like: https://hastebin.com/jelisigife.m
>
> Do we need ctx->specs.tex_astc at all? We could simply do it like this in
> etnaviv_screen.c:
>
> if (util_format_is_astc(format))
> supported = VIV_FEATURE(screen, chipMinorFeatures4, TEXTURE_ASTC);
It's also using this in the state emit code, where directly calling into
VIV_FEATURE is ugly.
Also, some GPUs seem to have TEXTURE_ASTC but broken ASTC (such as the GC7000lite)
so this logic must be extended some day. Having a specs bit is easier
for that.
(also, vivante is doing away with feature bits on newer GPUs; we're
going to have our own model->specs mapping database like them at some point)
Wladimir
More information about the etnaviv
mailing list