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

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: fixing compile issue for content_unittests Created 8 years, 8 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 : channel_(channel), 47 : channel_(channel),
48 handle_(handle), 48 handle_(handle),
49 initial_size_(size), 49 initial_size_(size),
50 disallowed_features_(disallowed_features), 50 disallowed_features_(disallowed_features),
51 allowed_extensions_(allowed_extensions), 51 allowed_extensions_(allowed_extensions),
52 requested_attribs_(attribs), 52 requested_attribs_(attribs),
53 gpu_preference_(gpu_preference), 53 gpu_preference_(gpu_preference),
54 route_id_(route_id), 54 route_id_(route_id),
55 software_(software), 55 software_(software),
56 last_flush_count_(0), 56 last_flush_count_(0),
57 allocation_(GpuMemoryAllocation::INVALID_RESOURCE_SIZE, true, true),
58 parent_stub_for_initialization_(), 57 parent_stub_for_initialization_(),
59 parent_texture_for_initialization_(0), 58 parent_texture_for_initialization_(0),
60 watchdog_(watchdog) { 59 watchdog_(watchdog) {
61 if (share_group) { 60 if (share_group) {
62 context_group_ = share_group->context_group_; 61 context_group_ = share_group->context_group_;
63 } else { 62 } else {
64 context_group_ = new gpu::gles2::ContextGroup(true); 63 context_group_ = new gpu::gles2::ContextGroup(true);
65 } 64 }
66 if (surface_id != 0) 65 if (surface_id != 0)
67 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState( 66 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState(
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) { 568 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) {
570 DCHECK(surface_state_.get()); 569 DCHECK(surface_state_.get());
571 surface_state_->visible = visible; 570 surface_state_->visible = visible;
572 surface_state_->last_used_time = base::TimeTicks::Now(); 571 surface_state_->last_used_time = base::TimeTicks::Now();
573 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage(); 572 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage();
574 } 573 }
575 574
576 void GpuCommandBufferStub::OnDiscardBackbuffer() { 575 void GpuCommandBufferStub::OnDiscardBackbuffer() {
577 if (!surface_) 576 if (!surface_)
578 return; 577 return;
579 if (allocation_.suggest_have_frontbuffer) 578 surface_->SetBackbufferAllocation(false);
580 surface_->SetBufferAllocation(
581 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_ONLY);
582 else
583 surface_->SetBufferAllocation(
584 gfx::GLSurface::BUFFER_ALLOCATION_NONE);
585 } 579 }
586 580
587 void GpuCommandBufferStub::OnEnsureBackbuffer() { 581 void GpuCommandBufferStub::OnEnsureBackbuffer() {
588 if (!surface_) 582 if (!surface_)
589 return; 583 return;
590 // TODO(mmocny): Support backbuffer without frontbuffer. 584 surface_->SetBackbufferAllocation(true);
591 surface_->SetBufferAllocation(
592 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_AND_BACK);
593 } 585 }
594 586
595 void GpuCommandBufferStub::SendConsoleMessage( 587 void GpuCommandBufferStub::SendConsoleMessage(
596 int32 id, 588 int32 id,
597 const std::string& message) { 589 const std::string& message) {
598 GPUCommandBufferConsoleMessage console_message; 590 GPUCommandBufferConsoleMessage console_message;
599 console_message.id = id; 591 console_message.id = id;
600 console_message.message = message; 592 console_message.message = message;
601 IPC::Message* msg = new GpuCommandBufferMsg_ConsoleMsg( 593 IPC::Message* msg = new GpuCommandBufferMsg_ConsoleMsg(
602 route_id_, console_message); 594 route_id_, console_message);
(...skipping 20 matching lines...) Expand all
623 bool GpuCommandBufferStub::has_surface_state() const { 615 bool GpuCommandBufferStub::has_surface_state() const {
624 return surface_state_ != NULL; 616 return surface_state_ != NULL;
625 } 617 }
626 618
627 const GpuCommandBufferStubBase::SurfaceState& 619 const GpuCommandBufferStubBase::SurfaceState&
628 GpuCommandBufferStub::surface_state() const { 620 GpuCommandBufferStub::surface_state() const {
629 DCHECK(has_surface_state()); 621 DCHECK(has_surface_state());
630 return *surface_state_.get(); 622 return *surface_state_.get();
631 } 623 }
632 624
633 void GpuCommandBufferStub::SendMemoryAllocationToProxy(
634 const GpuMemoryAllocation& allocation) {
635 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
636 }
637
638 void GpuCommandBufferStub::SetMemoryAllocation( 625 void GpuCommandBufferStub::SetMemoryAllocation(
639 const GpuMemoryAllocation& allocation) { 626 const GpuMemoryAllocation& allocation) {
640 allocation_ = allocation; 627 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
641 628 if (!surface_)
642 SendMemoryAllocationToProxy(allocation); 629 return;
630 surface_->SetFrontbufferAllocation(allocation.suggest_have_frontbuffer);
643 } 631 }
644 632
645 #endif // defined(ENABLE_GPU) 633 #endif // defined(ENABLE_GPU)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698