Heroic-Games-Launcher / HeroicGamesLauncher

A games launcher for GOG, Amazon and Epic Games for Linux, Windows and macOS.
https://heroicgameslauncher.com
GNU General Public License v3.0
8.03k stars 423 forks source link

Auto Install/Update DXVK on Prefix setting is not correctlly removing DXVK when unchecked #3707

Open casasfernando opened 5 months ago

casasfernando commented 5 months ago

Describe the bug

When trying to disable/uninstall DXVK from a Wine prefix by unchecking the Auto Install/Update DXVK on Prefix setting only the libraries overrides are removed from the Wine prefix configuration but the DXVK libraries in system32 are not. Due to this, next time the prefix is used Wine will continue to load DXVK DLLs instead of stock Wine libraries.

Add logs

(19:41:37) INFO:    [Legendary]:        Legendary location: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary
(19:41:37) INFO:    [Gog]:              GOGDL location: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl
(19:41:37) INFO:    [Connection]:       Connectivity: check-online
(19:41:37) INFO:    [Connection]:       Pinging external endpoints
(19:41:37) INFO:    [Gog]:              Checking for existing gog manifests
(19:41:37) INFO:    [Backend]:          DRM module staus {
  "oimompecagnajdejgnnjijobebaeigek": {
    "status": "new",
    "title": "Widevine Content Decryption Module",
    "version": "4.10.2710.0"
  }
}
(19:41:37) WARNING: [Backend]:          Failed to register protocol with OS.
(19:41:37) INFO:    [Legendary]:        Running command: LEGENDARY_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig/legendary /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary --version
(19:41:37) INFO:    [Gog]:              Running command: GOGDL_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gogdlConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json --version
(19:41:37) INFO:    [Nile]:             Running command: NILE_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/nile_config /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/nile --version
(19:41:37) INFO:    [Connection]:       Connectivity: online
(19:41:37) INFO:    [Gog]:              Running command: GOGDL_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gogdlConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth
(19:41:37) INFO:    [Backend]:          User Not Found, removing it from Store
(19:41:37) ERROR:   [Gog]:              Unable to syncQueued playtime, userData not present
(19:41:37) INFO:    [Backend]:          AreWeAntiCheatYet data downloaded
(19:41:37) INFO:    [Backend]:          
System Information:
CPU: 8x AMD Custom APU 0932
Memory: 15.53 GB (used: 5.65 GB)
GPUs:
  GPU 0:
    Name: Advanced Micro Devices, Inc. [AMD/ATI] Sephiroth [AMD Custom GPU 0405]
    IDs: D=1435 V=1002 SD=0123 SV=1002
    Driver: amdgpu
OS: SteamOS 3.5.17 holo (linux)

The current system is a Steam Deck (model: OLED) in desktop mode
We are running inside a Flatpak container

Software Versions:
  Heroic: 2.14.1 Flame Emperor Sabo
  Legendary: 0.20.34 Direct Intervention
  gogdl: 1.0.1
  Nile: 1.0.2 Jonathan Joestar

