Skip to content

mesa: fix SignalSemaphoreEXT behavior

Mike Blumenkrantz requested to merge zmike/mesa:external into main

the EXT_external_object spec originally was underspecified with regards to this function, leaving room for synchronization errors where:

  • app calls SignalSemaphoreEXT to signal a semaphore
  • mesa defers pipe_context::fence_server_signal with threaded context
  • driver defers gpu submission
  • SignalSemaphoreEXT has long since returned, app submits vk cmdbuf waiting on semaphore
  • spec violation / device lost

to prevent this, the spec is being changed to:

  1. require an implicit flush when calling SignalSemaphoreEXT
  2. require that this implicit flush also forces GPU submission before SignalSemaphoreEXT returns

all affected drivers have been updated

fixes #6568 (closed)

cc: mesa-stable

Merge request reports