Lockups occasionally occurring when rendering new things

Moderator: GZDoom Developers

Lockups occasionally occurring when rendering new things

Postby Major Cooke » Fri Aug 02, 2019 2:17 pm

Vulkan sometimes locks up when a new actor spawns and it attempts to display the sprite -- mainly in bigger mods like AEons of Death. I wish I could make this easier somehow to investigate but replicating this is going to be very difficult by itself. Currently working on a sample to do so, but no luck so far.

This doesn't happen in OpenGL.
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby dpJudas » Fri Aug 02, 2019 2:24 pm

I'm afraid without a test that can reliably reproduce the issue there's little there can be done.
dpJudas
 
 
 
Joined: 28 May 2016

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Fri Aug 02, 2019 3:06 pm

I am aware. I'll get one as soon as I can.
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby _mental_ » Sat Aug 03, 2019 9:06 am

Try to reproduce it in windowed mode using a configuration with debugging symbols under Visual Studio.
When it freezes, switch to VS, hit Pause button in Debug toolbar (or select Debug -> Break All menu item, or press Ctrl+Alt+Break), and post a callstack of the main thread.
This may give us some hints.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Sat Aug 03, 2019 11:27 am

Using full Debug mode or is RelWithDebInfo enough?
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby _mental_ » Sat Aug 03, 2019 11:41 am

For getting initial callstack an optimized build is enough.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Mon Aug 05, 2019 12:47 pm

I'll start working on this when I get a chance. i'm out of town so it could be as far as next week when I start.
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Thu Aug 08, 2019 9:11 am

Okay. This is with Vulkan Device ID set to 0 and High Dynamic Range set to off.

Code: Select allExpand view
    [External Code]   
>   gzdoom.exe!VulkanDevice::ReleaseResources() Line 504   C++
    gzdoom.exe!VulkanDevice::~VulkanDevice() Line 97   C++
    gzdoom.exe!Win32VulkanVideo::Shutdown() Line 33   C++
    gzdoom.exe!SystemBaseFrameBuffer::~SystemBaseFrameBuffer() Line 379   C++
    [External Code]   
    gzdoom.exe!I_ShutdownGraphics() Line 103   C++
    gzdoom.exe!`DoMain'::`1'::catch$11() Line 1019   C++
    [External Code]   
    gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 991   C++
    gzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1323   C++
    [External Code]   


Though honestly, I don't think this is going to help much but... This is what the debugger stack is saying but this seems a bit strange. Note: I'm not actually receiving a VM abort of any kind when running OpenGL. Again, this is merely just freezing occurring when playing.
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby phantombeta » Thu Aug 08, 2019 9:35 am

VM aborts aren't the only exception type that exists. You can see from how it's shutting down graphics that it isn't a VM abort, too. Most likely, it's getting an exception from either external code or from somewhere in GZDoom itself that failed to do something, and needs GZDoom to shut down.
User avatar
phantombeta
In the meadow of sinful thoughts, every flower's a perfect one
 
Joined: 02 May 2013
Location: The United Soviet Socialist Dictatorship of Hueland
Discord: phantombeta#2461
Twitch ID: phantombeta_
Github ID: Doom2fan
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: nVidia with Vulkan support

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Thu Aug 08, 2019 9:39 am

I figured as much. But still... This makes me wonder, do I need to run it in full debug mode? I don't mind doing that, it's just that if it's caused by external code, I'm curious if full debug mode will display more.
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby dpJudas » Thu Aug 08, 2019 9:57 am

During development of the vulkan backend I have seen situations that hang at that location. It usually happens when the device is lost and then the display driver (Nvidia in my case) violates the vulkan spec by hanging in vkDeviceWaitIdle, which it isn't allowed to do after a device lost. I haven't seen this in a long time though - your drivers are recent I assume.

In general, this error indicates a vulkan API misuse situation - you may have to enable vk_debug while playing. Only problem with that is that you have to install the Vulkan SDK and it runs poorly while doing API validations.
dpJudas
 
 
 
