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

Unified Diff: content/browser/renderer_host/compositor_impl_android.cc

Issue 628703005: Remove GpuHostMsg_FrameDrawn and replace with client channel swap ack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months 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
Index: content/browser/renderer_host/compositor_impl_android.cc
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
index e7a1d3c0e05dabd0c8b3fb91ae58e1ee503f867c..dceb9a1845f3e852615b3f3dfdb154373b5062dc 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -29,6 +29,7 @@
#include "content/browser/android/child_process_launcher_android.h"
#include "content/browser/gpu/browser_gpu_channel_host_factory.h"
#include "content/browser/gpu/gpu_surface_tracker.h"
+#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/common/gpu/client/command_buffer_proxy_impl.h"
#include "content/common/gpu/client/context_provider_command_buffer.h"
#include "content/common/gpu/client/gl_helper.h"
@@ -37,6 +38,7 @@
#include "content/common/gpu/gpu_process_launch_causes.h"
#include "content/common/host_shared_bitmap_manager.h"
#include "content/public/browser/android/compositor_client.h"
+#include "gpu/command_buffer/client/context_support.h"
#include "gpu/command_buffer/client/gles2_interface.h"
#include "third_party/khronos/GLES2/gl2.h"
#include "third_party/khronos/GLES2/gl2ext.h"
@@ -77,9 +79,11 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface {
content::CommandBufferProxyImpl* command_buffer_proxy =
provider_command_buffer->GetCommandBufferProxy();
DCHECK(command_buffer_proxy);
- command_buffer_proxy->SetLatencyInfo(frame->metadata.latency_info);
-
- OutputSurface::SwapBuffers(frame);
+ command_buffer_proxy->SetLatencyInfo(
+ frame->metadata.latency_info,
+ base::Bind(&OutputSurfaceWithoutParent::OnSwapBuffersCompleted,
+ base::Unretained(this)));
piman 2014/10/07 02:30:39 Same concern here wrt lifetime.
+ context_provider_->ContextSupport()->Swap();
piman 2014/10/07 02:30:39 nit: add a DCHECK that the frame is a full frame?
no sievers 2014/10/07 19:47:24 Done.
}
virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE {
@@ -95,6 +99,13 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface {
return true;
}
+ private:
+ void OnSwapBuffersCompleted(
+ const std::vector<ui::LatencyInfo>& latency_info) {
+ RenderWidgetHostImpl::CompositorFrameDrawn(latency_info);
+ OutputSurface::OnSwapBuffersComplete();
+ }
+
scoped_refptr<base::MessageLoopProxy> main_thread_;
base::WeakPtr<content::CompositorImpl> compositor_impl_;
};

Powered by Google App Engine
This is Rietveld 408576698