(19:41:37) INFO:    [Backend]:          Frontend Ready
(19:41:37) INFO:    [Backend]:          Checking for current version changelog
(19:41:39) INFO:    [Winetricks]:       Downloading Winetricks
(19:41:41) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Need for Speed - Underground
(19:41:41) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Need for Speed - Underground
(19:41:41) WARNING: [Backend]:          getExtraInfo not implemented on Sideload Game Manager. called for appName = wxAMvKUo2ME3V811tZsW6j
(19:41:42) INFO:    [WineDownloader]:   Updating wine versions info
(19:41:42) INFO:    [WineDownloader]:   Fetching upstream information...
(19:41:42) INFO:    [Backend]:          Starting the Download Queue
(19:41:43) INFO:    [WineDownloader]:   wine versions updated
(19:45:56) INFO:    [Legendary]:        Running command: LEGENDARY_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig/legendary /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary --version
(19:45:56) INFO:    [Gog]:              Running command: GOGDL_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gogdlConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json --version
(19:45:56) INFO:    [Nile]:             Running command: NILE_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/nile_config /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/nile --version
(19:52:29) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Call of Duty 2
(19:52:29) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Call of Duty 2
(19:52:29) WARNING: [Backend]:          getExtraInfo not implemented on Sideload Game Manager. called for appName = a451x32iDGTtxjFBSgw93k
(19:52:37) INFO:    [DXVKInstaller]:    installing dxvk on... /home/deck/Games/Heroic/Prefixes/default/Call of Duty 2
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d10core /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d11 /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d9 /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v dxgi /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d10core /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d11 /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d9 /d native,builtin /f
(19:52:37) DEBUG:   [Backend]:          Running Wine command: reg add HKEY_CURRENT_USER\Software\Wine\DllOverrides /v dxgi /d native,builtin /f
(19:52:37) ERROR:   [DXVKInstaller]:    Error when copying d3d9.dll Error: ENOENT: no such file or directory, copyfile '/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/dxvk/dxvk-2.3.1/x32/d3d9.dll' -> '/home/deck/Games/Heroic/Prefixes/default/Call of Duty 2/drive_c/windows/syswow64/d3d9.dll'
(19:52:37) ERROR:   [DXVKInstaller]:    Error when copying dxgi.dll Error: ENOENT: no such file or directory, copyfile '/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/dxvk/dxvk-2.3.1/x32/dxgi.dll' -> '/home/deck/Games/Heroic/Prefixes/default/Call of Duty 2/drive_c/windows/syswow64/dxgi.dll'
(19:52:37) ERROR:   [DXVKInstaller]:    Error when copying d3d10core.dll Error: ENOENT: no such file or directory, copyfile '/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/dxvk/dxvk-2.3.1/x32/d3d10core.dll' -> '/home/deck/Games/Heroic/Prefixes/default/Call of Duty 2/drive_c/windows/syswow64/d3d10core.dll'
(19:52:37) ERROR:   [DXVKInstaller]:    Error when copying d3d11.dll Error: ENOENT: no such file or directory, copyfile '/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/dxvk/dxvk-2.3.1/x32/d3d11.dll' -> '/home/deck/Games/Heroic/Prefixes/default/Call of Duty 2/drive_c/windows/syswow64/d3d11.dll'
(19:52:37) INFO:    [Backend]:          a451x32iDGTtxjFBSgw93k: Setting autoInstallDxvk to true
(20:03:58) INFO:    [Legendary]:        Running command: LEGENDARY_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig/legendary /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary --version
(20:03:58) INFO:    [Gog]:              Running command: GOGDL_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gogdlConfig /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json --version
(20:03:58) INFO:    [Nile]:             Running command: NILE_CONFIG_PATH=/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/nile_config /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/nile --version
(20:12:43) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Call of Duty 2
(20:12:43) INFO:    [ExtraGameInfo]:    Using cached ExtraGameInfo data for Call of Duty 2
(20:12:43) WARNING: [Backend]:          getExtraInfo not implemented on Sideload Game Manager. called for appName = a451x32iDGTtxjFBSgw93k
(20:12:47) INFO:    [DXVKInstaller]:    Removing dxvk version information
(20:12:47) INFO:    [DXVKInstaller]:    Removing DLL overrides
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) INFO:    [Backend]:          Checking if wine version exists: Wine - Wine-GE-Proton8-26
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d10core /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d11 /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d9 /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v dxgi /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d10core /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d11 /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v d3d9 /f
(20:12:47) DEBUG:   [Backend]:          Running Wine command: reg delete HKEY_CURRENT_USER\Software\Wine\DllOverrides /v dxgi /f
(20:12:47) INFO:    [Backend]:          a451x32iDGTtxjFBSgw93k: Setting autoInstallDxvk to false
``

Steps to reproduce

  1. Go to 'Library -> Click on Settings of a game running with Wine
  2. Uncheck 'Auto Install/Update DXVK on Prefix'
  3. Check Heroic's log and you will see that the libraries override are correctly removed but if you go and check the DLLs in system32 you will confirm that DXVK libraries are still present, instead of Wine's stock ones.

Expected behavior

Heroic will remove the libraries overrides from the Wine prefix configuration along with DXVK DLLs and will restore stock Wine libraries in-place (or run wineboot -u on the next prefix execution so Wine can restore the missing libraries with the stock ones).

Screenshots

No response

Heroic Version

Latest Stable

System Information

CPU: 8x AMD Custom APU 0932 Memory: 15.53 GB (used: 6.06 GB) GPUs: GPU 0: Name: Advanced Micro Devices, Inc. [AMD/ATI] Sephiroth [AMD Custom GPU 0405] IDs: D=1435 V=1002 SD=0123 SV=1002 Driver: amdgpu OS: SteamOS 3.5.17 holo (linux)

The current system is a Steam Deck (model: OLED) in desktop mode We are running inside a Flatpak container

Software Versions: Heroic: 2.14.1 Flame Emperor Sabo Legendary: 0.20.34 Direct Intervention gogdl: 1.0.1 Nile: 1.0.2 Jonathan Joestar

Additional information

No response

le-flo commented 1 month ago

I'm experiencing problems due to the same issue. If you once started a Prefix with DXVK, you can't shift to an emulator that's not supporting Vulkan (like native GPTK).

https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/3953