Post Mon Jul 17, 2023 12:15 am

[guide] How to get Diabo 4 running as smooth as possible.

There's a lot of subjective experience in this and I'm not very knowledgeable on the technical aspects, so I encourage you to tweak things to see if you can get it to work better and share your results in the discord. This is just a guide I wanted to write in response to a frequently appearing topic in the discord so I'm not going to touch on using isboxer to configure. This is for a single PC setup and it is possible to multibox with multiple PC, but that's not something I know how to do. This post will likely be obsolete when Lax moves his current dev build to live.

I tried running 4 clients with a 16GB VRAM GPU through the toughest times. It was not fun (for me, and the people in Discord helping me lol). The largest positive impact is to use the latest dev build, which uses the new virtual input beta. Run Innerspace, right-click the Innerspace icon, click Patcher, click the Development tab, click Check For Updates just in case, then click Install Now. When it is finished patching you can close those windows. Once that is done, you will want to follow the instructions in this discord comment to get the GPULimiter.iss file ... 4130719837 and put it in the appropriate folder. The settings Lax has in this file are not intended to work for everyone, so I'll share my experiences with what values work best for me so far.

Before editing that file, launch your team to make sure you can, and then set your in-game graphics settings to the absolute minimum on all clients. It sucks, I know, but the goal is to box, and you can adjust these later if you feel you can.

Now, on to editing the GPULimiter.iss file. SetGPUMemoryReservation[500] works just fine for me and reasonable changes to this seem to have little impact overall. The shared memory seems to also be negligible and has no noticeable impact, so I have both of those set to SetSharedMemoryReservation[100] and SetSharedMemoryBudgetOverride[1000] though I suspect these values are overkill, but I do not think it uses the VRAM so it matters little. Now, the big one, SetGPUMemoryBudgetOverride[7000]. This is the one you'll want to adjust based on your GPU. The formula I use is to take the VRAM of the GPU connected to the monitor, subtract 2GB (to allow headroom to use Chrome on my second monitor), and then divide that number by how many clients are run. For example, 2 clients on a 16GB GPU would result in 16-2=14 (total available VRAM) 14÷2=7 (per client VRAM) add 000 to convert that GB value to MB, and that is how I came up with 7000. I imagine if you don't use a second monitor for Chrome you can get away with either subtracting 1 or not subtracting at all, but I haven't tested it.

Everything up to this point covers the basics and the majority of you can stop here and hopefully enjoy multiboxing Diablo 4. If you run into further issues you can hit up the discord to try and get help working them out. But, if you're convinced that your hardware just isn't up to the task of doing what you want, read on.

Running 4 clients with 16GB VRAM was doable but not a great experience, as I would have to restart my clients fairly often. The second biggest positive impact for me was when I removed an 8GB GPU from my old PC and installed it into my main PC. Diablo 4 has an in-game option to select your GPU. If you run 2 clients with 2 GPUs I suspect you could just use the dev build of Innerspace and not even use the GPULimiter.iss file so that the game manages the VRAM itself in that scenario, even if they have mismatched VRAM. If you're using 4 clients with 2 GPUs with the same VRAM, you can use the GPULimiter.iss as explained earlier. But If you're like me and using 4 clients with two GPUs with mismatched VRAM, things get a little more tricky.

Lax was kind enough to write the code to use in the GPULimiter.iss file for those of us with multiple GPUs. ... 6663435365 and if you've read this far, you should somewhat know what to do with this. The difference is that each of those lines applies to a character set slot. So launch your team, choose in-game which clients you want to use which GPU, and note the slots in your character set those clients are using. In my case, with a 16GB GPU and an 8GB GPU, I have 2 clients on each. I have the 16GB GPU connected to my monitor, so in my earlier formula, I subtract the 2GB for chrome overhead still, but for the 8GB GPU, it seems I don't need to do that. This means that the formula I use for the second GPU is just VRAM ÷ clients, 8÷2 in my case. This means that in my GPULimiter.iss I have 2 slots set to 7000 and 2 slots set to 4000.

With these settings, I can play for MUCH longer without having to restart my clients, and I even use medium settings on the clients attached to the 16GB GPU. I do still sometimes have slowdown on the GPU using the 4000 setting, but it's still a huge improvement from what I experienced before. I think that a recommended setup for 4 clients would be either a single 24GB GPU or 2 16GB GPU.