doitsujin / dxvk

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

Path of Exile: Changing resolution or settings crashes DXVK #957

Closed kakra closed 5 years ago

kakra commented 5 years ago

Software information

Name of the game, settings used etc.

System information

Log files

002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9db032.
002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9b3760.
err:   Failed to create swap chain

This is pretty easy to reproduce, and it probably covers similar reports like #813 because the game may try to recreate the swap chain at start due to non-matching in-game and desktop resolution.

I am able to reproduce it while in the options and switch vsync mode and MSAA modes, the swapchain issue may usually show up when switching MSAA to off. But it may work sometimes, especially when switching options from the lobby/login screen there's a much higher chance of the game not crashing. So for reproduction I recommend testing this from in-game options.

doitsujin commented 5 years ago

Do you still need a full DXVK/DXGI log?

It should be an absolute no-brainer to post them for any issue you might be having.

doitsujin commented 5 years ago

Also, please run the game with WINEDEBUG=+vulkan and post the full console output. Failed to create swap chain itself isn't very conclusive and could be caused by pretty much anything.

kakra commented 5 years ago

Sorry, this was more or less meant as a first draft of the issue. Creating those logs is a no-brainer, yes. Thanks for pointing out you'd also need the wine vulkan log. I'll be updating the issue asap.

kakra commented 5 years ago

Log files added...

doitsujin commented 5 years ago

Looks like vkCreateSwapchainKHR returns VK_ERROR_INITIALIZATION_FAILED for some reason, it is never supposed to return that.

Can you please run it with VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation set, assuming you have the Vulkan debug layers installed, and post the full output? I'm not sure how to inject that env var into Proton so you might need to capture the output manually.

edmondo commented 5 years ago

@kakra Does PoE crash for you? I'm on AMD RX 470 with radv and when I set some resolutions (or ALT-Tab), I can reliably reproduce a "ring gfx timeout": [drm:drm_sched_job_timedout [gpu_sched]] *ERROR* ring gfx timeout, but soft recovered I have to kill the process to get back to the desktop.

Anyways I tried to catch something with the VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation env. I get a lot of validation messages.

@doitsujin I have no idea if it's useful in any way, but here my logfile: PoE_change_res_VK_std_val.log

doitsujin commented 5 years ago

@edmondo are you using the latest version of DXVK? The validation layers complain about vkCmdBlitImage, but DXVK doesn't use that function at all.

jrugia commented 5 years ago

I tried to recreate the crash as described by OP on my end, but wouldn't happen no matter how much I play around with VSync and MSAA. The only issue I can reproduce with this game is the one in ticket #813

GPU: NVIDIA GTX 1060 6GB Driver: 418.43 Wine version: v3.18 (staging + esync) DXVK version: v1.0

edmondo commented 5 years ago

@doitsujin Interesting. I'm using the DXVK version from proton 3.16-8 Beta (game started from Steam):

poe_dxvk_version

I tried to start the game without the Steam overlay, but it doesn't really change the log. Let me know if you have any idea for more useful information.

In the next days I will try it without Steam and only with the standalone PoE client with your latest DXVK code from git and check if something different. Apart from these small issues, the game is running perfectly on my setup, so there is absolutly no urgency for me.

edmondo commented 5 years ago

@doitsujin As promised here the validation log file with the standalone PoE client, wine 4.4 and the lastest DXVK.

PoE_start_1080p_change_720p.log

I'm just starting the game and changing the resolution to 1280x720. I see the resolution change but then it "freezes" there and I get regular "[drm:drm_sched_job_timedout [gpu_sched]] ERROR ring gfx timeout, but soft recovered" kernel messages. I have to kill the PoE process.

I get the vkCmdDraw and vkCmdDrawIndexed validation errors even without the resolution change, so it's probably not related to that.