It looks like the VAO binding is not restored after a present call. This is a problem on GLES2.0 clients because we need to then code the extension wrangling logic to check if the VAO extension is supported, and load the symbol at runtime if it is, etc... Any VBO-related code seems to break when a non-zero VAO object is currently bound. So the client may be able to correctly draw one frame and then error out on subsequent frames unless they reset the binding themselves.
Coincidentally, we are not checking for the VAO extension at runtime ourselves, instead just assuming it is there.
It looks like the VAO binding is not restored after a present call. This is a problem on GLES2.0 clients because we need to then code the extension wrangling logic to check if the VAO extension is supported, and load the symbol at runtime if it is, etc... Any VBO-related code seems to break when a non-zero VAO object is currently bound. So the client may be able to correctly draw one frame and then error out on subsequent frames unless they reset the binding themselves.
Coincidentally, we are not checking for the VAO extension at runtime ourselves, instead just assuming it is there.