Hi,
On Tue, Jan 24, 2017 at 7:17 AM, Gabríel Arthúr Pétursson gabriel@system.is wrote:
With that said, what would an appropriate implementation in Wine look like?
DirectX 12 on top of Vulkan seems like an obvious choice. The two APIs are very similar, whereas the DirectX 12 programming model deviates significantly from both OpenGL and DirectX 11.
Right, Vulkan seems to be the best choice. A hypothetical implementation of D3D12 in Wine is likely to be a separate thing from wined3d.
Another approach is to leverage wined3d (i.e. OpenGL + extensions). I don't know to what extent wined3d can be used or needs to be changed in order to support DirectX 12, or if it'd be useful at all. Can anyone shed some light on whether this would be a feasible approach?
The only thing useful for D3D12 in wined3d seems to be SM5 bytecode parser.
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.
Cheers, Józef