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
GPU and driver version: AMD RX 6900 XT (Mesa 24.0.9-0ubuntu0.2)
SDK or header version if building from repo: bbb0d49 (current main)
Options enabled (synchronization, best practices, etc.): GPU-AV
Describe the Issue
There are data races between submitting a command buffer, allocating another one and/or recording a command buffer (perhaps only vkCmdBindDescriptorSets).
The races are between the same functions VmaDeviceMemoryBlock::GetMappedData() inside vmaCreateBuffer and VmaDeviceMemoryBlock::Unmap() inside vmaUnmapMemory.
Here's the rough setup:
N worker threads each have their own set of 3 command pools (per frame in flight + 1)
Command buffers are allocated when the free list for the current thread + frame is empty
Command buffers are only recorded in the thread which allocated them
Submission happens potentially on another worker thread, in a scheduled order.
Command buffers are reused after 3 frames pass on the CPU (no more than 2 frames can run concurrently on the GPU, guaranteed by waiting for a timeline semaphore on the CPU)
Environment:
Mesa 24.0.9-0ubuntu0.2
)main
)Describe the Issue
There are data races between submitting a command buffer, allocating another one and/or recording a command buffer (perhaps only
vkCmdBindDescriptorSets
).The races are between the same functions
VmaDeviceMemoryBlock::GetMappedData()
insidevmaCreateBuffer
andVmaDeviceMemoryBlock::Unmap()
insidevmaUnmapMemory
.Here's the rough setup:
TSAN error 1 (submit & allocate):
TSAN error 2 (submit & record):
TSAN error 3 (record & allocate):
The full TSAN reports with mutex information are attached, because they exceed the maximum comment length.
vvl-vma-data-races.md
Core and sync. validation (including QueueSubmit) don't report any errors.
Expected behavior
No data races
The text was updated successfully, but these errors were encountered: