Open Parapass opened 1 year ago
Hello @Parapass, wine: Call from 000000007B04D723 to unimplemented function winegstreamer.dll.winegstreamer_create_video_decoder, aborting
looks like the line of interest from your log.
https://gitlab.winehq.org/wine/wine/-/commit/70e93833679342c485b9720af61c92efcdcbd191 might help.
Hello. I had the wrong Proton version selected, my bad. I changed it to Proton Experimental and the gstreamer error has gone away. However, the game still refuses to launch. The log for Experimental: steam-1985810.log
The game tries to open dxdiag (presumably either for error reporting or for automatically setting graphics settings), but fails while doing so. Here is the core dump: https://gist.github.com/Parapass/bd7593ecb1030bc4e921afdea14cf546
Hi, I'm having this issue too; on AMD as well, except this time on desktop with an RX 6900 XT.
I wasn't able to corroborate the journalctl d3d12 stuff, however I have an interesting addition where occasionally, a blank (wayland default) icon will show in the taskbar, it goes away very fast, too fast for me to look at the window title. It happened only once under amdvlk but a few times under radv. I'll attach logs for both radv and amdvlk.
steam-1985810_radv.log steam-1985810_amdvlk.log
Along with that, in journalctl I get
umip: BlackOpsColdWar[24832] ip:14ce27576 sp:11a230: SIDT instruction cannot be used by applications.
umip: BlackOpsColdWar[24832] ip:14ce27576 sp:11a230: For now, expensive software emulation returns the result.
however i'm not certain that's really relevant to this game.
Hello @headassbtw, there's a bunch of failed to create ...
lines in your Proton log which hints that the Proton Experimental install or the game's wineprefix might be damaged or incomplete.
I installed Arch Linux on my desktop to try out Cold War on it. Still crashes the same. Here is the log: steam-1985810.log
Ive been trying to get it to run, i think this needs a patch to wine/proton hope someone smart enough sees this thread
I know this is from a while ago but I'm using the Battle.Net version and I'm getting these errors:
5002.838:012c:0154:err:sync:RtlpWaitForCriticalSection section 00006FFFFFFB0380 "../src-wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0154, blocked by 0130, retrying (60 sec)
5002.941:012c:0190:err:sync:RtlpWaitForCriticalSection section 00006FFFFFFB0380 "../src-wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0190, blocked by 0130, retrying (60 sec)
5005.888:0064:007c:err:wineusb:usb_main_loop Error handling events: System call interrupted (perhaps due to signal)
5025.636:0064:007c:err:wineusb:usb_main_loop Error handling events: System call interrupted (perhaps due to signal)
5045.560:0064:007c:err:wineusb:usb_main_loop Error handling events: System call interrupted (perhaps due to signal)
I was using Proton Experimental then Proton 9.0 (Beta) and after that I tried ProtonGE but still got this error. The game loads with the T9 Console and the loader but that's really it
Replying to https://github.com/ValveSoftware/Proton/issues/6852#issuecomment-2053646093
It's quite odd that this game has issues under proton, the anticheat isn't a kernel level so that's not a problem, seems like a wine problem?
I wonder if anyone has any information about why this game doesn't work still, if it is anticheat related or just something to do with wine
Id like to play some cold war zombies again sometime lol
Replying to https://github.com/ValveSoftware/Proton/issues/6852#issuecomment-2053646093
I have asked modders about the game and some say there isn't an anti-cheat and it uses an engine simlar to BO4 (Which works great on linux according to few people) So I presume it could be the games problem or a wine/proton problem
Hi,
Here's the Proton BO3 workaround: if os.environ.get("SteamGameId", 0) == "311210": or here for Experimental: "311210", # CoD: Black Ops 3
Whatever version you use, add "1985810" and it'll get further. (Screenshot)
However, graphics is still an issue, at least with Lavapipe and AMD (Mesa-9999 and Proprietary 22.40.6.1580631-r1 on Gentoo Unstable, nothing newer because of an "old" RX470). I won't test it with my nVidia Titan V's, because they're in my workstation and history has shown that I can't trust the Steam client on important computers. Maybe I'll put one of them inside the gaming machine, but I'm not sure if VKD3D simply just needs to support that game. From what I can tell is that this workaround is necessary for both games because of the Treyarch Anti-Cheat. I won't go into details, because Activision is known to be very vicious.
P.S.: @ValveSoftware: This time I didn't had to decompile the disassembly by hand, like with your CEG. Thank you very much for not helping with Modern Warfare 3 (the older one), I'm still resentful because I had to fix your issues all by myself. Please be the Valve from 20-25 years ago again.
Replying to https://github.com/ValveSoftware/Proton/issues/6852#issuecomment-2306344902
What did you do exactly to get it running? You posted some 'if' code, but where do you put that?
Replying to #6852 (comment)
What did you do exactly to get it running? You posted some 'if' code, but where do you put that?
Exactly there.
"311210", # CoD: Black Ops 3
turns into
"311210", # CoD: Black Ops 3
"1985810", # CoD: Black Ops Cold War
And
if os.environ.get("SteamGameId", 0) == "311210":
argv = [g_proton.wine_bin, "c:\\Program Files (x86)\\Steam\\steam.exe"]
turns into (e.g., very long version)
if os.environ.get("SteamGameId", 0) == "311210":
argv = [g_proton.wine_bin, "c:\\Program Files (x86)\\Steam\\steam.exe"]
elif os.environ.get("SteamGameId", 0) == "1985810":
argv = [g_proton.wine_bin, "c:\\Program Files (x86)\\Steam\\steam.exe"]
Or (shorter)
if os.environ.get("SteamGameId", 0) == "311210":
turns into
if os.environ.get("SteamGameId", 0) in ("311210", "1985810"):
As I said, the same workaround/treatment is needed, so just add the Cold War game id as well, like in these examples.
That specific workaround was committed two and a half years ago and this bug report is from a year ago. Hindsight is 20/20 when a very similar game needs the exact same workaround. I got lost into the details as usual and kept digging until I finally followed my thought of checking what exactly Proton does with BO3.
Now it's randomly either stuck or crashes. The crashes, at least, are because of heap corruption. I have a hunch that it has something to do with openxr, because it gets past that point in Proton 7, only to show many D3D12 errors.
359575.535101:0114:0118:err:heap:validate_used_block heap 0000000000140000, block 00000000640D0038: free block overwritten
I guess, since nobody else volunteers, I have to bisect between Proton 7 and 8. Damnit, all I wanted to do, was to play some Prop Hunt. :-D
The change in behavior happened during the d3d12core refactoring. I really hope that the actual underlying cause of those hangs and crashes is somewhere else, because graphics is not my métier. experimental-bleeding-edge-7.0-38314-20230320-pa52104c-w2a9873-d3d5bec-vf0697a (full screen) experimental-bleeding-edge-7.0-38355-20230321-pa52104c-w2a9873-d3d5bec-v071ead (no full screen)
Edit, forgot to post this: When atiadlxx.dll is set to builtin, like with BlackOps3.exe, it can crash like this: wine: Call from 00006FFFFFC1CF07 to unimplemented function atiadlxx.dll.ADL2_Adapter_AdapterInfo_Get, aborting
The change in behavior happened during the d3d12core refactoring. I really hope that the actual underlying cause of those hangs and crashes is somewhere else, because graphics is not my métier. experimental-bleeding-edge-7.0-38314-20230320-pa52104c-w2a9873-d3d5bec-vf0697a (full screen) experimental-bleeding-edge-7.0-38355-20230321-pa52104c-w2a9873-d3d5bec-v071ead (no full screen)
Edit, forgot to post this: When atiadlxx.dll is set to builtin, like with BlackOps3.exe, it can crash like this: wine: Call from 00006FFFFFC1CF07 to unimplemented function atiadlxx.dll.ADL2_Adapter_AdapterInfo_Get, aborting
If you think graphics might be an issue, then I suggest filing a report on vkd3d-proton's issue tracker
If you think graphics might be an issue, then I suggest filing a report on vkd3d-proton's issue tracker
TLDR: Feel free to do that yourself, I don't really have much time for that.
It could very well be that it's only broken for my "ancient" card.
It somewhat looks like a timing issue, I've already seen the fullscreen on an unmodified bleeding edge, besides that workaround. However, on 99% of the runs, I won't even see "Failed to wait for VR registry key ready." Mostly I see it being stuck because of a critical section ("loader_section"), crashes because of trashed heap, and even a crash with a stack trace that includes ntdll.dll/kernel32.dll/kernelcore.dll/d3d12.dll/BlackOpsColdWar.exe.
I think that I should remember Scrubs, if I hear hoofbeats, I should think of horses instead of zebras, but I want to be triple sure that it's not because of a specific TAC codepath. Like CEG, it doesn't show all its tricks on a single run, it's rather randomized.
Here's a screenshot and the logs of a extremely good run, however it still complains with a dialog window.
I'm getting too much pressure to focus on my real work. Unfortunately that doesn't include finishing the Lynx/SSC implementation of that iPhone/SEP emulator. I can't split myself and a day just has 24 hours.
I would simply suggest that everybody just tries that BO3 workaround, which should be included/applied in any case for CW as well (hello, @ValveSoftware), because that's the (first) issue, everybody is seeing here. The SIDT access violation exception is a fake/trick/distraction, because it has the kernel space KUSER_SHARED_DATA address as a destination, it's not supposed to work in user-space, even on a real Windows. The rest could be either other bugs or just (one of) my ancient machines crapping themselves yet again.
One file is slightly renamed, because GitHub won't take text files as an attachment if they don't have a .txt extension. Compressed it because GitHub complained again, and doesn't include a full trace, because then GitHub would complain even more because of the sheer filesize.
steam-1985810.log.bak50_experi_bleedingedge_fullscreen_dialog.txt.gz
Compatibility Report
System Information
I confirm:
steam-1985810.log
Symptoms
The game launches in Steam and is listed as playing but does not start at all.
Using journalctl I saw that the game was trying to find d3d12core.dll in /home/deck/.steam/steam/steamapps/compatdata/1985810/pfx/drive_c/windows/system32/ and /home/deck/.steam/steam/steamapps/compatdata/1985810/pfx/drive_c/windows/syswow64/ but could not find it as the file did not exist. Would this be a Wine problem or a Proton problem? On my Windows 10 install I can find both d3d12.dll and d3d12core.dll
Reproduction
Always happens