Joined: 28 May 2016

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Thu Aug 08, 2019 10:15 am

Yes, my driver is of the latest.

Questions for you:
  • When you say it handles it poorly while doing API validations, do you mean it just runs slower or the debugging is poor?
  • Any particular version of the SDK I should use?
  • By vk_debug, that's just -vk_debug in the launch parameters too, right?
  • Is this at all fixable then? Or are you saying the only way to not lock up is to run it with vk_debug mode completely?

Here's an extended callstack if needed.

Code: Select allExpand view
    nvoglv64.dll!0000000057b26456()   Unknown
    nvoglv64.dll!0000000057b2b434()   Unknown
    nvoglv64.dll!0000000057ab1d84()   Unknown
    nvoglv64.dll!0000000057d62856()   Unknown
    nvoglv64.dll!0000000057d5d423()   Unknown
>   gzdoom.exe!VulkanDevice::ReleaseResources() Line 504   C++
    gzdoom.exe!VulkanDevice::~VulkanDevice() Line 97   C++
    gzdoom.exe!Win32VulkanVideo::Shutdown() Line 33   C++
    gzdoom.exe!SystemBaseFrameBuffer::~SystemBaseFrameBuffer() Line 379   C++
    gzdoom.exe!VulkanFrameBuffer::`scalar deleting destructor'(unsigned int)   C++
    gzdoom.exe!I_ShutdownGraphics() Line 103   C++
    gzdoom.exe!`DoMain'::`1'::catch$11() Line 1019   C++
    gzdoom.exe!_CallSettingFrame() Line 50   Unknown
    gzdoom.exe!__FrameHandler3::CxxCallCatchBlock(_EXCEPTION_RECORD * pExcept) Line 1528   C++
    ntdll.dll!00007ff89a1d3bf6()   Unknown
    gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 991   C++
    gzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1323   C++
    [Inline Frame] gzdoom.exe!invoke_main() Line 118   C++
    gzdoom.exe!__scrt_common_main_seh() Line 288   C++
    kernel32.dll!00007ff8980981f4()   Unknown
    ntdll.dll!00007ff89a19a271()   Unknown
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby dpJudas » Thu Aug 08, 2019 11:32 am

