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

Side by Side Diff: content/common/gpu/gpu_command_buffer_stub.cc

Issue 10052018: Drop frontbuffers with ui-use-gpu-process, synchronized with browser, decoupled from backbuffer dro… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renaming messages. Updated the other platforms. Created 8 years, 7 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #if defined(ENABLE_GPU) 5 #if defined(ENABLE_GPU)
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 : channel_(channel), 52 : channel_(channel),
53 handle_(handle), 53 handle_(handle),
54 initial_size_(size), 54 initial_size_(size),
55 disallowed_features_(disallowed_features), 55 disallowed_features_(disallowed_features),
56 allowed_extensions_(allowed_extensions), 56 allowed_extensions_(allowed_extensions),
57 requested_attribs_(attribs), 57 requested_attribs_(attribs),
58 gpu_preference_(gpu_preference), 58 gpu_preference_(gpu_preference),
59 route_id_(route_id), 59 route_id_(route_id),
60 software_(software), 60 software_(software),
61 last_flush_count_(0), 61 last_flush_count_(0),
62 allocation_(GpuMemoryAllocation::INVALID_RESOURCE_SIZE,
63 GpuMemoryAllocation::kHasFrontbuffer |
64 GpuMemoryAllocation::kHasBackbuffer),
65 parent_stub_for_initialization_(), 62 parent_stub_for_initialization_(),
66 parent_texture_for_initialization_(0), 63 parent_texture_for_initialization_(0),
67 watchdog_(watchdog) { 64 watchdog_(watchdog) {
68 if (share_group) { 65 if (share_group) {
69 context_group_ = share_group->context_group_; 66 context_group_ = share_group->context_group_;
70 } else { 67 } else {
71 context_group_ = new gpu::gles2::ContextGroup(mailbox_manager, true); 68 context_group_ = new gpu::gles2::ContextGroup(mailbox_manager, true);
72 } 69 }
73 if (surface_id != 0) 70 if (surface_id != 0)
74 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState( 71 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState(
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) { 568 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) {
572 DCHECK(surface_state_.get()); 569 DCHECK(surface_state_.get());
573 surface_state_->visible = visible; 570 surface_state_->visible = visible;
574 surface_state_->last_used_time = base::TimeTicks::Now(); 571 surface_state_->last_used_time = base::TimeTicks::Now();
575 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage(); 572 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage();
576 } 573 }
577 574
578 void GpuCommandBufferStub::OnDiscardBackbuffer() { 575 void GpuCommandBufferStub::OnDiscardBackbuffer() {
579 if (!surface_) 576 if (!surface_)
580 return; 577 return;
581 if (allocation_.suggest_have_frontbuffer) 578 surface_->SetBackbufferAllocation(false);
582 surface_->SetBufferAllocation(
583 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_ONLY);
584 else
585 surface_->SetBufferAllocation(
586 gfx::GLSurface::BUFFER_ALLOCATION_NONE);
587 } 579 }
588 580
589 void GpuCommandBufferStub::OnEnsureBackbuffer() { 581 void GpuCommandBufferStub::OnEnsureBackbuffer() {
590 if (!surface_) 582 if (!surface_)
591 return; 583 return;
592 // TODO(mmocny): Support backbuffer without frontbuffer. 584 surface_->SetBackbufferAllocation(true);
593 surface_->SetBufferAllocation(
594 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_AND_BACK);
595 } 585 }
596 586
597 void GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback( 587 void GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback(
598 bool has_callback) { 588 bool has_callback) {
599 client_has_memory_allocation_changed_callback_ = has_callback; 589 client_has_memory_allocation_changed_callback_ = has_callback;
600 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage(); 590 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage();
601 } 591 }
602 592
603 void GpuCommandBufferStub::SendConsoleMessage( 593 void GpuCommandBufferStub::SendConsoleMessage(
604 int32 id, 594 int32 id,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 bool GpuCommandBufferStub::has_surface_state() const { 626 bool GpuCommandBufferStub::has_surface_state() const {
637 return surface_state_ != NULL; 627 return surface_state_ != NULL;
638 } 628 }
639 629
640 const GpuCommandBufferStubBase::SurfaceState& 630 const GpuCommandBufferStubBase::SurfaceState&
641 GpuCommandBufferStub::surface_state() const { 631 GpuCommandBufferStub::surface_state() const {
642 DCHECK(has_surface_state()); 632 DCHECK(has_surface_state());
643 return *surface_state_.get(); 633 return *surface_state_.get();
644 } 634 }
645 635
646 void GpuCommandBufferStub::SendMemoryAllocationToProxy(
647 const GpuMemoryAllocation& allocation) {
648 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
649 }
650
651 void GpuCommandBufferStub::SetMemoryAllocation( 636 void GpuCommandBufferStub::SetMemoryAllocation(
652 const GpuMemoryAllocation& allocation) { 637 const GpuMemoryAllocation& allocation) {
653 allocation_ = allocation; 638 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
654 639 if (!surface_)
655 SendMemoryAllocationToProxy(allocation); 640 return;
641 surface_->SetFrontbufferAllocation(allocation.suggest_have_frontbuffer);
656 } 642 }
657 643
658 #endif // defined(ENABLE_GPU) 644 #endif // defined(ENABLE_GPU)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698