ec- / Quake3e

Improved Quake III Arena engine
GNU General Public License v2.0
1.21k stars 154 forks source link

Vulkan: random crash (error code -4). #77

Closed ghost closed 3 years ago

ghost commented 3 years ago

Sometimes Vulkan crahes with this error message:

----- Client Shutdown (Server fatal crashed: Vulkan: error code -4 returned by qvkWaitForFences( vk.device, 1, &vk.cmd->rendering_finished_fence, VK_FALSE, 1e10 )) ----- RE_Shutdown( 2 ) ----- Client Shutdown (recursive error after: Vulkan: error code -4 returned by qvkWaitForFences( vk.device, 1, &vk.cmd->rendering_finished_fence, VK_FALSE, 1e10 )) ----- WARNING: Recursive CL_Shutdown() recursive error after: Vulkan: error code -4 returned by qvkWaitForFences( vk.device, 1, &vk.cmd->rendering_finished_fence, VK_FALSE, 1e10 ) ----- Client Shutdown (Server fatal crashed: Vulkan: error code -4 returned by qvkDeviceWaitIdle( vk.device )) ----- WARNING: Recursive CL_Shutdown() ----- Server Shutdown (Server fatal crashed: Vulkan: error code -4 returned by qvkDeviceWaitIdle( vk.device )) ----- ==== ShutdownGame ==== AAS shutdown. ----- Client Shutdown (Vulkan: error code -4 returned by qvkDeviceWaitIdle( vk.device )) ----- WARNING: Recursive CL_Shutdown() Vulkan: error code -4 returned by qvkDeviceWaitIdle( vk.device )

Unfortunately this crash isn't intentionally reproducible, last time it happend exactly after picking up the Quad and firing the first shot (though, I'm in doubt that the crash really relies on a specific game event).

ec- commented 3 years ago

Error code -4 is equal to VK_ERROR_DEVICE_LOST, I need more info about your setup (OS/GPU/Drivers)

ghost commented 3 years ago

Here it is:

OS: Windows 8.1 64-bit (everything up to date). Intel i5-4670k 3.40 GHz GPU: Nvidia GTX 1060 6GB Driver: 460.89. 16 GB RAM 2 x SATA

My Q3e is unmodified, with the exception I changed USE_VULKAN = 0 to USE_VULKAN = 1. Compiling with 0 errors. I installed Q3e on my second HDD (D:). No OS energy management enabled.

Please let me know what other informations you need.

ec- commented 3 years ago

I cannot reproduce that. Is there any screen capture tools installed? I suspect than some other process is injecting vulkan commands into application

ghost commented 3 years ago

Yeah, it's not possible to intentionally reproduce the crash, that makes it hard to gather more informations. I have Fraps installed, I'm not sure if this will help us. Please let me know if you want me to install any specific screen capture tool ... or do you think a screen capture tool will cause the trouble?

ec- commented 3 years ago

Can you run vulkan build with RenderDoc and capture at least one frame? I need to see screenshot of Event Browser window as I still asume there is some command injection from other process

ghost commented 3 years ago

Jawoll! I will do, but need some time, because I don't know RenderDoc, I will dl, install, and capture at least one frame.

ghost commented 3 years ago

Here is the log from RenderDoc. I'm not sure if this is what you need, please let me know if I did something wrong, I just started Q3e via RenderDoc. RenderDoc_2021.01.03_16.00.10.log

ec- commented 3 years ago

I saw you launched opengl version, try vulkan, then press F12 in game, then close game

ghost commented 3 years ago

Hm, sorry it seems I'm too stupid for you. What do you mean? Which one did I launch with the opengl version? If you mean Q3e, than no, I used Vulkan (at least the console says it is vulkan rendered, all the VK things are printed instead of GL). If you mean I launched RenderDoc in 'OpenGL' version, than I don't see any option (inside the RenderDoc menu) to launch it in 'Vulkan' version. EDIT: oh, I found out launching Q3e via RenderDoc was somehow ignoring 'cl_renderer' set to vulkan. I launched Q3e in GL version, like you said, I will upload new vulkan event browser log/screenshot. RenderDoc asked me to allow/update some stuff for vulkan...

ghost commented 3 years ago

Ok, here is the new log. I hope now everything is done correct. I launched Q3e from within RendererDoc (I don't set any additional parameters) and hit the 'Launch' button. I loaded q3dm4 added a few bots and hit F12. The attached log is the new one created with Vulkan renderer set via cl_renderer command. During the game there was no crash. I see an error in the log file (!!! ESTIMATED UPPER BOUND CHUNK LENGTH 96 EXCEEDED: 132. CAPTURE WILL BE CORRUPTED. !!!). I don't know if the capture was successful enough for you to see if there is some command injection from other process. RenderDoc_2021.01.06_01.00.22.log

ec- commented 3 years ago

I need to see screenshot of Event Browser to see if there any other command buffers being recorded before ours

ghost commented 3 years ago

The screenshot: eventBrowser Here is the corresponding .txt. file: eventBrowser .txt

ec- commented 3 years ago

I see nothing suspicious, try to play and reproduce crash with recent sources

ghost commented 3 years ago

I'll try. Thanks for your efforts.

ghost commented 3 years ago

Looks good, no crash so far. Closing this issue now. Thanks for fixing this issue, well done!