Commit 40a2a9120a441081b2583f07192cb7dd4bac221e

Charlie Lao 2025-07-15T14:39:10

Track mElementArrayBuffer in std::vector<VertexBinding> Right now mElementArrayBuffer are treated a little bit differently from other vertex buffers, mainly because of elementBuffer does not have corresponding "attributeIndex" to bind to. But a lot of logic in VertexArray are same for mElementArrayBuffer and mVertexBindings. In recent CLs, we are using mBufferBindingMask to track both mElementArrayBuffer and mVertexBindings with kElementArrayBufferIndex represents element buffer. With that, some of logic handling buffers can be merged, with looping of mBufferBindingMask bits. In later CL, we are going to separate "binding" from "buffer" so that we can move buffer out of VertexArrayState class. So this is also a preparation CL so that when we move buffers out of VertexArrayState class, it does so for all buffers (both element buffer and vertex buffers). In order to track how many vertex buffers in mVertexBindings, a new variable mMaxVertexAttribBindings is added. In later CL when we move buffers out of VertexBinding, some of this CL's change will be reverted back, mVertexBindings will be reverted back to track only bindings and mMaxVertexAttribBindings will be deleted. Bug: b/433331119 Change-Id: Idd2cfe4ce64bb22923bac70abb752e132fe1abd3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6758215 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>