doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
13.42k stars 867 forks source link

[util] Separate Borderlands 2 fixes from Borderlands: The Pre-Sequel #4491

Open Tiagoquix opened 4 days ago

Tiagoquix commented 4 days ago

The d3d9.floatEmulation = Strict was tested by @Blisto91 and it fixes a problem, but it is only relevant for Borderlands 2, as the test was not performed in The Pre-Sequel nor are there any bugs reported for the Pre-Sequel game regarding the need of Strict floats.

This PR reorganizes Borderlands games fixes and only keeps Strict float emulation for BO2.

qinlili23333 commented 3 days ago

Have you tested it for presequel? Since currently we have enabled strict for most modern AMD and NVIDIA drivers, you need to test with Intel or manually override config.

I own this game but recently I can only access to a Windows NVIDIA laptop, so my test is not enough.

Edit: I cannot finish test since game crash. The game crash on my device no matter with or without dxvk just after it shows downloading updates. The game seems to be faulty with its updating system. (Edit2: offline mode is fine)

Error ``` Fatal error! memcpy() Address = 0x6c421fd4 (filename not found) [in C:\WINDOWS\SYSTEM32\MSVCR100.dll] Address = 0xe4415b (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xec4714 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xe42f2d (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::GetPoolName() Address = 0x1626ba9 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::GetPoolName() Address = 0x11767f8 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb7f2a (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xe904b0 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfaff6a (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xea66d9 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfaff6a (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb027f (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb8246 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xe904b0 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfaff6a (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb027f (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb0545 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfb7823 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] Address = 0xe8e936 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] GetStackOwnerClass() Address = 0x174c128 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] GetStackOwnerClass() Address = 0x174c44d (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] GetStackOwnerClass() Address = 0x174ecbf (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] GetStackOwnerClass() Address = 0x174ee5b (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::SoundEngine::StopOutputCapture() Address = 0xfbdda6 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::GetPoolName() Address = 0x11d317a (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::SetPoolName() Address = 0x198671d (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::SetPoolName() Address = 0x18568a9 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::SetPoolName() Address = 0x185beda (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::SetPoolName() Address = 0x185bfdf (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] AK::MemoryMgr::SetPoolName() Address = 0x185c09c (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] CreateAudioInputSourceParams() Address = 0x1de46d7 (filename not found) [in D:\SteamLibrary\steamapps\common\BorderlandsPreSequel\Binaries\Win32\BorderlandsPreSequel.exe] BaseThreadInitThunk() Address = 0x75a17ba9 (filename not found) [in C:\WINDOWS\System32\KERNEL32.DLL] RtlInitializeExceptionChain() Address = 0x76ebc0cb (filename not found) [in C:\WINDOWS\SYSTEM32\ntdll.dll] RtlClearBits() Address = 0x76ebc04f (filename not found) [in C:\WINDOWS\SYSTEM32\ntdll.dll] RtlClearBits() Address = 0x76ebc04f (filename not found) [in C:\WINDOWS\SYSTEM32\ntdll.dll] ```
Tiagoquix commented 3 days ago

No. But no-one tested it on the Pre-Sequel. The Strict float was only tested for Borderlands 2.