4c4431b674
When operating in "bindless" mode, the device will own 2 descriptor heaps, one for views, and one for samplers. Every time a view is created (image view, buffer view), a slot is allocated for it out of the device view heap for each usage type (sampled vs storage). Then, in a future change, descriptor sets will just contain view/ sampler indices instead of actual descriptors. Instead of copying these to a cmdbuf-owned descriptor heap, we can directly bind the descriptor set as a buffer. We'll also modify shaders to perform an indirection and index into the device heap. Buffers also get views set up on creation. In a perfect world, we could just put addresses/sizes in the descriptor set, but DXIL doesn't support loading from addresses, we need descriptors. When robust buffer access is disabled *or* descriptor set buffer views reference the remainder of the buffer, we can just re-use a view from the buffer and use an offset. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21913>