SpirvShader: Implement descriptor set arrays
Introduce a new Object::Kind - DescriptorSet.
This represents a pointer to a vk::DescriptorSet*, which is now
dereferenced to access the buffer data in OpAccessChain or OpLoad / OpStore.
This shuffling is required to handle descriptor array access
as the array index is only known at OpAccessChain time.
Tests: *dynamic*
Bug: b/
126330097
Change-Id: Id754d966d8945f4e4fcf7895ed2210ce4f6ba713
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/28391
Tested-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>