Mir

Comment 1 for bug 1329868

Revision history for this message
Kevin DuBois (kdub) wrote :

So basically, what is happening is:

<render 1>
one renderable is accepted as an overlay
fence for first renderable is raised, guaranteeing no one can /write/ to the buffer while hwc is /reading/
<post>

second renderable appears

<render 2>
both surfaces are rejected as on overlay, must be rendered via the fallback renderer
the buffer for the 1st client has not been updated, so the fallback renderer tries to gl_bind_to_texture the buffer.
the buffer waits on the fence indefinitely, as the hwc will never signal the fence until the next set() is called.

~~~~~~~
So, since both the hwc usage and the texture binding is a read-only operation, we're safe to allow the texture read while the buffer's fence is guarding a read-only operation.