You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think I have hit a validation issue in vkCmdCopyImage. My understanding is that copying pixels from a part of an image to a different part of the same image requires VK_IMAGE_LAYOUT_GENERAL. If I do that the validation layer gives me a performance warning and tells me to use the *_TRANSFER_SRC_OPTIMAL and *_TRANSFER_DST_OPTIMAL for the srcImage and dstImage parameters respectively. Obviously this is not possible since it's the same image. It seems like the validation layer is missing an "if" somewhere.
I looked around but I was unable to find the relevant code and check for myself. Can anyone confirm this issue or at least point me into the right direction?
I am using the validation layers from LunarG (v. 1.0.68).
From the specs:
Source image subresources must be in either the VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL layout. Destination image subresources must be in the VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL layout. As a consequence, if an image subresource is used as both source and destination of a copy, it must be in the VK_IMAGE_LAYOUT_GENERAL layout.
The text was updated successfully, but these errors were encountered:
I don't think this is resolved yet. I downloaded VulkanSDK v 1.1.114.0 and tested the scenario. I am still getting the performance warning. This time, I took a look around the code and found that the message is generated in CoreChecks::VerifyImageLayout:
// LAYOUT_GENERAL is allowed, but may not be performance optimal, flag as perf warning.
I also checked the validation test mentioned by Mark. If I'm reading the code correctly, VkLayerTest.CopyImageAspectMismatch does indeed test the scenario I'm interested in, but it does not check for performance warning messages, only error ones, i.e.: SetDesiredFailureMsg is always invoked with VK_DEBUG_REPORT_ERROR_BIT_EXT, and there's no VerifyNotFound call in the end.
I think I have hit a validation issue in vkCmdCopyImage. My understanding is that copying pixels from a part of an image to a different part of the same image requires VK_IMAGE_LAYOUT_GENERAL. If I do that the validation layer gives me a performance warning and tells me to use the *_TRANSFER_SRC_OPTIMAL and *_TRANSFER_DST_OPTIMAL for the srcImage and dstImage parameters respectively. Obviously this is not possible since it's the same image. It seems like the validation layer is missing an "if" somewhere.
I looked around but I was unable to find the relevant code and check for myself. Can anyone confirm this issue or at least point me into the right direction?
I am using the validation layers from LunarG (v. 1.0.68).
From the specs:
The text was updated successfully, but these errors were encountered: