dforsten
Posts: 1
Joined: Tue Jun 09, 2020 8:14 am
PC Specification: 9900K, 2070 Super, Windows 10

Implicit Vulkan layer causes error messages

Tue Jun 09, 2020 8:20 am

When starting any Vulkan application on a Windows 10 OS with Mirillis Action! installed an implicit Vulkan layer gets registered, which causes a large number of errors in the Vulkan Validator layer output:

validation layer: Validation Error: [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object 0: VK_NULL_HANDLE, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x12537a2c | Missing extension required by the device extension VK_KHR_external_memory: VK_KHR_external_memory_capabilities. The Vulkan spec states: All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list. (https://www.khronos.org/registry/vulkan ... ames-01387)
validation layer: Validation Error: [ VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 ] Object 0: handle = 0x2239ab0eb80, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x9b4c6071 | Invalid VkDescriptorPool Object 0x892cdd0000000018. The Vulkan spec states: If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table (https://www.khronos.org/registry/vulkan ... Type-02590)
validation layer: Validation Error: [ VUID-VkImageViewCreateInfo-image-01019 ] Object 0: handle = 0x948acd0000000008, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x3ecd7296 | vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage 0x948acd0000000008[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation. The Vulkan spec states: If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image (https://www.khronos.org/registry/vulkan ... mage-01019)
validation layer: Validation Error: [ VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 ] Object 0: handle = 0x2239ab0eb80, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x9b4c6071 | Invalid VkFramebuffer Object 0xcc0459000000001c. The Vulkan spec states: If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table (https://www.khronos.org/registry/vulkan ... Type-02590)
validation layer: Validation Error: [ VUID-VkImageViewCreateInfo-image-01019 ] Object 0: handle = 0xa540ac0000000009, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x3ecd7296 | vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage 0xa540ac0000000009[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation. The Vulkan spec states: If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image (https://www.khronos.org/registry/vulkan ... mage-01019)
validation layer: Validation Error: [ VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 ] Object 0: handle = 0x2239ab0eb80, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x9b4c6071 | Invalid VkFramebuffer Object 0xaa989b000000001e. The Vulkan spec states: If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table (https://www.khronos.org/registry/vulkan ... Type-02590)
validation layer: Validation Error: [ VUID-VkImageViewCreateInfo-image-01019 ] Object 0: handle = 0x731f0f000000000a, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x3ecd7296 | vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage 0x731f0f000000000a[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation. The Vulkan spec states: If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image (https://www.khronos.org/registry/vulkan ... mage-01019)
validation layer: Validation Error: [ VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 ] Object 0: handle = 0x2239ab0eb80, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x9b4c6071 | Invalid VkFramebuffer Object 0x30f5a50000000020. The Vulkan spec states: If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table (https://www.khronos.org/registry/vulkan ... Type-02590)

This is particularly annoying when developing Vulkan applications on the same machine. Since Action! re-adds its implicit Vulkan layer whenever Action! starts it is hard to get rid of those errors, they just re-appear after manual deletion from the Windows Registry at "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers".

Please fix this error in your Vulkan Layer!

Piotr
Posts: 1484
Joined: Mon Jan 02, 2017 11:20 am
PC Specification: i7-6700, 16GB RAM, GTX 1070

Re: Implicit Vulkan layer causes error messages

Wed Jun 10, 2020 5:57 am

Hello, thank you for informing us. We will check that out.
Follow us on Twitter:
http://twitter.com/MirillisTeam
Find us on Facebook:
http://www.facebook.com/Mirillis

*PJ
Posts: 2
Joined: Mon Jun 15, 2020 12:15 pm
PC Specification: Pentium II 150 Mhz, RIVA TNT2, Win 98

Re: Implicit Vulkan layer causes error messages

Mon Jun 15, 2020 12:34 pm

Hi

I looked into your problem. If I understood correctly vulkan layer works but spits
annoying log messages while you have enabled validation layer.

You are probably not aware but you don't have to remove registry key to disable implicit vulkan layer.
Each implicit vulkan layer has it's enviroment variable which disables it. Take a look into MirillisActionVulkanLayer.json at
section

"disable_environment": {
"ENABLE_MIRILLIS_LAYER": "1"
}

(I know that this name is misleading). So if you add "ENABLE_MIRILLIS_LAYER=1" to your system enviroment variables
it will globally turn off that layer for each new running application. By adding this enviroment variable to debugger properties
in Visual Studio it's in project properties in "Configuration Properties->Debugging->Enviroment" you will disable mirillis
layer only when you launch debugger.

In log your provided is one thing which does not add up.

validation layer: Validation Error: [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object 0: VK_NULL_HANDLE, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x12537a2c | Missing extension required by the device extension VK_KHR_external_memory: VK_KHR_external_memory_capabilities. The Vulkan spec states: All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list. (https://www.khronos.org/registry/vulkan ... ames-01387)

Our layer does not create device with that extensions if it is not supported. Are you 100% sure you use newest version.
I also remember it was tested on device which does not support this extension and I didn't see that log.

The other log you mentioned:
validation layer: Validation Error: [ VUID-VkImageViewCreateInfo-image-01019 ] Object 0: handle = 0x731f0f000000000a, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x3ecd7296 | vkCreateImageView() format VK_FORMAT_B8G8R8A8_UNORM differs from VkImage 0x731f0f000000000a[] format VK_FORMAT_B8G8R8A8_SRGB. Formats MUST be IDENTICAL unless VK_IMAGE_CREATE_MUTABLE_FORMAT BIT was set on image creation. The Vulkan spec states: If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image (https://www.khronos.org/registry/vulkan ... mage-01019)

Can't be fixed because it is releated to vkCreateSwapchainKHR not vkCreateImageView. According to documentation https://www.khronos.org/registry/vulkan ... tsKHR.html
VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR should be set in VkSwapchainCreateInfoKHR.flags but the problem is that flag did not exist in earlier vulkan versions therefore previous validation layers
did not treat this as error. If you add VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR flag in your application VkSwapchainCreateInfoKHR structure this message should vanish. However enabling that bit
will require enabling additional extensions https://www.khronos.org/registry/vulkan ... ormat.html which layer can add according to specification
but reality is diffrent https://github.com/KhronosGroup/Vulkan- ... -638498897. (Only validation layer can add additional extensions). This problem was partially solved in new versions of vulkan by including few extensions as core extensions
which allow you to not add specific extension while creating instance or device. Solving this issue is pretty complicated to make it work on all machines and if it works I would rather not touch that.

I did not see other logs while running validation layer I think they are related to yours application.

PS. You can still filter out layer messages in callback installed by vkCreateDebugReportCallbackEXT by checking callstack of previous calls.

Return to “Action! Screen and Game Recorder”

Who is online

Users browsing this forum: No registered users and 6 guests