Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index e9c739e16ee98733c0b01167b3c079e999f886ed..1daba3372449119005d2d5c5067ca76f02eb25c9 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -4300,9 +4300,8 @@ void GLES2Implementation::PartialSwapBuffers(const gfx::Rect& sub_buffer) { |
sub_buffer.x(), sub_buffer.y(), sub_buffer.width(), sub_buffer.height()); |
} |
-void GLES2Implementation::CommitOverlayPlanesCHROMIUM() { |
- // TODO(watk): crbug.com/560592 |
- NOTIMPLEMENTED(); |
+void GLES2Implementation::CommitOverlayPlanes() { |
+ CommitOverlayPlanesCHROMIUM(); |
} |
static GLenum GetGLESOverlayTransform(gfx::OverlayTransform plane_transform) { |
@@ -4367,6 +4366,21 @@ void GLES2Implementation::ScheduleCALayerCHROMIUM(GLuint contents_texture_id, |
buffer.offset()); |
} |
+void GLES2Implementation::CommitOverlayPlanesCHROMIUM() { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] CommitOverlayPlanesCHROMIUM()"); |
+ TRACE_EVENT0("gpu", "GLES2::CommitOverlayPlanesCHROMIUM"); |
+ |
+ // Same flow control as GLES2Implementation::SwapBuffers (see comments there). |
+ swap_buffers_tokens_.push(helper_->InsertToken()); |
+ helper_->CommitOverlayPlanesCHROMIUM(); |
+ helper_->CommandBufferHelper::Flush(); |
+ if (swap_buffers_tokens_.size() > kMaxSwapBuffers + 1) { |
+ helper_->WaitForToken(swap_buffers_tokens_.front()); |
+ swap_buffers_tokens_.pop(); |
+ } |
+} |
+ |
GLboolean GLES2Implementation::EnableFeatureCHROMIUM( |
const char* feature) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |