Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Unified Diff: services/ui/surfaces/direct_output_surface.cc

Issue 2529703002: Mus: Install SwapBuffersCompleted/VSync callbacks to DirectOutputSurface(Ozone) (Closed)
Patch Set: Grab capabilities from the InProcessCommandBuffer instead of making them up Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/surfaces/direct_output_surface.h ('k') | services/ui/surfaces/direct_output_surface_ozone.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/surfaces/direct_output_surface.cc
diff --git a/services/ui/surfaces/direct_output_surface.cc b/services/ui/surfaces/direct_output_surface.cc
index 32ac9e53b323e2085ad2a6cb9b0f5b101af3a699..75865a04f2d181af9dfba40de1ea51f4a88aca69 100644
--- a/services/ui/surfaces/direct_output_surface.cc
+++ b/services/ui/surfaces/direct_output_surface.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "cc/output/context_provider.h"
#include "cc/output/output_surface_client.h"
#include "cc/output/output_surface_frame.h"
@@ -25,6 +26,12 @@ DirectOutputSurface::DirectOutputSurface(
weak_ptr_factory_(this) {
capabilities_.flipped_output_surface =
context_provider->ContextCapabilities().flips_vertically;
+ context_provider->SetSwapBuffersCompletionCallback(
+ base::Bind(&DirectOutputSurface::OnGpuSwapBuffersCompleted,
+ weak_ptr_factory_.GetWeakPtr()));
+ context_provider->SetUpdateVSyncParametersCallback(
+ base::Bind(&DirectOutputSurface::OnVSyncParametersUpdated,
+ weak_ptr_factory_.GetWeakPtr()));
}
DirectOutputSurface::~DirectOutputSurface() {}
@@ -61,17 +68,6 @@ void DirectOutputSurface::SwapBuffers(cc::OutputSurfaceFrame frame) {
context_provider_->ContextSupport()->PartialSwapBuffers(
frame.sub_buffer_rect);
}
-
- gpu::gles2::GLES2Interface* gl = context_provider_->ContextGL();
- const GLuint64 fence_sync = gl->InsertFenceSyncCHROMIUM();
- gl->ShallowFlushCHROMIUM();
-
- gpu::SyncToken sync_token;
- gl->GenUnverifiedSyncTokenCHROMIUM(fence_sync, sync_token.GetData());
-
- context_provider_->ContextSupport()->SignalSyncToken(
- sync_token, base::Bind(&DirectOutputSurface::OnSwapBuffersComplete,
- weak_ptr_factory_.GetWeakPtr()));
}
uint32_t DirectOutputSurface::GetFramebufferCopyTextureFormat() {
@@ -104,17 +100,20 @@ bool DirectOutputSurface::HasExternalStencilTest() const {
void DirectOutputSurface::ApplyExternalStencil() {}
-void DirectOutputSurface::OnVSyncParametersUpdated(
- const base::TimeTicks& timebase,
- const base::TimeDelta& interval) {
+void DirectOutputSurface::OnGpuSwapBuffersCompleted(
+ const std::vector<ui::LatencyInfo>& latency_info,
+ gfx::SwapResult result,
+ const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) {
+ client_->DidReceiveSwapBuffersAck();
+}
+
+void DirectOutputSurface::OnVSyncParametersUpdated(base::TimeTicks timebase,
+ base::TimeDelta interval) {
// TODO(brianderson): We should not be receiving 0 intervals.
synthetic_begin_frame_source_->OnUpdateVSyncParameters(
timebase,
interval.is_zero() ? cc::BeginFrameArgs::DefaultInterval() : interval);
}
-void DirectOutputSurface::OnSwapBuffersComplete() {
- client_->DidReceiveSwapBuffersAck();
-}
} // namespace ui
« no previous file with comments | « services/ui/surfaces/direct_output_surface.h ('k') | services/ui/surfaces/direct_output_surface_ozone.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698