Skip to content

Draft: anv: Mark external objects with EXEC_OBJECT_WRITE

Matt Turner requested to merge mattst88/mesa:anv-implicit-sync-external-bos into main
anv: Mark external objects with EXEC_OBJECT_WRITE

Exported buffers consumed by software using implicit sync (e.g. libva)
need to be marked with EXEC_OBJECT_WRITE. Otherwise the consumer will
not be made to wait until anv is finished writing to the buffer.

Unfortunately, with the bindless nature of Vulkan, all buffers have to
be added to the execlist so this will cause a lot of unnecessary
synchronization.

This was discovered when enabling the Vulkan renderer in Chrome.

This was discovered as the cause of corruption in the libva-encoded
video stream from Google Meet when the Vulkan renderer in Chrome was
enabled.

I'm not expecting to land this — just to provide a starting point for discussion.

Short of this big hammer, other options that come to mind:

cc: @linyaa

Merge request reports