Separate names with a comma.
Discussion in 'Parallels Desktop on a Mac with Apple silicon' started by BradleyF3, Aug 14, 2021.
My M1Max will also be delivered in the next few weeks. I hope there will be a solution soon.
Seriously, I am a solid customer. Apple M1 Max with 10-core CPU, 32-core GPU, 16-core Neural Engine, 64GB unified memory! 2TB SSD storage. I only need parallels for Audials One and D2R. Give me a reason to make that subscription. :-D yes you can
Hi, being a long-time Diablo fan myself, I looked into how to make D2R work on our Macs.
First of all, I don't understand why anyone from the Parallels' engineering team doesn't chime in with the real reason why there is no DX12 support in Parallels and won't be for some time. The reason is that neither OpenGL nor Metal, the two graphic frameworks that are natively supported by macOS, do not have feature parity with DX12. If you cannot translate a DX12 command into a Metal one, you cannot have DX12 compatibility in the VM. Until Apple adds DX12-like features to Metal, the current status quo will remain. Another often question that I see here (and that Parallels ignores to address for some reason) is whether this could be solved by passing eGPU straight to the VM. This again cannot be done due to macOS not having PCI-e pass-through feature in the kernel like Linux does. Again, until something changes on Apple's side, there is nothing Parallels can do about it.
Now to the Diablo. First a little teaser:
I don't show gameplay, because I didn't have enough patience to wait until it loads up. Bear in mind that I am running this demo on a very low spec dual core CPU from 2017. However, menu loaded just fine, so I guess the game would eventually load as well? I have an M1 Max MBP arriving on Friday and I'll see if the game is actually playable on that machine before making any official tutorials. For people who want to try right now on their high-core Intel Macs or on their M1 Macs should look into "dxcpl" with Feature Level 12_2 and "Force WARP" enabled . Windows 11 + Windows SDK installed required. To explain what it does, WARP is Microsoft's official software renderer. Therefore it renders on a CPU and doesn't care what DX level your GPU, or VM hypervisor supports. You'll need a really beefy CPU to play any modern game this way. The plus side is that this can be used to play any DX12 game, not just D2R.
I'll post here an update on playability once I get the new MacBook.
This is great, very informative. Thank you! I'm looking into DXCPL now and will give it a try (on M1) with what I've found that I believe is the correct information, but to possibly save on making any errors could you provide any further info on how to configure DXCPL once installed in Parallels for this scenario?
1) Download and install https://developer.microsoft.com/en-us/windows/downloads/windows-sdk - leave all options ticked (will consume around 3.4GB)
2) Reboot the VM
3) Open the Run window and type: dxcpl
4) If you got a dxcpl window, proceed further. If you got error, the SDK is not installed properly
5) At the top of the dxcpl window, browse to the D2R.exe and add it on the list
6) Then at the bottom of the window, in the Feature Level selection, select 12_2
7) Tick "Force WARP"
8) Close dxcpl
9) Run D2R as usual
Thanks for these good tips. You are the first to bring light into the darkness.
So, I did this exactly as you described and I am running the Mid 2020 Intel iMac -- I gave the recommended settings (half available RAM/CPU -- 10 cores @ 3.6ghz and 32gb RAM) I can get the game to start and that's about all I can say for it. Without starting it in windowed mode it all but freezes and crashes the entire VM, and in windowed mode we don't get much further. Glitchy sound etc. So it's cool that you figured out a way to make it run at all! First one I have seen yet, this is not a complete solution IMO.
So doing some of my own research given what you explained in your first paragraph it seems Diablo 2 Resurrected should be able to be played via Wine.
Wine 4.0 allows for Vulkan and Direct3D 12 support, basically the Wine layer uses Vulkan to process the DX12 API. You can then implement MoltenVK on top of this (compatibility layer for Vulkan over Metal https://github.com/KhronosGroup/MoltenVK) to translate to Metal in the final steps.
I know for a fact that this is the way that they are playing D2R on Linux, but the MoltenVK should make this course of action available to Mac users also correct?
I am not a technical expert on this subject, but I believe I understand the foundational principles of the logic behind it. Perhaps you could chime in? You seem to have a much greater grasp of the issue.
In this very funny (and sad) scenario, it is true that Linux is better for gaming than macOS. D2R is not a Vulkan game, but a DX12 game. So if you want to render is using Vulkan, you have to have a translation layer. There are two major DX->Vulkan translation libraries: DXVK and Valve's VKD3D that's being used in their SteamOS/SteamDeck (both are Linux-based). If you have a native Vulkan support in your OS, that's all you need and that's why you can play D2R there. But since macOS does not have native Vulkan support, you need to translate Vulkan to Metal (=MoltenVK) and this is where you hit the wall again as Metal does not support have feature parity with DX12...
If you go to this MoltenVK GitHub issue and search for the word "Apple", you will see some of the reasons that are making DX12 on Metal impossible for now: https://github.com/KhronosGroup/MoltenVK/issues/214
I am literally so annoyed with these issue that I bought a new PC to host linux on today and run multiple operating systems via KVM.
I genuinely love the way that Apple products mesh together almost seamlessly, and I enjoy the unix-like environment for development with convenience features sprinkled in all over but that all being said, I am 100% not a fan of the severe hardware limitations in place on the desktop environment. I am 100% ok with these things on mobile devices for the most part but I feel like I am trapped inside my iMac and that's not a great feeling for a developer.
To make my decision easier, it's incredibly easy to virtualize MacOS on any other hardware meaning their marketing choice is stupid twice.
Thanks for your input on these scenarios anyway, I learned quite a bit about graphical APIs researching this.. As far as running the game on the M1 I would think you'd have a better experience than I had using the Intel based processor because of the nature of the graphics integration into the single chip already. Hopefully that pans out for you so you don't have to go the same route I did.
Yeah, it's frustrating to have such a powerful hardware crippled by their software choices... Honestly I am putting my hopes into the Asahi Linux group that is making a Linux distro capable of running directly on the M1 Mac lineup. Once they finish the GPU driver, we'll be able to use DX12 -> Vulkan gameplay by dual-booting into Linux. And it will probably happen sooner than Apple improves Metal...
In another sad news, I received my M1 Max MBP and Diablo does not run on it. It crashes right before the menu opens. The reason? Microsoft's unstable x64 emulation layer... I am not sure if they consider a finished product or if they are still working on improving the compatibility of if. I'll keep trying with future versions of Windows 11, but Diablo is certainly not the only victim of their bad job - I tried few more Steam games and they just crash upon startup. We can be happy that Apple did a lot better job with their Rosetta.
Yes, it is a shame. My 5k MBP will be a beast for work but a duck for gaming.
Hi has there been any updates on this at all?
With these tips managed to open the game but ended up with black screen and D2R logo at the bottom.
Same for me. Gave up waiting for it to load after about 20 minutes.
Given the responses in this thread about Metal support, I have a feeling this isn't going to be fixed through Parallels... At this point, I think we either wait for a dedicated M1 supported version from Blizzard, or hope it can somehow get sorted out using Crossover. I think even if Parallels ended up getting it working somehow, the performance hit from whatever fix is put in would be too much to make it worth it.
Hey! Did u manage to finally run d2r on your m1 MBP?
I gave up even the idea of purchasing D3-II until someone actually gets it running. But haven't heard anything here or over at MacRumors forum.
Pretty interesting and sad. And quite disappointing that Parallels support can't be bothered to weigh in on this issue. Though, thanks @jankais3r for the insight.
Especially now that Battlenet has the game on sale!