Revert "Replace instead of queueing render updates."
This reverts commit 76960dfdb638b5bee2f08f41236ea2a25a6aab08. Reason for revert: Speculative rollback (performance). Original change's description: > Replace instead of queueing render updates. > > Bug: webrtc:351858995 > Change-Id: I6c07d71afeae886ff6a20509bca5b5c65f131e41 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356800 > Reviewed-by: Fabian Bergmark <fabianbergmark@google.com> > Reviewed-by: Zoé Lepaul <xalep@webrtc.org> > Commit-Queue: Ranveer Aggarwal <ranvr@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#42617} Bug: webrtc:351858995, b/355009708 Change-Id: I0552238732a940fcb06543960fc563b9bd7ca6f1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358140 Reviewed-by: Christoffer Dewerin <jansson@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Owners-Override: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/main@{#42696}
This commit is contained in:
parent
0012bfa128
commit
6b0de3f05b
@ -18,7 +18,6 @@ import androidx.annotation.GuardedBy;
|
||||
import androidx.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import org.webrtc.EglBase.EglConnection;
|
||||
|
||||
/** EGL graphics thread that allows multiple clients to share the same underlying EGLContext. */
|
||||
@ -123,7 +122,7 @@ public class EglThread implements RenderSynchronizer.Listener {
|
||||
private final HandlerWithExceptionCallbacks handler;
|
||||
private final EglConnection eglConnection;
|
||||
private final RenderSynchronizer renderSynchronizer;
|
||||
private Optional<RenderUpdate> pendingRenderUpdate = Optional.empty();
|
||||
private final List<RenderUpdate> pendingRenderUpdates = new ArrayList<>();
|
||||
private boolean renderWindowOpen = true;
|
||||
|
||||
private EglThread(
|
||||
@ -194,7 +193,7 @@ public class EglThread implements RenderSynchronizer.Listener {
|
||||
if (renderWindowOpen) {
|
||||
update.update(/* runsInline = */true);
|
||||
} else {
|
||||
pendingRenderUpdate = Optional.of(update);
|
||||
pendingRenderUpdates.add(update);
|
||||
}
|
||||
}
|
||||
|
||||
@ -203,9 +202,10 @@ public class EglThread implements RenderSynchronizer.Listener {
|
||||
handler.post(
|
||||
() -> {
|
||||
renderWindowOpen = true;
|
||||
pendingRenderUpdate.ifPresent(
|
||||
renderUpdate -> renderUpdate.update(/* runsInline = */ false));
|
||||
pendingRenderUpdate = Optional.empty();
|
||||
for (RenderUpdate update : pendingRenderUpdates) {
|
||||
update.update(/* runsInline = */false);
|
||||
}
|
||||
pendingRenderUpdates.clear();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user