On Wed, 2017-01-25 at 17:12 +0100, Józef Kucia wrote:
The first step for implementing D3D12 in Wine is adding a support for Vulkan. This is required in order to properly implement DXGI swapchains which are linked to a given HWND. Generally, I recommend to focus on Vulkan support first. Vulkan support in Wine will be immediately beneficial to Vulkan applications, and it is the starting point for further D3D12 work.
Wine Staging has experimental patches for Vulkan support. Are those patches in a state that can be considered for inclusion into Wine? If not, what further work is needed?
There are a number of concerns I have looking at those patches:
The API translation is done in the Vulkan loader. This is pr oblematic because applications may ship their own loader, or statically link one. Applications that do that would not work under Wine.
There does not appear to be support for instance layers. The Steam overlay uses layers for Vulkan games. Vulkan debuggers also rely on them, e.g. RenderDoc.
How about implementing the API translation as a Vulkan ICD and ship the official Khronos Vulkan loader as-is?