Running the game with dxvk 0.42 fails 90% of time, but succeeds in remaining 10%. The game shows company logo and even renders into animation (I was able to get to the "press any button" prompt). The exact conditions, that allow the game to start, are unclear.
It appears, that successful results can be obtained only with RADV_DEBUG=nohiz.
radv/mesa-18.0 and wine-3.5 on Arch Linux.
Log output:
info: Enabled instance layers:
info: Enabled instance extensions:
info: VK_KHR_surface
info: VK_KHR_win32_surface
WARNING: radv is not a conformant vulkan implementation, testing use only.
info: AMD RADV POLARIS11 (LLVM 6.0.0):
info: Driver: 18.0.0
info: Vulkan: 1.0.57
ERROR: Could Not Get Primary Adapter Handle <- this line does not always appear??
info: D3D11CreateDevice: Probing D3D_FEATURE_LEVEL_11_1
err: D3D11CreateDevice: Requested feature level not supported
info: D3D11CreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info: D3D11CreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0
warn: Vulkan extension VK_KHR_maintenance2 not supported
info: Enabled device extensions:
info: VK_KHR_descriptor_update_template
info: VK_KHR_sampler_mirror_clamp_to_edge
info: VK_KHR_maintenance1
info: VK_KHR_shader_draw_parameters
info: VK_KHR_swapchain
warn: DXGI: MakeWindowAssociation: Ignoring flags
warn: D3D11Device::GetDeviceRemovedReason: Stub
Hm, interesting. That error message also doesn't seem to come from the game so there might be something going on with wine here, or maybe the lack of API interop in DXVK.
I own the game so in theory I could test this myself, but please tell me one thing, how the hell did you get Origin to run? All the various instructions I've found fail for one reason or another.
Sergey Pavlyuchenko's AppDB instructions work fine for installing Origin. Step 9 is important as Origin likes to screw up its file permissions.
I just re-tested the install steps and Origin crashed on first launch after updating, but runs fine on subsequent launches.
I also use this patch from bug#43187 to prevent OriginWebHelperService.exe from crashing, but I don't think it was required. The crash just annoyed me.
That said, I have had zero success getting Dragon Age Inquisition to run either. It always just crashes on launch, taking winedbg with it, giving me no backtrace. With dxvk Inquisition crashes slightly later, after showing the pulsing Inquisition loading logo at the bottom right of a black screen for a couple of seconds. With wined3d it just crashes immediately on launch displaying only the empty black loading screen.
DragonAgeInquisition_d3d11.log
DragonAgeInquisition_dxgi.log
@portentum well they don't work for me, which is why I'm asking in the first place.
Anyway, if the game just crashes for no apparent reason there's not much I can do without a backtrace and a way to reproduce it. Will see if I can get the game to run but Origin has just been constantly refusing to work.
@doitsujin @portentum
That said, I have had zero success getting Dragon Age Inquisition to run either. It always just crashes on launch, taking winedbg with it, giving me no backtrace. With dxvk Inquisition crashes slightly later, after showing the pulsing Inquisition loading logo at the bottom right of a black screen for a couple of seconds.
This is what usually happens for me as well. But there is a small chance, that it runs further: I have seen it reach the marching soldiers animation twice out of dozens attempts. Never managed to get a stack trace either.
@steemandlinux Denuvo is not necessarily the issue here. I'm not sure why people still think that Denuvo doesn't work with wine, plenty of Denuvo-protected games have been running for quite a while now.
@Alexander-- @steemandlinux @doitsujin
It works.
While other games don't care, DA:I can't be on a partition mounted noexec it would seem. Changing that mount flag allowed the game to launch to the marching soldiers, click to continue screen.
After that it would freeze when clicking to continue to the menu, seemingly caused by trying to go fullscreen. Editing ProfileOptions_profile to disable fullscreen allowed me to start a new game, create a character, and run around a bit.
@portentum Thanks for letting us know. Can you test if the fullscreen mode works correctly with bb3e3c9e4f15e5232d1a60ffbda00d9fd55064c4?
@doitsujin
Tested with adb0f5e16b85623cd5b4409294f7df1007ac2209, the game still freezes (no crash, application just hangs indefinitely chewing up two CPU cores) when attempting to fullscreen.
DragonAgeInquisition.orig_d3d11.log
DragonAgeInquisition.orig_dxgi.log
The logs aren't particularly helpful, I don't know what the game is trying to do and what it is expecting. Can you try to record an apitrace on Windows?
There's basically no reason why switching to fullscreen mode shouldn't work at this point, unless the game relies on undocumented implementation details (which is entirely possible, my latest commits fixed a couple of those issues, and DXGI is woefully poorly documented).
@doitsujin
I don't know if this may be helpful in some way, but here are some unnecessary details about my setup: the couple of times when I was able to successfully launch the game, it's window was forced into a fixed size by the tiling windows manager (i3). The WM denied window size change to fullscreen, and the game was able to run fine (so it does not really care if the size change succeeds, just that size is usable for engine).
But there appears to be some kind of race — if the size change is correctly timed, it works out, otherwise it crashes. To be precise: I started the game, the WM fixes window size, I resize the window to proper proportions. When that sequence was carefully timed, the game worked fine. So it seems like the initial fullscreen resize crashed it, but if it didn't happen, and everything initialized correctly, the game was able to handle resizing to usable proportions.
Yeah, sounds like a DXGI issue. Sadly those are next to impossible to debug without getting the application to run, and Origin still refuses to work on my setup.
I'm having trouble getting an apitrace out of DAI on Windows. Origin gets in the way, and my little attempt to use a bat file renamed to exe in between Origin and DAI just resulted in an error about 16-bit exes not being supported. I don't know enough about this stuff on Windows to know what else to try off the top of my head.
I'll pick it back up later tonight and continue trying to get an apitrace.
@doitsujin
A bat-to-exe utility came to my rescue. I was able to get an apitrace sooner than I'd expected.
DAI.win7.trace (alternate download)
@doitsujin I noticed, that 2f20a61342 had botched "Closes " message. This issue can be closed now, right?
@Alexander-- That should have referred to #314, this issue is unrelated.
That said, I still have no idea how to debug (let alone fix) it.
I dunno if this is related but Deep Rock Galactic also suffers from sporadic startups, sometimes it will just remain in the process eating cycles but never actually launch, while other times it will launch just fine (you know when it succeeds because the banner popups)
I might be able to generate a small startup trace of DRG for debug purposes, I did create a full gameplay trace once but the file was just too big (14GB).
I finally got Origin and the game to work on my setup and can reproduce the fullscreen freeze. While I know what causes it - namely, Thread A waiting for a callback on Thread B to finish while Thread B blocks on a mutex that is currently held by Thread A - I don't know how to fix this properly. If anyone knows something about thread safety guarantees of IDXGISwapChain, please educate me.
Fixed in 62e4c867ec55da8feda277140cf21c43503aeb43.
Most helpful comment
@Alexander-- @steemandlinux @doitsujin
It works.
While other games don't care, DA:I can't be on a partition mounted noexec it would seem. Changing that mount flag allowed the game to launch to the marching soldiers, click to continue screen.
After that it would freeze when clicking to continue to the menu, seemingly caused by trying to go fullscreen. Editing ProfileOptions_profile to disable fullscreen allowed me to start a new game, create a character, and run around a bit.