Author Topic: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.  (Read 4797 times)

0 Members and 1 Guest are viewing this topic.

Dorian

  • Jr. Member
  • **
  • Posts: 17
Hi,

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 (1.2.131.1), with dump to file (khronos_validation.log_filename = vk_layers.txt)
Commands to run:
Code: [Select]
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:
Quote
VUID-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 (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyBuffer-buffer-00922)
    Objects: 1
       
  • 0x67, type: 9, name: NULL

VUID-vkFreeMemory-memory-00677(ERROR / SPEC): msgNum: 0 - Cannot call vkFreeMemory on VkDeviceMemory 0xc0864d0000000068[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to memory (via images or buffers) must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeMemory-memory-00677)
    Objects: 1
       
  • 0x68, type: 8, name: NULL

VUID-vkDestroyBuffer-buffer-00922(ERROR / SPEC): msgNum: 0 - Cannot free VkNonDispatchableHandle 0x5f272c0000000069[] 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)
    Objects: 1
       
  • 0x69, type: 9, name: NULL

VUID-vkFreeMemory-memory-00677(ERROR / SPEC): msgNum: 0 - Cannot call vkFreeMemory on VkDeviceMemory 0x83448f000000006a[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to memory (via images or buffers) must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeMemory-memory-00677)
    Objects: 1
       
  • 0x6a, type: 8, name: NULL

VUID-vkDestroyImageView-imageView-01026(ERROR / SPEC): msgNum: 0 - Cannot call vkDestroyImageView on VkImageView 0x3010c10000000064[] 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)
    Objects: 1
       
  • 0x64, type: 14, name: NULL

VUID-vkDestroyImage-image-01000(ERROR / SPEC): msgNum: 0 - Cannot call vkDestroyImage on VkImage 0x784b870000000062[] 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)
    Objects: 1
       
  • 0x62, type: 10, name: NULL

VUID-vkFreeMemory-memory-00677(ERROR / SPEC): msgNum: 0 - Cannot call vkFreeMemory on VkDeviceMemory 0x16ec660000000063[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to memory (via images or buffers) must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkFreeMemory-memory-00677)
    Objects: 1
       
  • 0x63, type: 8, name: NULL

VUID-vkFreeDescriptorSets-pDescriptorSets-00309(ERROR / SPEC): msgNum: 0 - Cannot call vkFreeDescriptorSets() on VkNonDispatchableHandle 0x8676da000000005f[] 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)
    Objects: 1
       
  • 0x5f, type: 23, name: NULL

VUID-vkDestroyPipeline-pipeline-00765(ERROR / SPEC): msgNum: 0 - Cannot call vkDestroyPipeline on VkPipeline 0x542e240000000061[] that is currently in use by a command buffer. The Vulkan spec states: All submitted commands that refer to pipeline must have completed execution (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkDestroyPipeline-pipeline-00765)
    Objects: 1
       
  • 0x61, type: 19, name: NULL
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?



JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #1 on: February 03, 2020, 05:24:41 PM »
Yep, I will look at this issue.

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #2 on: February 03, 2020, 06:39:48 PM »
I found and fixed the bug (ImGui resources!). The fix will be available in the next version of GPU Caps Viewer and GeeXLab.

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #3 on: February 12, 2020, 11:09:16 AM »
GPU Caps Viewer 1.44.2 released with the bugfix  ;)

Dorian

  • Jr. Member
  • **
  • Posts: 17
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #4 on: February 12, 2020, 02:32:30 PM »
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?

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #5 on: February 12, 2020, 03:11:43 PM »
Curious...

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.

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #6 on: February 12, 2020, 03:19:25 PM »
Arrrggghh  >:(
The errors are still there...

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #7 on: February 12, 2020, 03:23:07 PM »
I found it: I fixed the bug in both GeeXLab exe + Vulkan plugin and I didn't update GPU Caps Viewer exe... stupid!

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2453
    • Geeks3D.com
Re: GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #8 on: February 12, 2020, 03:33:16 PM »
Fixed!
I will release GPU Caps Viewer 1.44.3 asap.


Dorian

  • Jr. Member
  • **
  • Posts: 17
GPU Caps Viewer 1.44.1.0 - TDR when exiting Vulkan Tesselation v2 demo.
« Reply #10 on: February 13, 2020, 07:25:22 AM »
I confirm it is fixed and works in 1.44.2.1.
Thanks :)

Regarding standard validation - it is a meta layer, and what was in it changed overtime. Currently in VulkanSDK 1.2.131.1 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).