User Tools

Site Tools


notes:wine

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

  • STAGING_SHARED_MEMORY=1
  • STAGING_WRITECOPY=1
  • WINEESYNC=1
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'

Others

  • :!: Anything set here will be system-wide
sudo -e '/etc/profile.d/wine-tweaks.sh'
PBA_ENABLE=1
mesa_glthread=true
AMD_DEBUG=alwayspd
NIR_VALIDATE=0
DXVK_HUD=full
DXVK_LOG_LEVEL=none
R600_DEBUG=nir,unsafemath

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
  • This is default behavior on Fedora Workstation
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'

openSUSE Tumbleweed

  • oS defaults to putting users in the users group
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'/'users'/g' '/etc/security/limits.d/99-realtime.conf' && cat '/etc/security/limits.d/99-realtime.conf'

Verify

  • Default: 0
  • Esync: 90
ulimit -r

Increase Open Files Limit

  • For Wine to be able to use the WINEESYNC environment variable
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
notes/wine.txt · Last modified: 2019/06/12 19:05 by Sean Rhone