[Mesa-dev] Etnaviv on mesa master vs. Array._DrawVAO

Wladimir J. van der Laan laanwj at gmail.com
Fri Aug 31 13:47:16 UTC 2018


> I'm looking into forward porting laanwj's patches for GC7000 support to
> current mesa master. Luckily most of it already got merged last November
> with mostly only the texture descriptor support missing(
> https://github.com/laanwj/mesa/commit/b71802207432543745dff471c68fbc40495b4858)
> 
> Putting this on current master leads to this assertion in mesa when running kmscube like:
> 
>     kmscube: ../src/gallium/drivers/etnaviv/etnaviv_state.c:536: etna_vertex_elements_state_create: Assertion `element_size != 0 && end_offset <= 256' failed.
> 
> Printing the value there gives:
> 
>     etna_vertex_elements_state_create:535: size: 12, offset: 0, end_offset: 12
>     etna_vertex_elements_state_create:535: size: 12, offset: 576, end_offset: 588
> 
> I've traced this back to this commit:
> 
>     19a91841c347107d877bc750371c5fa4e9b4de19 is the first bad commit
>     commit 19a91841c347107d877bc750371c5fa4e9b4de19
>     Author: Mathias Fröhlich <mathias.froehlich at web.de>
>     Date:   Sun Apr 1 20:18:36 2018 +0200
> 
>         st/mesa: Use Array._DrawVAO in st_atom_array.c.
> 
>         Finally make use of the binding information in the VAO when
>         setting up arrays for draw.
> 
>         v2: Emit less relocations also for interleaved userspace arrays.
> 
>         Reviewed-by: Brian Paul <brianp at vmware.com>
>         Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
> 
> And indeed commits prior to that one work as expected. Any hints what
> would be the right fix to not trigger the assert?

Hmm strange,

So on etnaviv devices, as far as I know, the maximum 'stride' between vertices is 256.

This means that a starting offset of 576 is not possible.

(even more, it says size=12, so I'm really confused why it is requesting an
index of 576 into that, it looks invalid)

Regards,
Wladimir


More information about the mesa-dev mailing list