Closed gary-sweet closed 3 months ago
This change also causes command_buffer_usage
to crash for me. The driver is given a null buffer at some point.
While the sample does not crash for me (Win 11 nvidia RTX 4070), I'm seeing lots of validation errors now, e.g.
[error] -36706146 - VUID-VkWriteDescriptorSet-descriptorType-00327: Validation Error: [ VUID-VkWriteDescriptorSet-descriptorType-00327 ] | MessageID = 0xfdcfe89e | vkUpdateDescriptorSets(): pDescriptorWrites[0].pBufferInfo[0].offset (95760) must be a multiple of device limit minUniformBufferOffsetAlignment 64 when descriptor type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER. The Vulkan spec states: If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkWriteDescriptorSet-descriptorType-00327)
[error] -1774973932 - VUID-VkDescriptorBufferInfo-buffer-parameter: Validation Error: [ VUID-VkDescriptorBufferInfo-buffer-parameter ] Object 0: handle = 0x17f03a72da0, type = VK_OBJECT_TYPE_INSTANCE; | MessageID = 0x96340c14 | vkUpdateDescriptorSets(): pDescriptorWrites[1].pBufferInfo[0].buffer Invalid VkBuffer Object 0xdddddddddddddddd. The Vulkan spec states: If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle (https://vulkan.lunarg.com/doc/view/1.3.290.0/windows/1.3-extensions/vkspec.html#VUID-VkDescriptorBufferInfo-buffer-parameter)
So yeah, something def. broke with that PR. I don't remember seeing these in batch mode, but I probably forgot to enable validation when I did review the PR.
Looking at it, it seems to also change a few bits here and there regarding size and offset caluculations :/
I'm seeing various visual artifacts in samples - the most obvious being in
16bit_storage_input_output
where the teapots regularly flash yellow.AFBC
is flickering.async_compute
is also lit badly.A bisect of recent changes has shown https://github.com/KhronosGroup/Vulkan-Samples/pull/1091 (Unify vkb::BufferPool and vkb::rendering::HPPBufferPool into vkb::BufferPool) as being the point at which the artifacts began.