Vulkan: Reduce onVertexBufferChange/onVertexAttributeChange When we loop each attribute we end up calling onVertexBufferChange or onVertexAttributeChange. For most drivers supportsVertexInputDynamicState is enabled. This means we are repeatedly check feature bit and set DIRTY_BIT_VERTEX_BUFFERS repeatedly for each dirty attributes. This CL moves these calls out of attribIndex for loop. ContextVk::onVertexArrayChange() now get called directly from VertexArrayVk::syncState() so that we only go through most logic only once if supportsVertexInputDynamicState is enabled. Bug: b/439073246 Change-Id: Ib1316560ef686222e72b4d7ad32c63b043dfbaa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896934 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>