title: What does it even mean to make an image visible to a writes (or available to reads)?
body: <p>An availability operation can be compared to a cache flush - cache contents are released to main memory.
  Similarly, visibility operation can be compared to a cache invalidation - cache consumes contents of main memory.</p>
  <p><em>(it doesn't have to be a 1:1 hw mapping, but you get the idea)</em></p>
  <p>It seems nonsensical to perform a visibility operation before a write (since we're about to override whatever is in our imaginary or no-so-imaginary cache either way) or an availability operation after a read (nothing has changed!).</p>
  <p>I saw code, which includes memory writes in dstAccessMask and/or memory reads in srcAccessMask. What's the point?</p>