doitsujin / dxvk

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

[Regression] Assetto Corsa hangs when launching game #529

Closed gotzl closed 6 years ago

gotzl commented 6 years ago

Since version 9cae049, it is not possible to start a game in Assetto Corsa (AC) any more. The AC launcher works, but when starting an actual game, it gets stuck in the loading screen (i.e. the process hangs, does not crash...). Console output:

.....
info:  Enabled device extensions:
info:    VK_EXT_shader_viewport_index_layer
info:    VK_KHR_dedicated_allocation
info:    VK_KHR_descriptor_update_template
info:    VK_KHR_get_memory_requirements2
info:    VK_KHR_image_format_list
info:    VK_KHR_maintenance1
info:    VK_KHR_maintenance2
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_draw_parameters
info:    VK_KHR_swapchain
corrupted double-linked list (not small)

Using the master (96176e3), the error looks slightly different:

.....
info:  Enabled device extensions:
info:    VK_EXT_shader_viewport_index_layer
info:    VK_KHR_dedicated_allocation
info:    VK_KHR_descriptor_update_template
info:    VK_KHR_get_memory_requirements2
info:    VK_KHR_image_format_list
info:    VK_KHR_maintenance1
info:    VK_KHR_maintenance2
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_draw_parameters
info:    VK_KHR_swapchain
warn:  DxgiSwapChain::QueryInterface: Unknown interface query
warn:  94d99bdb-f1f8-4ab0-b236-7da0170edab1
double free or corruption (out)

I cannot say if its AC specific since I don't play other games that need DX11/DXVK. In prior versions (such as 3572775), AC works perfectly, so the issue seems to be introduced in commit 9cae049. I use the 32bit version of the game, in case it's important...

System information

Apitrace file(s)

The process hangs immediately, it seems to me that it doesn't even render the first frame. I guess the issue should be somewhere in the very beginning of the apitrace... https://drive.google.com/open?id=19laMlF2OyOwhaK_DvdzedxMFRseuEv_U

Log files (broken version 96176e3)

Log files (first broken version 9cae049)

Log files (working version 3572775)

doitsujin commented 6 years ago

I cannot debug this without an apitrace. Check this out in case you can't get apitrace.exe to work.

There is no obvious reason for that specific commit to introduce double-free or use-after-free bugs either, since all relevant objects are reference-counted which prevents those types of bugs from happening. This is most likely unrelated to that commit

Tk-Glitch commented 6 years ago

Here's latest master on the 64 bit version of the game : screenshot_20180803_193859

So it may only affect the 32 bit version.

gotzl commented 6 years ago

I've managed to create the apitrace, I've added it to the initial issue report. Thanks @Tk-Glitch for the info, I'll try to test it tomorrow or Sunday.

gotzl commented 6 years ago

I can confirm, the 64bit version of the game is working for me as well. It really seems to affect only the 32bit version of the game. @Tk-Glitch , are you able to reproduce my issue with 32bit?

Tk-Glitch commented 6 years ago

I'll have to fight with my install to get there, but I'll try to reproduce the issue. Edit: After a few tries, I can't get the 32 bit version to run. It'll crash on the loading screen due to a page fault in wine.

gotzl commented 6 years ago

After some testing, the 64bit version seems to be unstable as well. Occasionally, it will crash with a comparable error to the 32bit version. My guess would be that there is a race condition somewhere, and the commit tightened the condition. But yeah, maybe its just my setup :( ...

@Tk-Glitch Thanks for trying! What happens within your 64bit install if you select 32bit mode in AC? If you use ContenManager, that option is in Settings -> Driver -> Use 32-bit version.

jp7677 commented 6 years ago

AC (x64) seems to run fine here. I haven't played hours, just quite some sessions with several minutes, but never encountered such an error. I do use AC Content Manager and not the original launcher which I never got to run.

doitsujin commented 6 years ago

The original bug should be fixed by now since there was a bit of an issue with adapter<>instance interaction related to the first "broken" commit.

wontfix is for any 32 bit-specific issues, please use the 64-bit version of the game.