Prevent windows from drawing if they're in an active sync set
If a window is in a sync, but it already drew it's sync buffer, it normally would be allowed to continue processing draws and just block when it runs out of buffers. It would unblock once the sync is complete at the sync buffer was sent to SF. However, this has a few issues 1. In some cases, WMS wants to retry the draw again due to configuration changes. This could cause deadlocks because the client may already be blocked since there are no more buffers. Instead, the client will block and WMS would be responsible for dropping the last buffer and notifying the client that it can draw for a sync again 2. If there are multiple UI threads, each can block each other due to the shared Render Thread. If one of the windows in the sync continues to draw and then blocks RT due to no more buffers, all other UI threads are unable to draw. If the behavior in 1 is desired, we'd need to make sure no one in the same sync continues to draw until everyone is complete. This is to ensure dropping will actually allow another render to occur. If other windows are blocking the RT, then even with dropping, the requested sync window cannot get another buffer and will cause a deadlock. Test: Current sync requests work Bug: 233625646 Change-Id: I3a0a4f36bf61a6677507672578e447060b806651
Loading
Please register or sign in to comment