Hi all,

On Wednesday, 11 April 2018 16:23:52 CEST Brian Paul wrote:
> Hmm, in my experience, interleaved arrays are fairly common.
> 
> I still haven't had much time to look at Mathias's latest patches.
> 
> And I haven't looked this code in the state tracker recently, but I seem 
> to recall there was some difference between interleaved arrays (in one 
> VBO) vs. separate arrays in separate VBOs that needed special handling.
> 
> As for determining whether arrays are interleaved, if that's something 
> we still need to do, I think it could be lifted into core Mesa.  We 
> could add a new gl_vertex_array_object::_IsInterleaved field which is 
> only updated when the VAO state is modified.

We don't need such a flag.
We can easily integrate that into the current patch series. The bitmask loops 
help to loop in an outer loop by unique binding point - which would mean in 
the user space case by interleaved set or array attributes - and for each of 
that binding points (= one new buffer object) in an inner loop over the 
attributes belonging to this binding point.

I think that I have a solution for both of your concerns by just using this 
nested bitmask loops.
It is just that the interleaved scan for *user*space*arrays* (not the vbo 
interleaved case - that is already handled well or already taken from the 
already application provided data in the VAO) is currently not done in generic 
code, but can be moved there with a computational effort that is not more than 
carrying over the information from gl_vertex_buffer_binding to 
pipe_vertex_buffer and from gl_array_attributes to pipe_vertex_element.

Look at the comment in patch #1. There is a pseudo code example how this is 
meant to work.

best

Mathias


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to