I installed Windows 11 ARM on Parallels 17 and the VM itself runs at bare metal speed
No it does not. Parallels has a virtual GPU for Windows that works by passing the graphics calls to the host OS (Mac OS) and translating them to Metal.
It does not support Vulkan at all, so needless to say, DXVK won't work on that. I don't see why Parallels would use DXVK when they already have a Direct3D implementation.
As you correctly pointed out, Crossover is shipping a forked version of DXVK that works on Mac OS, so I suggest you use that.
As you correctly pointed out, Crossover is shipping a forked version of DXVK that works on Mac OS, so I suggest you use that.
Would virgrlrenderer with Vulkan solve the VM problem? The crossover version works, but is far from ideal.
We're not interested in supporting Mac OS directly, and DXVK is not designed to be used as a Windows display driver since it reimplements the whole D3D11 runtime rather than the DDI.
That being said, I don't really see how running the Windows version of the game through a VM and then translating D3D11->Vulkan->Metal would be any better than running the exact same Windows version through Wine while translating D3D11->Vulkan->Metal. If performance is low, this is likely due to the combination of wrappers which are all running on top of x86 emulation, but none of this would change with a VM.
@K0bin The game runs at 25-30fps inside the VM which is pretty shocking, I did not expect it to even run. I guess this has something to do with the unified video memory for the M1 GPU's. 
I guess this has something to do with the unified video memory for the M1 GPU's
No, this has nothing to do with unified memory.
Ok, to make sure I understand this right, it is a D3D <-> Metal translation (albeit indirect)?
Parallels GPU driver is most likely a DDI (Direct3D device driver interface) to Metal translation layer.
We're not interested in supporting Mac OS directly, and DXVK is not designed to be used as a Windows display driver since it reimplements the whole D3D11 runtime rather than the DDI.
That being said, I don't really see how running the Windows version of the game through a VM and then translating D3D11->Vulkan->Metal would be any better than running the exact same Windows version through Wine while translating D3D11->Vulkan->Metal. If performance is low, this is likely due to the combination of wrappers which are all running on top of x86 emulation, but none of this would change with a VM.
I heard that the Apple M1 chip is able to directly run some x86 instructions with Rosetta 2, while Windows WOW64 is supposedly already slower because of having to work with 32-bit programs and having to work with less consistent development libraries and hardware. On top of that, the VM does not run any x86 instructions directly.
Is that what you were referring to?
@K0bin The game runs at 25-30fps inside the VM which is pretty shocking, I did not expect it to even run. I guess this has something to do with the unified video memory for the M1 GPU's.
I'm trying to run FFXIV on the parallels 26 on my M4 Pro, could you describe how to get it done? I know there is XIV Mac out there but my country version is not supported so I have to use parallels, also tried with Crossover but no luck it just won't open.
I could login through the custom launcher but it shows Direct X error (30000000) after it try to start the real game.
Then I downloaded this and put the d3d11.dll & dxgi.dll into the game folder, it just showed different error.
Hello. I am a M1 MacBook owner who wants to run FFXIV. As I understand it, the present Mac version is a CodeWeavers CrossOver wrapper around Wine.
IIRC, the pipeline is DX <-> DXVK <-> Vulkan <-> MoltenVK <-> Metal. As an alternative, I installed Windows 11 ARM on Parallels 17 and the VM itself runs at bare metal speed (but no 3D acceleration).
The only problem is that the VM uses a Parallels Display Adapter to translate DirectX to OpenGL. It reminded me of DXVK.
If this VM driver was just a wrapper around DXVK instead, it would be like Wine, but more stable/less buggy. Maybe it would also be more performant. But I am not a low-level coder.
@doitsujin is this something you can do on a contract basis, or anyone else with the necessary knowledge if he is not available?