How does the allocator know what back-ends to load?
Created by: jekstrand
Because our strategy for allocation involves going to the different back-ends and asking them to allocate, we need some strategy for knowing which back-ends care to be involved at any given point. I really would like to avoid the Vulkan loader solution of "just load everything". Some companies are known to ship rather large drivers and are liable to make libdrm2_vendor.so a symlink to their libGL.so. I don't want doing something with the allocator to mean you always pay the cost of loading ~1GiB worth of shared libraries into your address space just because you have lots of big heavy GL drivers installed.
This means that you need some way of determining when a particular back-end will be needed. We have a few different options:
- The client specifically asks us to load back-ends
- We figure out, based on capabilities, which back-ends are relevant.