Wine
Notes
Staging 4.6+ includes Esync patches
Gallium Nine Standalone can be used for D3D9-to-Gallium
D9VK can be used for D3D9-to-Vulkan
DXVK can be used for D3D10-11-to-Vulkan
Wine has some ability to do D3D12-to-Vulkan via it's own method (libd3dvk?)
Environment Variables
Default
echo -e "export STAGING_SHARED_MEMORY=1\nexport STAGING_WRITECOPY=1\nexport STAGING_RT_PRIORITY_SERVER=90\nexport WINEESYNC=1" | sudo tee '/etc/profile.d/wine-tweaks.sh' > '/dev/null' && cat '/etc/profile.d/wine-tweaks.sh'
sudo -e '/etc/profile.d/wine-tweaks.sh'
Other
Graphics
PBA_ENABLE=1
mesa_glthread=true
AMD_DEBUG=unsafemath,sisched,gisel,alwayspd
R600_DEBUG=nir,unsafemath
MESA_LOADER_DRIVER_OVERRIDE=iris
Other Driver Options
AMD_DEBUG=help glxgears
R600_DEBUG=help glxgears
Error Validation
NIR_VALIDATE=0
MESA_NO_ERROR=1
Logging
WINEDEBUG=all
DXVK_LOG_LEVEL=none
HUD
DXVK_HUD=full
GALLIUM_HUD='cpu0+cpu1+cpu2+cpu3;GPU-load,requested-VRAM+VRAM-usage;fps'
GALLIUM_HUD='cpu0+cpu1+cpu2+cpu3;cpu4+cpu5+cpu6+cpu7;cpu8+cpu9+cpu10+cpu11;cpu12+cpu13+cpu14+cpu15;GPU-load,requested-VRAM+VRAM-usage;fps'
Realtime Priority Permissions
For Wine to be able to use the STAGING_RT_PRIORITY_SERVER
environment variable
Allows rtprio
up to 90
and nice
up to 10
May also allow Realtime priorities to be used with other applications

TODO: Apparently you can use a username instead of a group?
Common Distros

This makes the assumption that the current user is also part of a group with the same name
1)
openSUSE Tumbleweed puts users in the users
group, and this command will need modifying
Verify groups with the groups
command
groups
echo -e "@CHANGEME - rtprio 90\n@CHANGEME - nice -10" | sudo tee '/etc/security/limits.d/99-realtime.conf' > '/dev/null' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/security/limits.d/99-realtime.conf' && cat '/etc/security/limits.d/99-realtime.conf'
Verify
Increase Open Files Limit
sudo mkdir -p '/etc/systemd/system.conf.d' '/etc/systemd/user.conf.d' && echo -e "[Manager]\nDefaultLimitNOFILE=1048576" | sudo tee '/etc/systemd/system.conf.d/nofile.conf' > '/dev/null' && echo -e "[Manager]\nDefaultLimitNOFILE=1048576" | sudo tee '/etc/systemd/user.conf.d/nofile.conf' > '/dev/null' && cat '/etc/systemd/system.conf.d/nofile.conf' '/etc/systemd/user.conf.d/nofile.conf'
Verify
Default: 524288
Esync: 1048576
ulimit -Hn