Setting NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS to 0 in egl_native_surface_interpreter.cpp does seem to avert the problem, however this doesn't seem quite right to do in general.
What is happening is the first time the client sees the newly-allocated frame, it registerBuffers() the new buffer without error, and then the driver dequeue()s the buffer, and then queue the buffer, but doesn't write to the buffer.
Setting NATIVE_ WINDOW_ MIN_UNDEQUEUED_ BUFFERS to 0 in egl_native_ surface_ interpreter. cpp does seem to avert the problem, however this doesn't seem quite right to do in general.
What is happening is the first time the client sees the newly-allocated frame, it registerBuffers() the new buffer without error, and then the driver dequeue()s the buffer, and then queue the buffer, but doesn't write to the buffer.