Index: ui/gl/gl_surface_ozone.cc |
diff --git a/ui/gl/gl_surface_ozone.cc b/ui/gl/gl_surface_ozone.cc |
index b9655525274a490a8b3f592da3436fccb9ceece2..67c1483ca9d5e586fd99a970619beef3d7c664c8 100644 |
--- a/ui/gl/gl_surface_ozone.cc |
+++ b/ui/gl/gl_surface_ozone.cc |
@@ -262,13 +262,14 @@ gfx::SwapResult GLSurfaceOzoneSurfaceless::SwapBuffers() { |
EGLDisplay display = GetDisplay(); |
WaitForFence(display, fence); |
eglDestroySyncKHR(display, fence); |
- } else if (ozone_surface_->IsUniversalDisplayLinkDevice()) { |
- glFinish(); |
} |
unsubmitted_frames_.back()->ScheduleOverlayPlanes(widget_); |
unsubmitted_frames_.back()->overlays.clear(); |
+ if (ozone_surface_->IsUniversalDisplayLinkDevice()) |
+ glFinish(); |
+ |
return ozone_surface_->OnSwapBuffers() ? gfx::SwapResult::SWAP_ACK |
: gfx::SwapResult::SWAP_FAILED; |
} |
@@ -347,9 +348,6 @@ void GLSurfaceOzoneSurfaceless::SwapBuffersAsync( |
return; // Defer frame submission until fence signals. |
} |
- if (ozone_surface_->IsUniversalDisplayLinkDevice()) |
- glFinish(); |
- |
frame->ready = true; |
SubmitFrame(); |
} |
@@ -383,6 +381,9 @@ void GLSurfaceOzoneSurfaceless::SubmitFrame() { |
return; |
} |
+ if (ozone_surface_->IsUniversalDisplayLinkDevice()) |
+ glFinish(); |
+ |
ozone_surface_->OnSwapBuffersAsync(frame->callback); |
} |
} |