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 10083056: GpuMemoryManager suggests values for renderer Contents Texture Managers' preferred memory limit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: On max 10.5, it fails to init command buffer, and my callback code didn't guard against that. 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 : channel_(channel), 51 : channel_(channel),
52 handle_(handle), 52 handle_(handle),
53 initial_size_(size), 53 initial_size_(size),
54 disallowed_features_(disallowed_features), 54 disallowed_features_(disallowed_features),
55 allowed_extensions_(allowed_extensions), 55 allowed_extensions_(allowed_extensions),
56 requested_attribs_(attribs), 56 requested_attribs_(attribs),
57 gpu_preference_(gpu_preference), 57 gpu_preference_(gpu_preference),
58 route_id_(route_id), 58 route_id_(route_id),
59 software_(software), 59 software_(software),
60 last_flush_count_(0), 60 last_flush_count_(0),
61 allocation_(GpuMemoryAllocation::INVALID_RESOURCE_SIZE, true, true), 61 allocation_(GpuMemoryAllocation::INVALID_RESOURCE_SIZE,
62 GpuMemoryAllocation::kHasFrontbuffer |
63 GpuMemoryAllocation::kHasBackbuffer),
62 parent_stub_for_initialization_(), 64 parent_stub_for_initialization_(),
63 parent_texture_for_initialization_(0), 65 parent_texture_for_initialization_(0),
64 watchdog_(watchdog) { 66 watchdog_(watchdog) {
65 if (share_group) { 67 if (share_group) {
66 context_group_ = share_group->context_group_; 68 context_group_ = share_group->context_group_;
67 } else { 69 } else {
68 context_group_ = new gpu::gles2::ContextGroup(true); 70 context_group_ = new gpu::gles2::ContextGroup(true);
69 } 71 }
70 if (surface_id != 0) 72 if (surface_id != 0)
71 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState( 73 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState(
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_CreateVideoDecoder, 125 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_CreateVideoDecoder,
124 OnCreateVideoDecoder) 126 OnCreateVideoDecoder)
125 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyVideoDecoder, 127 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyVideoDecoder,
126 OnDestroyVideoDecoder) 128 OnDestroyVideoDecoder)
127 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetSurfaceVisible, 129 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetSurfaceVisible,
128 OnSetSurfaceVisible) 130 OnSetSurfaceVisible)
129 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DiscardBackbuffer, 131 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DiscardBackbuffer,
130 OnDiscardBackbuffer) 132 OnDiscardBackbuffer)
131 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_EnsureBackbuffer, 133 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_EnsureBackbuffer,
132 OnEnsureBackbuffer) 134 OnEnsureBackbuffer)
135 IPC_MESSAGE_HANDLER(
136 GpuCommandBufferMsg_SetClientHasMemoryAllocationChangedCallback,
137 OnSetClientHasMemoryAllocationChangedCallback)
133 IPC_MESSAGE_UNHANDLED(handled = false) 138 IPC_MESSAGE_UNHANDLED(handled = false)
134 IPC_END_MESSAGE_MAP() 139 IPC_END_MESSAGE_MAP()
135 140
136 DCHECK(handled); 141 DCHECK(handled);
137 return handled; 142 return handled;
138 } 143 }
139 144
140 bool GpuCommandBufferStub::Send(IPC::Message* message) { 145 bool GpuCommandBufferStub::Send(IPC::Message* message) {
141 return channel_->Send(message); 146 return channel_->Send(message);
142 } 147 }
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 } 586 }
582 587
583 void GpuCommandBufferStub::OnEnsureBackbuffer() { 588 void GpuCommandBufferStub::OnEnsureBackbuffer() {
584 if (!surface_) 589 if (!surface_)
585 return; 590 return;
586 // TODO(mmocny): Support backbuffer without frontbuffer. 591 // TODO(mmocny): Support backbuffer without frontbuffer.
587 surface_->SetBufferAllocation( 592 surface_->SetBufferAllocation(
588 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_AND_BACK); 593 gfx::GLSurface::BUFFER_ALLOCATION_FRONT_AND_BACK);
589 } 594 }
590 595
596 void GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback(
597 bool has_callback) {
598 client_has_memory_allocation_changed_callback_ = has_callback;
599 channel_->gpu_channel_manager()->gpu_memory_manager()->ScheduleManage();
600 }
601
591 void GpuCommandBufferStub::SendConsoleMessage( 602 void GpuCommandBufferStub::SendConsoleMessage(
592 int32 id, 603 int32 id,
593 const std::string& message) { 604 const std::string& message) {
594 GPUCommandBufferConsoleMessage console_message; 605 GPUCommandBufferConsoleMessage console_message;
595 console_message.id = id; 606 console_message.id = id;
596 console_message.message = message; 607 console_message.message = message;
597 IPC::Message* msg = new GpuCommandBufferMsg_ConsoleMsg( 608 IPC::Message* msg = new GpuCommandBufferMsg_ConsoleMsg(
598 route_id_, console_message); 609 route_id_, console_message);
599 msg->set_unblock(true); 610 msg->set_unblock(true);
600 Send(msg); 611 Send(msg);
601 } 612 }
602 613
603 void GpuCommandBufferStub::AddDestructionObserver( 614 void GpuCommandBufferStub::AddDestructionObserver(
604 DestructionObserver* observer) { 615 DestructionObserver* observer) {
605 destruction_observers_.AddObserver(observer); 616 destruction_observers_.AddObserver(observer);
606 } 617 }
607 618
608 void GpuCommandBufferStub::RemoveDestructionObserver( 619 void GpuCommandBufferStub::RemoveDestructionObserver(
609 DestructionObserver* observer) { 620 DestructionObserver* observer) {
610 destruction_observers_.RemoveObserver(observer); 621 destruction_observers_.RemoveObserver(observer);
611 } 622 }
612 623
613 bool GpuCommandBufferStub::IsInSameContextShareGroup( 624 bool GpuCommandBufferStub::IsInSameContextShareGroup(
614 const GpuCommandBufferStubBase& other) const { 625 const GpuCommandBufferStubBase& other) const {
615 return context_group_ == 626 return context_group_ ==
616 static_cast<const GpuCommandBufferStub&>(other).context_group_; 627 static_cast<const GpuCommandBufferStub&>(other).context_group_;
617 } 628 }
618 629
630 bool GpuCommandBufferStub::
631 client_has_memory_allocation_changed_callback() const {
632 return client_has_memory_allocation_changed_callback_;
633 }
634
619 bool GpuCommandBufferStub::has_surface_state() const { 635 bool GpuCommandBufferStub::has_surface_state() const {
620 return surface_state_ != NULL; 636 return surface_state_ != NULL;
621 } 637 }
622 638
623 const GpuCommandBufferStubBase::SurfaceState& 639 const GpuCommandBufferStubBase::SurfaceState&
624 GpuCommandBufferStub::surface_state() const { 640 GpuCommandBufferStub::surface_state() const {
625 DCHECK(has_surface_state()); 641 DCHECK(has_surface_state());
626 return *surface_state_.get(); 642 return *surface_state_.get();
627 } 643 }
628 644
629 void GpuCommandBufferStub::SendMemoryAllocationToProxy( 645 void GpuCommandBufferStub::SendMemoryAllocationToProxy(
630 const GpuMemoryAllocation& allocation) { 646 const GpuMemoryAllocation& allocation) {
631 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation)); 647 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
632 } 648 }
633 649
634 void GpuCommandBufferStub::SetMemoryAllocation( 650 void GpuCommandBufferStub::SetMemoryAllocation(
635 const GpuMemoryAllocation& allocation) { 651 const GpuMemoryAllocation& allocation) {
636 allocation_ = allocation; 652 allocation_ = allocation;
637 653
638 SendMemoryAllocationToProxy(allocation); 654 SendMemoryAllocationToProxy(allocation);
639 } 655 }
640 656
641 #endif // defined(ENABLE_GPU) 657 #endif // defined(ENABLE_GPU)
OLDNEW
« no previous file with comments | « content/common/gpu/gpu_command_buffer_stub.h ('k') | content/common/gpu/gpu_memory_allocation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698