For ANGLE with Vulcan backend, I am running some app.
Consider a below snippet of GLES code
glClear(DEPTH);
glClear(COLOR|DEPTH);
glEnableVertexAttribArray(ind=0x2)
glEnableVertexAttribArray(ind=0x0)
glEnableVertexAttribArray(ind=0x1)
glEnableVertexAttribArray(ind=0x3)
glDrawElements(GL_TRIANGLES, ...) // #Draw 1
glVertexAttribPointer(ind=0x2, ...)
glVertexAttribPointer(ind=0x0, ...)
glVertexAttribPointer(ind=0x1, ...)
glVertexAttribPointer(ind=0x3, ...)
glDrawElements(GL_TRIANGLES, ...) // #Draw 2
For this code, we are seeing that our native GLES driver is able to keep attribute arrays with ind=0x1 and ind=0x2 enabled in #Draw 2 , while ANGLE
can not.
I debugged the ANGLE source code and I could not find any reason as to why ANGLE would disable ind=0x1 & ind=0x2.
These arrays are already enabled before #Draw 1 and there is no glDisableVertexArray(...) call in between that would disable it.
Why does ANGLE disable these attrib arrays ?
Thanks in advance.
Abhishek