[PATCH 3/3] etnaviv: Check extended format availability on GPU

Wladimir J. van der Laan laanwj at gmail.com
Tue May 16 16:04:04 UTC 2017


Hello Philipp,

On Tue, May 16, 2017 at 04:33:34PM +0200, Philipp Zabel wrote:
> Hi Wladimir,
> 
> On Tue, 2017-05-16 at 10:42 +0200, Wladimir J. van der Laan wrote:
> > Current information shows that both extended texture/render formats
> > and texture swizzling were introduced with the HALTI0 feature bit,
> > available on GC2000/GC3000.
> 
> With this patch applied, trying to import R8_UNORM dma-buffers via
> EGLImage results in an endless recursion:
> 
> etna_copy_resource -> etna_blit -> util_try_blit_via_copy_region ->
> util_resource_copy_region -> etna_transfer_map -> etna_copy_resource ->
> etna_blit -> ...

Apparently the software fallback isn't kicking in, that is a bug.

> The only thing that looks remotely related is RS_FORMAT_R8I, but that is
> marked as extended format in rnndb and doesn't fit into
> RS_CONFIG_SOURCE/DEST_FORMAT. Is it even possible to tile R8/A8/L8
> textures in hardware?

I'm afraid so -
As far as I know the RS cannot deal with the extended formats at all,
neither on GC2000 nor GC3000. They are PE-only.

The Vivante blob does the tiling for 8-bit textures in software.

On GC3000 it is possible to render to _RG, and possibly _R8I (haven't tested
this). However I'm not sure this will help with tiling, unless it's
possible to feed it a linear texture.

(there is some linear texture support in Vivantes but I have never observed how
it works, it's restricted to a narrow set of formats at least...)

Regards,
Wladimir


More information about the etnaviv mailing list