GPU Caps Viewer - TDR when exiting Vulkan Tesselation v2 demo.

Started by Dorian, February 03, 2020, 03:34:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.



This issue was found on Intel Skylake GPU.
After exiting Tesselation v2, it closes a little longer and you can see that GPU hanged (Windows Event Viewer -> System -> Error Source: Display, Event: 4101

I tested it with validation layers (, with dump to file (khronos_validation.log_filename = vk_layers.txt)
Commands to run:
set VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
GPU_Caps_Viewer.exe /demo_win_width=640 /demo_win_height=480 /run_gxl_demo=vk_tessellation_v2  /benchmark_log_results /benchmark_duration=3000 /demo_msaa=0

then it reports following errors:
QuoteVUID-vkDestroyBuffer-buffer-00922(ERROR / SPEC): msgNum: 0 - Cannot free VkNonDispatchableHandle 0x916fe20000000067[] 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 (
    Objects: 1
When I force WaitIdle after every QueueSubmit - issue does not occur, so it is timing related.
Looking at errors, I think demo is not waiting for command buffers to finish.

Could you look at it?


I found and fixed the bug (ImGui resources!). The fix will be available in the next version of GPU Caps Viewer and GeeXLab.


Thanks for rapid update.
I just downloaded 1.44.2, I see some files are different, but issue and layers log is still the same.
Maybe something is not uploaded correctly, could you try it on your side?



Does it make a difference if you use VK_LAYER_KHRONOS_validation instead of VK_LAYER_LUNARG_standard_validation?
I'm using VK_LAYER_KHRONOS_validation in the plugin if it's supported by the host. Otherwise I use VK_LAYER_LUNARG_standard_validation.  Try also with GeeXLab 0.29.14 (32 and 64-bit) to check.  I will do some more tests.


I found it: I fixed the bug in both GeeXLab exe + Vulkan plugin and I didn't update GPU Caps Viewer exe... stupid!


I confirm it is fixed and works in
Thanks :)

Regarding standard validation - it is a meta layer, and what was in it changed overtime. Currently in VulkanSDK it is a single VK_LAYER_KHRONOS_validation.
So there is no difference whether you use VK_LAYER_KHRONOS_validation or VK_LAYER_LUNARG_standard_validation.

It used to be a set of layers but Khronos joined them.
VK_LAYER_LUNARG_standard_validation seems to be more stable overtime (you can use it on very old SDK's, it will just load layers considered "standard" at that time).