As @doitsujin requested in Discord -- partial proposed API here: https://github.com/roothorick/dxvk/commit/32a2175b0fff2b835f2135e92354d5dfb81c3146
This is currently incomplete -- it still needs some bits about sharing instance, device, and physical device handles, as well as things related to queues.
I started working on a somewhat generic interop API for this purpose in the current vr branch.
Interop API landed in master a while ago, namely the IDXGIVkInteropDevice and IDXGIVkInteropSurface interfaces. Let me know if you need anything else.
Nothing extracted yet.
After the extensive argument in #38 it seems that some way to connect dxvk and e.g. VK9 together so they operate under the same instance and device, sharing resources and whatnot, will eventually be necessary. I've already been thinking about a mechanism to integrate with WineOpenVR, but I'd hate to write something that conceptually could be used to support mixed-API applications via integration with VK9, but in practice is too narrow and would require significant refactoring.
So, those that know DirectX and Vulkan far better than I do: What objects would need to be shared? What would the function calls between the libraries look like? Is a common state machine necessary? Etc