After the DXGI device refactor in c5deedef2dcc920f29061c50e097f66a32f1f05e,
device extensions required for OpenVR interop would not be enabled correctly
because the VR-related code is now being called from both the D3D11 and DXGI
DLLs rather than just the DXGI DLL, and the D3D11 one is not in the expected
state when querying required device extensions. Querying them during instance
creation fixes that problem as it moves the relevant code back to the same
DLL which creates the Vulkan instance.
Adding an extension will now require an additional step, but
this evolved version of the extension list code is more sane
and the structures can be more easily copied around.
Preserves the per-instance and per-adapter extension sets across
multiple Vulkan instances. Works around initialization order issues
with Unity-based VR apps.
* Add Custom PCI Vendor and Device ID Support
Allow the user to configure DXVK to use a custom PCI Vendor and Device ID, so that the program behaves the same on different cards.
* Remove AMD/NVIDIA/INTEL Shortcuts
* Remove extra semicolon
* Return DxvkGpuVendor to being an enum class
* Fixed hexadecimal output
Support for extensions can now be queried from the device
object in an efficient way. This will allow the backend to
use optional extensions for the purpose of optimization.