KhronosGroup / Vulkan-ValidationLayers

Vulkan Validation Layers (VVL)
https://vulkan.lunarg.com/doc/sdk/latest/linux/khronos_validation_layer.html
Other
727 stars 396 forks source link

sync: Detect hazardous buffer resource #8222

Closed artem-lunarg closed 2 hours ago

artem-lunarg commented 3 days ago

This adds the support to detect a hazardous buffer resource during queue submit validation. A similar functionality for images (and other resources) will be added later.

ResourceUsageTagEx is a new structure that extends tag id with resource handle information.

vkQueueSubmit error message adds a resource field in the end:

[ SYNC-HAZARD-WRITE-AFTER-WRITE ] Object 0: handle = 0x2cf6ffd67d0, type = VK_OBJECT_TYPE_QUEUE; | MessageID = 0x5c0ec5d6 | vkQueueSubmit(): Hazard WRITE_AFTER_WRITE for entry 0, VkCommandBuffer 0x2cf7ea5bb60[], Submitted access info (submitted_usage: SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE, command: vkCmdDispatch, seq_no: 1, reset_no: 1, resource: VkBuffer 0xead9370000000008[BufferB]). Access info (prior_usage: SYNC_COPY_TRANSFER_WRITE, write_barriers: 0, queue: VkQueue 0x2cf6ffd67d0[], submit: 0, batch: 0, batch_tag: 1, command: vkCmdCopyBuffer, command_buffer: VkCommandBuffer 0x2cf7ea43a60[], seq_no: 1, reset_no: 1, resource: VkBuffer 0xead9370000000008[BufferB])

Addresses https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/8139

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build queued with queue ID 209831.

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build # 16971 running.

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build # 16971 passed.

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build queued with queue ID 210251.

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build # 16976 running.

ci-tester-lunarg commented 3 days ago

CI Vulkan-ValidationLayers build # 16976 passed.

artem-lunarg commented 2 days ago

Found crash while running doom capture. Investigating.

ci-tester-lunarg commented 23 hours ago

CI Vulkan-ValidationLayers build queued with queue ID 211672.

ci-tester-lunarg commented 23 hours ago

CI Vulkan-ValidationLayers build # 16992 running.

ci-tester-lunarg commented 23 hours ago

CI Vulkan-ValidationLayers build # 16992 passed.

artem-lunarg commented 20 hours ago

Going to merge https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/8237 fix at first.

ci-tester-lunarg commented 16 hours ago

CI Vulkan-ValidationLayers build queued with queue ID 211832.

ci-tester-lunarg commented 16 hours ago

CI Vulkan-ValidationLayers build # 16994 running.

ci-tester-lunarg commented 16 hours ago

CI Vulkan-ValidationLayers build # 16994 passed.