Skip to content

zink: add extra synchronization for buffer descriptor binds

Mike Blumenkrantz requested to merge zmike/mesa:zink-sync into main

"most" times it isn't necessary to insert any pipeline barriers when binding descriptors, as GL requires explicit barrier usage which comes through a different codepath

the exception here is when the following scenario occurs:

  • have buffer A
  • buffer_subdata is called on A
  • discard path is taken || A is not host-visible
  • stream uploader is used for host write
  • CmdCopyBuffer is used to copy the data back to A buffer A now has a pending TRANSFER write that must complete before the buffer is used in a shader, so synchronization is required any time TRANSFER usage is detected in a bind

there's also going to be more exceptions going forward as more internal usage is added, so just remove the whole fake-barrier mechanism since it'll become more problematic going forward

Cc: 21.3 mesa-stable

Merge request reports