====== Tweaks ====== * ''DXVK_STATE_CACHE'' is older DXVK/''1.10.3'' sudo -e '/etc/profile.d/wine-tweaks.sh' # Staging export WINE_LARGE_ADDRESS_AWARE='1' export STAGING_SHARED_MEMORY='1' export STAGING_WRITECOPY='1' # Logging export WINEDEBUG='-all' export VKD3D_DEBUG='none' export VKD3D_SHADER_DEBUG='none' export DXVK_LOG_LEVEL='none' # DXVK #export DXVK_SHADER_CACHE='0' #export DXVK_STATE_CACHE='0' # End ====== Resources ====== ===== 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/560.35.03/README/openglenvvariables.html * ''vblank_mode'' values: https://cgit.freedesktop.org/mesa/mesa/tree/src/util/driconf.h#n429 * https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/util/driconf.h?ref_type=heads#L149 ===== Windows Versions ===== * https://github.com/Winetricks/winetricks/blob/master/src/winetricks#L2428 nt351|nt40|vista|win10|win11|win20|win2k|win30|win31|win7|win8|win81|win95|win98|winme|winxp|winxp64 ====== TODO ====== ===== DXVK ===== * https://github.com/netborg-afps/dxvk-low-latency * https://github.com/Digger1955/dxvk-gplasync-lowlatency ==== D3D11 1.10.3 ==== # D3D11 d3d11.cachedDynamicResources = "a" d3d11.maxImplicitDiscardSize = "-1" d3d11.disableMsaa = "True" d3d11.invariantPosition = "False" d3d11.samplerAnisotropy = "0" d3d11.ignoreGraphicsBarriers = "True" d3d11.relaxedBarriers = "True" dxgi.tearFree = "False" dxgi.syncInterval = "0" dxgi.nvapiHack = "False" dxgi.maxFrameRate = "0" dxgi.maxFrameLatency = "1" dxgi.deferSurfaceCreation = "True" ===== Etc ===== * https://github.com/doitsujin/dxvk?tab=readme-ov-file#dll-dependencies (Hellgate london DX10 and DX8 stuff different dll overrides) * https://github.com/doitsujin/dxvk/issues/1318 (oom, laa, 32-bit) * https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39544 (ANV LTO disable) * [[bsd:notes:wine#resources|FreeBSD notes]] * https://www.phoronix.com/news/Intel-ANV-Descriptor-Heap-Merge (''VK_EXT_descriptor_heap'', ''ANV_DEBUG=experimental'', ''dxvk.enableDescriptorHeap'') * https://wiki.libsdl.org/SDL3/EnvironmentVariables winetricks sandbox * https://github.com/Winetricks/winetricks/blob/master/files/verbs/all.txt WINEDLLOVERRIDES='dsound=n' * https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu#notes (''CAP_NET_RAW'') * https://www.winehq.org/announce/6.0 (''csmt'' ''0x3'') lsof '/dev/ntsync' * https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentModeKHR.html * :?: 2026/05/09: ''immediate'' seemingly wasn't valid with DXVK on GNOME on Wayland and forced ''mailbox'' when using ''Graphic = wayland''/''DISPLAY='' ((does ''immediate'' fine with display at ''x11'' or on Xfce)) WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Drivers' /v 'Graphics' /t 'REG_SZ' /d 'wayland' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Drivers' /v 'Graphics' /t 'REG_SZ' /d 'x11' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Direct3D' /v 'renderer' /t 'REG_SZ' /d 'vulkan' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Direct3D' /v 'renderer' /t 'REG_SZ' /d 'gdi' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Direct3D' /v 'csmt' /t 'REG_DWORD' /d '3' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /v 'UseEGL' /t 'REG_SZ' /d 'N' /f WINEPREFIX=~/'.wine/Call of Duty Modern Warfare 2 (2009)' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\Drivers' /v 'Audio' /t 'REG_SZ' /d 'alsa' /f ===== AoE MIDI ===== * [[linux:distros:opensuse_tumbleweed_gnome]] (new-WoW64, PrgFiles (x86) folder) * ''wine-staging 10.18'' * ''winetricks=alsa'' fluidsynth -is '/home/espionage724/Downloads/SC55_zzdenis_v0.5.sf2' * REG_SZ CurrentInstrument #0 * fluidsynth running; AoE not running: aconnect -l client 0: 'System' [type=kernel] 0 'Timer ' Connecting To: 144:0 1 'Announce ' Connecting To: 144:0 client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 128: 'FLUID Synth (28675)' [type=user,pid=28675] 0 'Synth input port (28675:0)' client 144: 'PipeWire-System' [type=user,UMP-MIDI2,pid=2828] 0 'input ' Connected From: 0:1, 0:0 client 145: 'PipeWire-RT-Event' [type=user,UMP-MIDI2,pid=2828] 0 'input * TODO: (''win95'' with working MIDI) * NT 4.0 in winecfg has working MIDI and doesn't show that message (box art says win95-minimal) 00e8:fixme:vxd:__wine_vxd_open Unknown/unsupported VxD L"d:.vxd". Try setting Windows version to 'nt40' or 'win31'. AoE running: client 0: 'System' [type=kernel] 0 'Timer ' Connecting To: 144:0 1 'Announce ' Connecting To: 144:0 client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 128: 'FLUID Synth (28675)' [type=user,pid=28675] 0 'Synth input port (28675:0)' Connected From: 129:0 client 129: 'WINE midi driver' [type=user,pid=29314] 0 'WINE ALSA Output' Connecting To: 128:0 client 144: 'PipeWire-System' [type=user,UMP-MIDI2,pid=2828] 0 'input ' Connected From: 0:1, 0:0 client 145: 'PipeWire-RT-Event' [type=user,UMP-MIDI2,pid=2828] 0 'input ' * FreeBSD ''aconnect'': https://www.freshports.org/audio/alsa-utils ===== Vulkan ===== * [[linux:notes:wine_wayland_vulkan_wow_335]] * Might not work for OpenGL apps * TODO: ''wine REG ADD'' winetricks renderer=vulkan ===== Wayland ===== * https://gitlab.winehq.org/wine/wine/-/releases/wine-9.0 * https://forum.winehq.org/viewtopic.php?p=142727#p142727 * https://www.collabora.com/news-and-blog/news-and-events/wine-on-wayland-a-year-in-review-and-a-look-ahead.html * https://gitlab.winehq.org/wine/wine/-/merge_requests/5177 * [[linux:notes:wine_wayland_vulkan_wow_335]] * 2024/09/26: WoW 3.3.5 and D2 work but with no visible benefits * Setting ''DISPLAY='' and ''Graphics = wayland'' caused CoD MW2's console key ''~'' to need ''Shift + `'' instead of just the ''`/~'' key DISPLAY= ===== dxvk.conf ===== * [[https://github.com/doitsujin/dxvk/blob/master/dxvk.conf|master]] * [[https://github.com/doitsujin/dxvk/blob/e4fd5e9e8d335e8a2c0814829207cbd421f7e40e/dxvk.conf|1.10.3]] * [[https://github.com/doitsujin/dxvk/blob/8f8a93696d36adca8efeed4e16dc6b3deea27268/dxvk.conf|2.0]] * [[https://github.com/doitsujin/dxvk/blob/9d6f54a1ade20d1d27dd421024717a636f3d8c68/dxvk.conf|2.6.2]] * https://github.com/doitsujin/dxvk/blob/master/src/d3d9/d3d9_options.cpp#L32 * https://github.com/doitsujin/dxvk/blob/master/src/d3d11/d3d11_options.cpp#L15 * https://github.com/doitsujin/dxvk/blob/master/src/dxgi/dxgi_options.cpp#L83 * ''dxvk.conf'' next to game executable ==== master ==== * Last updated: 2026/06/12 #dxvk.hud = "full" #dxvk.hud = "devinfo,fps,memory,gpuload,frametimes" dxgi.enableHDR = "False" dxvk.allowFse = "True" dxgi.maxFrameRate = "-1" d3d9.maxFrameRate = "-1" dxvk.maxFrameRate = "-1" dxvk.latencySleep = "False" dxvk.disableNvLowLatency2 = "True" dxgi.hideNvidiaGpu = "False" d3d9.hideNvidiaGpu = "False" dxgi.hideNvkGpu = "False" d3d9.hideNvkGpu = "False" dxgi.hideAmdGpu = "False" d3d9.hideAmdGpu = "False" dxgi.hideIntelGpu = "False" d3d9.hideIntelGpu = "False" dxgi.syncInterval = "0" d3d9.presentInterval = "0" dxvk.tearFree = "False" dxvk.tilerMode = "False" d3d11.relaxedBarriers = "True" d3d11.relaxedGraphicsBarriers = "True" d3d11.samplerAnisotropy = "16" d3d9.samplerAnisotropy = "16" d3d11.samplerLodBias = "-2.0" d3d9.samplerLodBias = "-2.0" d3d11.disableMsaa = "True" dxvk.useRawSsbo = "True" dxvk.enableGraphicsPipelineLibrary = "False" dxvk.enableDescriptorHeap = "True" dxvk.enableDescriptorBuffer = "True" dxvk.enableImplicitResolves = "False" dxvk.trackPipelineLifetime = "False" dxvk.enableMemoryDefrag = "False" d3d9.dpiAware = "False" d3d9.lenientClear = "True" d3d9.maxAvailableMemory = "7168" d3d9.floatEmulation = "False" dxvk.lowerSinCos = "False" d3d9.deviceLocalConstantBuffers = "True" d3d9.enumerateByDisplays = "False" d3d9.seamlessCubes = "True" d3d9.deviceLossOnFocusLoss = "True" d3d8.placeP8InScratch = "True" # End ==== Version Info ==== * ''1.10.3'': Before Graphics Pipeline Library; also has ''d3d9.evictManagedOnUnlock'' * ''2.6.2'': [[https://github.com/doitsujin/dxvk/wiki/Driver-support#dxvk-27-and-later|2.7+]] requires Vulkan 1.3 (notable Windows Intel iGPU) ====== Icons ====== - Get raw icon files (check for png/ico large size) mkdir -p '/tmp/icons' && wrestool --extract --all --raw --output='/tmp/icons' x gio open '/tmp/icons' - Icon name (match name with icon size above) wrestool --list --all --raw x - Etc below mkdir -p ~/'.wine/Icons' wrestool --list --all --raw x mkdir -p ~/'.wine/Icons' && wrestool --output=$HOME/'.wine/Icons/IW4x-256.png' --extract --raw --type='3' --name='6' ~/'Steam/steamapps/common/Call of Duty Modern Warfare 2/iw4x.exe' wrestool --output='GW2-256.ico' --extract --type='14' --name='1' ~/'.wine/Guild Wars 2/drive_c/Program Files/Guild Wars 2/Gw2-64.exe' icotool --extract --icon --index='1' --width='256' --height='256' --bit-depth='32' --palette-size='0' --output=$HOME/'.wine/Icons/GW2-256.png' '/tmp/icons/GW2-256.ico' cd ~ && rm -Rf '/tmp/icons' # End