Hello. we’ve been having problems with a VR build on Meta Quest 2. We’re trying to profile the build with RenderDoc, and we’re getting Vulkan Validation Errors. We want to make sure these errors do not affect performance, so we’re wondering if it’s possible to fix them at all, but we’re not sure where to start. Here they are :
1 API High Miscellaneous 3298163892 Validation Error: [ UNASSIGNED-API-Version-Violation ] Object 0: handle = Instance 70, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0xc495fcb4 | Attempted to call vkGetPhysicalDeviceProperties2() with an effective API version of 1.0.0 (0x00400000), which is the minimum of version requested in pApplicationInfo (1.0.0 (0x00400000)) and supported by this physical device (1.1.128 (0x00401080)), but this API was not promoted until version 1.1.0 (0x00401000).
[11:12 AM] ///////////////////////////////////////////
[11:12 AM] 1 API High Miscellaneous 2319640501 Validation Error: [ VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551 ] Object 0: handle = Device 72, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x8a42e7b5 | vkCreateRenderPass(): FragmentDensityMapAttachment 3 must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE. The Vulkan spec states: If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551)
[11:12 AM] ///////////////////////////////////////////
[11:12 AM] 1 API High Miscellaneous 3260607736 Validation Error: [ VUID-VkWriteDescriptorSet-descriptorType-00336 ] Object 0: handle = Descriptor Set 9503, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xc258ecf8 | vkUpdateDescriptorSets() pDescriptorWrites[8] failed write update validation for VkDescriptorSet Descriptor Set 9503 with error: Write update to VkDescriptorSet Descriptor Set 9503 allocated with VkDescriptorSetLayout Descriptor Layout 8209 binding
failed with error message: Attempted write update to image descriptor failed due to: ImageView (VkImageView Image View 3212) has a non-identiy swizzle component, r swizzle = VK_COMPONENT_SWIZZLE_R, g swizzle = VK_COMPONENT_SWIZZLE_ZERO, b swizzle = VK_COMPONENT_SWIZZLE_ZERO, a swizzle = VK_COMPONENT_SWIZZLE_ZERO.. The Vulkan spec states: If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkWriteDescriptorSet-descriptorType-00336)
[11:12 AM] ///////////////////////////////////////////
[11:12 AM] 1 API Medium Performance 101294395 Validation Performance Warning: [ UNASSIGNED-CoreValidation-Shader-OutputNotConsumed ] Object 0: handle = Shader Module 4501, type = VK_OBJECT_TYPE_SHADER_MODULE; | MessageID = 0x609a13b | vertex shader writes to output location 0.0 which is not consumed by fragment shader. Enable VK_KHR_maintenance4 device extension to allow relaxed interface matching between input and output vectors.
[11:12 AM] ///////////////////////////////////////////
Is it possible to fix these at all? My guess is that some of the shaders we’re using are causing these errors, but it’s really hard to figure out where to start. I have been looking everywhere for information but Vulkan-related issues such as these seem to be rather rare. By looking at the tags, some of these seem to originate from classes such as VulkanDebug.cpp…
Any help you could provide would be greatly appreciated!! Thanks in advance.