We do query caps quite a lot and this struct should be used to cache
results and to make it easier to express more complex dependencies between
features (e.g. images being supported or not).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29205>