Let compositor target require more extensions, including vulkan video
I am adding support for vulkan video encode in WiVRn.
This requires a few changes in Vulkan initialization:
- Ask for a bunch of new device extensions.
- Create a queue for video encode. On current radv/anv there is no queue with both video encode and compute, so we need a different object.
- Possibly use a more recent base vulkan version, ffmpeg vulkan requires version 1.3 for instance.
Synchronization 2 feature is also required, I could not find a way to control this from the compositor target and it should not hurt to enable it regardless of the compositor target.
There is also no mechanism to query the activated extensions that are not part of generated helpers. WiVRn works around the problem by assuming that requested extensions that are available on the physical devies are active. It also fetches the function pointers outside of vk_bundle, using vk::raii.