Skip to content

radv: Fix host<->host timeline semaphore synchronization

Andres Rodriguez requested to merge lostgoat/mesa:host-host-timeline-fix into master

The following scenario currently results in a deadlock on radv:

  • Thread1: vkWaitSemaphore( timeline, 1 )
  • Thread2: vkSignalSemaphore( timeline, 1)
  • Thread1: Expected unblocked, Actual: still stuck waiting.

The problem is that Thread1 never wakes up from waiting on device->timeline_cond in radv_timeline_wait_locked(). This thread never wakes up because the Thread2 never signaled the condition variable.

This patch fixes the problem by adding the missing condition variable signal operation to the signal path.

Signed-off-by: Andres Rodriguez andresx7@gmail.com

Merge request reports