title: How exactly is GLSL's "coherent" memory qualifier interpreted by GPU drivers for multi-pass rendering?
body: <p>The GLSL specification states, for the "coherent" memory qualifier: <em>"memory variable where reads and writes are coherent with reads and writes from other shader invocations"</em>.</p>
  
  <p>In practice, I'm unsure how this is interpreted by modern-day GPU drivers with regards to multiple rendering passes. When the GLSL spec states "other shader invocations", does that refer to shader invocations running only during the current pass, or any possible shader invocations in past or future passes? For my purposes, I define a pass as a <strong>"glBindFramebuffer-glViewPort-glUseProgram-glDrawABC-glDrawXYZ-glDraw123"</strong> cycle; where I'm currently executing 2 such passes per "render loop iteration" but may have more per iteration later on.</p>