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

Side by Side Diff: cc/output/gl_renderer.cc

Issue 17504006: GPU process clients can perform a "shallow" finish. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 1994 matching lines...) Expand 10 before | Expand all | Expand 10 after
2005 1.f, 2005 1.f,
2006 1.f)); 2006 1.f));
2007 } 2007 }
2008 2008
2009 SetShaderOpacity(1.f, program->fragment_shader().alpha_location()); 2009 SetShaderOpacity(1.f, program->fragment_shader().alpha_location());
2010 2010
2011 GLC(Context(), Context()->bindTexture(GL_TEXTURE_2D, texture_id)); 2011 GLC(Context(), Context()->bindTexture(GL_TEXTURE_2D, texture_id));
2012 DrawQuadGeometry( 2012 DrawQuadGeometry(
2013 frame, draw_matrix, rect, program->vertex_shader().matrix_location()); 2013 frame, draw_matrix, rect, program->vertex_shader().matrix_location());
2014 } 2014 }
2015 2015 //
2016 void GLRenderer::Finish() { 2016 //void GLRenderer::Finish() {
2017 TRACE_EVENT0("cc", "GLRenderer::finish"); 2017 // TRACE_EVENT0("cc", "GLRenderer::finish");
2018 context_->finish(); 2018 // context_->finish();
2019 } 2019 //}
2020 2020
2021 void GLRenderer::SwapBuffers() { 2021 void GLRenderer::SwapBuffers() {
2022 DCHECK(visible_); 2022 DCHECK(visible_);
2023 DCHECK(!is_backbuffer_discarded_); 2023 DCHECK(!is_backbuffer_discarded_);
2024 2024
2025 TRACE_EVENT0("cc", "GLRenderer::SwapBuffers"); 2025 TRACE_EVENT0("cc", "GLRenderer::SwapBuffers");
2026 // We're done! Time to swapbuffers! 2026 // We're done! Time to swapbuffers!
2027 2027
2028 CompositorFrame compositor_frame; 2028 CompositorFrame compositor_frame;
2029 compositor_frame.metadata = client_->MakeCompositorFrameMetadata(); 2029 compositor_frame.metadata = client_->MakeCompositorFrameMetadata();
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
2336 // Save the buffer to verify the callbacks happen in the expected order. 2336 // Save the buffer to verify the callbacks happen in the expected order.
2337 pending_async_read_pixels_.front()->buffer = buffer; 2337 pending_async_read_pixels_.front()->buffer = buffer;
2338 2338
2339 if (is_async) { 2339 if (is_async) {
2340 unsigned sync_point = context_->insertSyncPoint(); 2340 unsigned sync_point = context_->insertSyncPoint();
2341 SyncPointHelper::SignalSyncPoint( 2341 SyncPointHelper::SignalSyncPoint(
2342 context_, 2342 context_,
2343 sync_point, 2343 sync_point,
2344 finished_callback); 2344 finished_callback);
2345 } else { 2345 } else {
2346 resource_provider_->Finish(); 2346 // Can this be a flush?
piman 2013/06/21 02:31:10 It can't because we're waiting on the the ReadPixe
2347 // resource_provider_->Finish();
2347 finished_callback.Run(); 2348 finished_callback.Run();
2348 } 2349 }
2349 2350
2350 EnforceMemoryPolicy(); 2351 EnforceMemoryPolicy();
2351 } 2352 }
2352 2353
2353 void GLRenderer::FinishedReadback( 2354 void GLRenderer::FinishedReadback(
2354 const AsyncGetFramebufferPixelsCleanupCallback& cleanup_callback, 2355 const AsyncGetFramebufferPixelsCleanupCallback& cleanup_callback,
2355 unsigned source_buffer, 2356 unsigned source_buffer,
2356 uint8* dest_pixels, 2357 uint8* dest_pixels,
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
3029 // The Skia GPU backend requires a stencil buffer. See ReinitializeGrCanvas 3030 // The Skia GPU backend requires a stencil buffer. See ReinitializeGrCanvas
3030 // implementation. 3031 // implementation.
3031 return gr_context_ && context_->getContextAttributes().stencil; 3032 return gr_context_ && context_->getContextAttributes().stencil;
3032 } 3033 }
3033 3034
3034 bool GLRenderer::IsContextLost() { 3035 bool GLRenderer::IsContextLost() {
3035 return (context_->getGraphicsResetStatusARB() != GL_NO_ERROR); 3036 return (context_->getGraphicsResetStatusARB() != GL_NO_ERROR);
3036 } 3037 }
3037 3038
3038 } // namespace cc 3039 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.h ('k') | cc/output/renderer.h » ('j') | cc/trees/layer_tree_host_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698