Yes, it just means it runs slower. Any Vulkan SDK from this year should do (note: last I updated myself was ~6 months ago, but afaik there's no breaking changes in the SDK). I'm talking about the vk_debug CVAR, which requires a restart after you change it. You will know its active and working when it writes some warnings out to the console when playing through MAP01.

As for at all fixable, well that depends on whether the source of the error can be tracked down. If you are lucky, the validation layer will write out some error just before it hangs. If you are unlucky the validation layer won't say a thing and we're back to square one.
dpJudas
 
 
 
Joined: 28 May 2016

Re: Lockups occasionally occurring when rendering new things

Postby Major Cooke » Thu Aug 08, 2019 12:48 pm

Thank god for logfile!

Code: Select allExpand view
[vulkan error] Cannot free VkBuffer 0x7e7d[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x7e7b[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x24[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x22[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x1e[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x1c[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x2ad9[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer 0x16[] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from VKBuffer::ResetAll at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_buffers.cpp, line 35
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 107
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot call vkDestroyImage on VkImage VkHardwareTexture.mImage[VkHardwareTexture.mImage] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyImage-image-01000)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyImage at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9359
Called from std::vector<std::unique_ptr<VulkanImage,std::default_delete<VulkanImage> >,std::allocator<std::unique_ptr<VulkanImage,std::defau at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\vector, line 1849
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 209
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot call vkDestroyImageView on VkImageView VkHardwareTexture.mImageView[VkHardwareTexture.mImageView] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to imageView must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyImageView-imageView-01026)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from std::vector<std::unique_ptr<VulkanImageView,std::default_delete<VulkanImageView> >,std::allocator<std::unique_ptr<VulkanImageVie at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\vector, line 1849
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 210
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot free VkBuffer VkHardwareTexture.mStagingBuffer[VkHardwareTexture.mStagingBuffer] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vmaDestroyBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\thirdparty\vk_mem_alloc\vk_mem_alloc.h, line 9283
Called from std::vector<std::unique_ptr<VulkanBuffer,std::default_delete<VulkanBuffer> >,std::allocator<std::unique_ptr<VulkanBuffer,std::de at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\vector, line 1849
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 212
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Cannot call vkFreeDescriptorSets() on VkDescriptorSet VkHardwareTexture.mDescriptorSets[VkHardwareTexture.mDescriptorSets] that is in use by a command buffer. The Vulkan spec states: All submitted commands that refer to any element of pDescriptorSets must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeDescriptorSets-pDescriptorSets-00309)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from std::vector<std::unique_ptr<VulkanDescriptorSet,std::default_delete<VulkanDescriptorSet> >,std::allocator<std::unique_ptr<Vulkan at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\vector, line 1849
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 213
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Attempt to free VkCommandBuffer VulkanFrameBuffer.mDrawCommands[VulkanFrameBuffer.mDrawCommands] which is in use. The Vulkan spec states: All elements of pCommandBuffers must not be in the pending state (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeCommandBuffers-pCommandBuffers-00047)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from std::_Destroy_range<std::allocator<std::unique_ptr<VulkanCommandBuffer,std::default_delete<VulkanCommandBuffer> > > > at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xmemory0, line 1158
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 215
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] Attempt to free VkCommandBuffer VulkanFrameBuffer.mTransferCommands[VulkanFrameBuffer.mTransferCommands] which is in use. The Vulkan spec states: All elements of pCommandBuffers must not be in the pending state (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeCommandBuffers-pCommandBuffers-00047)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from std::_Destroy_range<std::allocator<std::unique_ptr<VulkanCommandBuffer,std::default_delete<VulkanCommandBuffer> > > > at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xmemory0, line 1158
Called from VulkanFrameBuffer::DeleteFrameObjects at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 215
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 120
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart


[vulkan error] VkFence 0xf[] is in use. The Vulkan spec states: All queue submission commands that refer to fence must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyFence-fence-01120)
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from vkEnumerateInstanceExtensionProperties
Called from std::unique_ptr<VulkanFence,std::default_delete<VulkanFence> >::~unique_ptr<VulkanFence,std::default_delete<VulkanFence> > at c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\memory, line 2296
Called from `eh vector destructor iterator'
Called from VulkanFrameBuffer::~VulkanFrameBuffer at c:\games\doom 2\gzsource\src\rendering\vulkan\system\vk_framebuffer.cpp, line 121
Called from VulkanFrameBuffer::`scalar deleting destructor'
Called from I_ShutdownGraphics at c:\games\doom 2\gzsource\src\win32\hardware.cpp, line 103
Called from `DoMain'::`1'::catch$11 at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1019
Called from _CallSettingFrame at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm, line 50
Called from __FrameHandler3::CxxCallCatchBlock at d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp, line 1528
Called from RtlCaptureContext
Called from DoMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 991
Called from wWinMain at c:\games\doom 2\gzsource\src\win32\i_main.cpp, line 1323
Called from __scrt_common_main_seh at d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288
Called from BaseThreadInitThunk
Called from RtlUserThreadStart
User avatar
Major Cooke
Do unto others as you would have unto you. Judge yourself first.
 
Joined: 28 Jan 2007

Re: Lockups occasionally occurring when rendering new things

Postby dpJudas » Thu Aug 08, 2019 1:45 pm

Okay, that's interesting. Seems vkDeviceWaitIdle is called too late, after RAII has already started to tear down various objects. Fixing that probably will make it stop hanging and reveal the actual error it is trying to write out.
dpJudas
 
 
 
Joined: 28 May 2016

Next

Return to Vulkan Renderer Bugs

Who is online

Users browsing this forum: No registered users and 0 guests