I think you're planning for the wrong approach. The renderer should never feed back directly to the client as it's just a /view/. The renderer shall never communicate with clients in any way. Instead we should indirectly observe that a client's become occluded. This is easy using BufferConsumingFunctor which observes physical frame completion - if and when lp:~vanvugt/mir/judder lands.
Occlusion detection is designed to block clients that are not visible. That's it's purpose. If we're serious about making things non-blocking then it makes no sense to keep it as it only gets in the way (as mentioned here: https://code.launchpad.net/~vanvugt/mir/judder/+merge/216694)
I think you're planning for the wrong approach. The renderer should never feed back directly to the client as it's just a /view/. The renderer shall never communicate with clients in any way. Instead we should indirectly observe that a client's become occluded. This is easy using BufferConsuming Functor which observes physical frame completion - if and when lp:~vanvugt/mir/judder lands.
Occlusion detection is designed to block clients that are not visible. That's it's purpose. If we're serious about making things non-blocking then it makes no sense to keep it as it only gets in the way (as mentioned here: https:/ /code.launchpad .net/~vanvugt/ mir/judder/ +merge/ 216694)