zink: fix descriptor buffer handling
I originally wrote this before validation existed. Surprisingly, there were bugs.
Then also !20264 (merged) subtly broke suballocation for heaps that have multiple memory types, and no CI jobs run with descriptor buffer, so it wasn't caught until now.