One minute
run-game.sh
When PROTON_LOG=1 Isn’t Enough
Sometimes the basic Proton log just doesn’t cut it. For deeper debugging, you can wrap the game with a small helper script that can capture a much richer set of Wine/DXVK/VKD3D debug information and enable arbitrary environment overrides.
Credit to Ken Graunke for the original approach.
Setup
- Set the game’s launch options in Steam:
$HOME/run-game.sh %command%
- Create the script:
cat >> $HOME/run-game.sh << 'EOF'
#!/bin/sh
export DXVK_LOG_LEVEL=debug
export VKD3D_DEBUG=trace
export WINEDEBUG=+winediag,+timestamp,+pid,+tid,+seh,+vkd3d,+vkd3d-proton,+unwind,+threadname,+debugstr,+loaddll,+mscoree
# force Intel vendor ID (example from my own Mesa testing)
# export force_vk_vendor=0x8086
exec "$@" 2>&1 | tee $HOME/run-game.log
EOF
chmod +x $HOME/run-game.sh
Using the Log
After launching the game, inspect the output with:
tail -f $HOME/run-game.log
# or cat / grep as needed
Note: These debug channels can be extremely verbose. Be sure to unset the environment variables (or remove the script from the launch options) for any performance testing.
Wine debug channels reference: https://gitlab.winehq.org/wine/wine/-/wikis/Debug-Channels