-
Notifications
You must be signed in to change notification settings - Fork 8
Building & Debugging
To build a dev build of d8vk, run the following handy helper script:
./build_d3d8.sh main build --dev-build
Where build
is your builds folder and main
is an arbitrary name for this build.
If you need to make a Windows MSVC build (usually only for development purposes), you will need to provide d3d8.h
, d3d8types.h
, and d3d8caps.h
. They can be found here from the August 2007 DirectX 9 SDK, the last version to include these headers, subject to the DirectX SDK license. It is sufficient to put them in the root include/
folder.
See here for installation instructions.
Try running the game with gamescope (gamescope %command%
in Steam) if the game creates misbehaving windows or struggles to alt-tab.
Alternatively, you can try Wine desktop: wine explorer /desktop=WineDesktop,1920x1080 %command%
Debugging 32-bit programs on a 64-bit machine on Wine, often programs without debug symbols, can be quite difficult.
There are many useful environment variables for debugging DXVK. The debug HUD is also essential and can tell you if you're using D3D8.
Before debugging, ensure you have set the right WINEPREFIX
where you installed DXVK. The default is ~/.wine
.
Run the following command:
gdb -x <path to WineReload.py> -ex run --args <wine executable> <target .exe> [args...]
- Make sure to get
WineReload.py
-
<wine executable>
is the regularwine
binary. The default is/usr/bin/wine
- Proton will have its own version, e.g.
~/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine
- Proton will have its own version, e.g.
-
<target .exe>
is the Windows exe you wish to debug. -
[args...]
is any optional arguments to pass to the exe
When you get your first SIGUSR1
, run the GDB command wine-reload
(or wr
) to load debug symbols etc.
- And then execute
continue
- After that, you shouldn't get another
SIGUSR1
- If you don't ever get a
SIGUSR1
I suggest calling__debugbreak();
inDirect3DCreate8
. - You must run
wine-reload
after d3d8.dll is loaded.