====== Environment Variables ====== * Mesa: https://docs.mesa3d.org/envvars.html * VKD3D: https://github.com/HansKristian-Work/vkd3d-proton#environment-variables * NVIDIA: https://download.nvidia.com/XFree86/Linux-x86_64/535.54.03/README/openglenvvariables.html ====== Global ====== * :!: 2023/12/12: ''STAGING_WRITECOPY=1'' breaks Wine * 2024/02/08: fd esync errors were noticed and have been at random times in the past; disable esync sudo -e '/etc/profile.d/99-wine-tweaks.sh' # Staging export STAGING_RT_PRIORITY_SERVER='90' export STAGING_RT_PRIORITY_BASE='90' #export STAGING_WRITECOPY='1' export STAGING_SHARED_MEMORY='1' # Large Address Aware export WINE_LARGE_ADDRESS_AWARE='1' export PROTON_FORCE_LARGE_ADDRESS_AWARE='1' # Esync and Fsync #export WINEESYNC='1' export WINEFSYNC='1' export WINEFSYNC_FUTEX2='1' # VKD3D export VKD3D_CONFIG='dxr' # Proton-GE export DXVK_ASYNC='1' # Logging export DXVK_LOG_LEVEL='none' export WINEDEBUG='-all' export VKD3D_DEBUG='none' export VKD3D_SHADER_DEBUG='none' # End ====== NVIDIA ====== # NVIDIA export __GL_ALLOW_UNOFFICIAL_PROTOCOL='1' export __GL_SHADER_DISK_CACHE='1' export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP='1' export __GL_IGNORE_GLSL_EXT_REQS='1' export __NV_SIGNED_LOAD_CHECK='none' export __GL_THREADED_OPTIMIZATIONS='1' # NVAPI export DXVK_ENABLE_NVAPI='1' export PROTON_ENABLE_NVAPI='1' ===== Other ===== __GL_YIELD='USLEEP' __GL_SYNC_TO_VBLANK='0' __GL_LOG_MAX_ANISO='4' __GL_MaxFramesAllowed='1' ====== Permissions ====== * For Wine to be able to use the ''STAGING_RT_PRIORITY_SERVER'' environment variable * Allows ''rtprio'' up to ''94'' 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? ===== RT Priority Permissions ===== * :!: This makes the assumption that the current user is also part of a group with the same name ((2023: This is the case for Fedora 39, openSUSE TW, and Ubuntu 23.10)) * Verify groups with the ''groups'' command groups sudo mkdir -p '/etc/security/limits.d' && echo -e "@CHANGEME - rtprio 94\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 ==== * Default: ''0'' * Ideal: ''94'' ulimit -r ===== Increase Open Files Limit ===== * For Wine to be able to use the ''WINEESYNC'' environment variable optimally 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'' * Ideal: ''1048576'' ulimit -Hn