Seems the root cause is that the driver is requesting and remembering that specific number of buffers are available (in this case, 5 buffers). If one of the buffers the driver has remembered gets unregistered in gralloc, then the incoming buffer that takes the slot of the remembered+unregistered buffer causes the driver to pop the new buffer out without filling it. This gives us a flickering scenario sometimes (where we're toggling between an affected and unaffected buffers), and sometimes can cause the client to not appear on the screen at all (when enough framedrop-allocations have happened to affect all the buffers the driver is using). fix-in-progress....
I don't think at first glance that this related to any lingering out-of-order bugs.
Seems the root cause is that the driver is requesting and remembering that specific number of buffers are available (in this case, 5 buffers). If one of the buffers the driver has remembered gets unregistered in gralloc, then the incoming buffer that takes the slot of the remembered+ unregistered buffer causes the driver to pop the new buffer out without filling it. This gives us a flickering scenario sometimes (where we're toggling between an affected and unaffected buffers), and sometimes can cause the client to not appear on the screen at all (when enough framedrop- allocations have happened to affect all the buffers the driver is using). fix-in-progress....
I don't think at first glance that this related to any lingering out-of-order bugs.