PC [Windows 10] Terraria not using DXVK?

twindtrout9783

Steampunker
I'm trying to use DXVK 1.10.1 with Terraria in an attempt to fix some of the lag spikes I have when flying around my world.
I added the 32-bit d3d9.dll to the game's files yet it doesn't use it when I load.
Here are my specs if needed:
OS: Windows 10 20H2
CPU: Ryzen 7 3700x with 16 Threads at base clock 3.59 GHz and a boost clock of 4.3 GHz
GPU1: AMD Rx 570 4gb (I'm stuck with this GPU for now due to obvious reasons.)
GPU2: Nvidia Quadro 600 (This only exists to run an extra monitor for Discord.)
RAM: 32gb DIMM DDR4 3600 MHz

Storage:
Boot Drive (HDD): 1.8tb at 7200rpm
NVME SSD (for large games with long load times): 932gb
Secondary HDD: 3.6tb at 7200rpm
I did create a symbolic link so that my savedata will load from my secondary HDD (more bandwidth), but I haven't tested if that fixes it yet.
1655268358116.png

1655268410066.png
 
Bump
This is the only post anywhere about attempting this. I would be interested in knowing if the game can be forced to load the dll from the folder instead of using the system DLL. I can play the game fine, I just think it could be just a tiny bit nicer if I could run it on Vulkan and use swapchains to pass the DWM in borderless mode.

(29.11.2022)
I figured it out!

It's surprisingly simple, finding the how-to was the hard part. One can use a feature of Windows called DLL Redirection.
  1. Open regedit.exe with administrator rights (NOTE: IMPROPER MODIFICATION OF THE WINDOWS REGISTRY CAN BE DESTRUCTIVE, BACKUPS RECOMMENDED)
  2. "Create a new DWORD key called DevOverrideEnable at HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options and set it to 1. After this, you must restart your computer to see the effects."
  3. Make sure you have the 32-bit version of DXVK's d3d9.dll in the same folder where Terraria.exe is located.
  4. Create a new text file in that folder and rename it Terraria.exe.local. Windows only looks for a file named appname.exe.local for this, the contents do not matter.
  5. The DLL loading order is now modified and the game should run with DXVK.
Now my only problem is that Nvidia's DXGI layering for Vulkan does not want to work.
 
Last edited:
Bump
This is the only post anywhere about attempting this. I would be interested in knowing if the game can be forced to load the dll from the folder instead of using the system DLL. I can play the game fine, I just think it could be just a tiny bit nicer if I could run it on Vulkan and use swapchains to pass the DWM in borderless mode.

(29.11.2022)
I figured it out!

It's surprisingly simple, finding the how-to was the hard part. One can use a feature of Windows called DLL Redirection.
  1. Open regedit.exe with administrator rights (NOTE: IMPROPER MODIFICATION OF THE WINDOWS REGISTRY CAN BE DESTRUCTIVE, BACKUPS RECOMMENDED)
  2. "Create a new DWORD key called DevOverrideEnable at HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options and set it to 1. After this, you must restart your computer to see the effects."
  3. Make sure you have the 32-bit version of DXVK's d3d9.dll in the same folder where Terraria.exe is located.
  4. Create a new text file in that folder and rename it Terraria.exe.local. Windows only looks for a file named appname.exe.local for this, the contents do not matter.
  5. The DLL loading order is now modified and the game should run with DXVK.
Now my only problem is that Nvidia's DXGI layering for Vulkan does not want to work.
To continue the theme of necro-ing/bumping and for those of you Googling this issue (which, admittedly, probably isn't very many people), this is the answer. To make it more clear though, "HKLM" means "HKEY LOCAL MACHINE" in the Registry Editor (regedit.exe).
Now to figure out how to enable DXVK in TModLoader... (uses DX11 instead of DX9, so that's fun)
 
Back
Top Bottom