vulkan: Implement support for dedicated imported allocations

Closed Philip Langdale requested to merge philipl/libplacebo:dedicated into master
Dedicated allocations are ones where memory is allocated with
a single image or buffer specified at allocation time, and only
that buffer or image can be bound to the memory.

Our first use-case for supporting it is to handle importing dma_bufs
on AMD hardware, where the driver says dedicated allocations are

There are no dramatic changes required to enable this. We are not
supporting generic dedicated allocations at this time as we don't
have a use for them.

This change also includes alignment verification logic from haasn.

I've tested this on Intel hardware, which doesn't require dedicated
allocations, but works fine if you force them.
Edited by Philip Langdale

Merge request reports