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

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

Issue 11187010: Rename SurfaceState to MemoryManagerState (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix trybot warnings Created 8 years, 2 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
« no previous file with comments | « content/common/gpu/gpu_command_buffer_stub.h ('k') | content/common/gpu/gpu_memory_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 80 }
81 81
82 // The first time polling a fence, delay some extra time to allow other 82 // The first time polling a fence, delay some extra time to allow other
83 // stubs to process some work, or else the timing of the fences could 83 // stubs to process some work, or else the timing of the fences could
84 // allow a pattern of alternating fast and slow frames to occur. 84 // allow a pattern of alternating fast and slow frames to occur.
85 const int64 kHandleMoreWorkPeriodMs = 2; 85 const int64 kHandleMoreWorkPeriodMs = 2;
86 const int64 kHandleMoreWorkPeriodBusyMs = 1; 86 const int64 kHandleMoreWorkPeriodBusyMs = 1;
87 87
88 } // namespace 88 } // namespace
89 89
90 GpuCommandBufferStub::SurfaceState::SurfaceState(int32 surface_id, 90 GpuCommandBufferStub::MemoryManagerState::MemoryManagerState(
91 bool visible, 91 bool has_surface,
92 base::TimeTicks last_used_time) 92 bool visible,
93 : surface_id(surface_id), 93 base::TimeTicks last_used_time)
94 : has_surface(has_surface),
94 visible(visible), 95 visible(visible),
96 client_has_memory_allocation_changed_callback(false),
95 last_used_time(last_used_time) { 97 last_used_time(last_used_time) {
96 } 98 }
97 99
98 GpuCommandBufferStub::GpuCommandBufferStub( 100 GpuCommandBufferStub::GpuCommandBufferStub(
99 GpuChannel* channel, 101 GpuChannel* channel,
100 GpuCommandBufferStub* share_group, 102 GpuCommandBufferStub* share_group,
101 const gfx::GLSurfaceHandle& handle, 103 const gfx::GLSurfaceHandle& handle,
102 gpu::gles2::MailboxManager* mailbox_manager, 104 gpu::gles2::MailboxManager* mailbox_manager,
103 const gfx::Size& size, 105 const gfx::Size& size,
104 const gpu::gles2::DisallowedFeatures& disallowed_features, 106 const gpu::gles2::DisallowedFeatures& disallowed_features,
105 const std::string& allowed_extensions, 107 const std::string& allowed_extensions,
106 const std::vector<int32>& attribs, 108 const std::vector<int32>& attribs,
107 gfx::GpuPreference gpu_preference, 109 gfx::GpuPreference gpu_preference,
108 int32 route_id, 110 int32 route_id,
109 int32 surface_id, 111 int32 surface_id,
110 GpuWatchdog* watchdog, 112 GpuWatchdog* watchdog,
111 bool software, 113 bool software,
112 const GURL& active_url) 114 const GURL& active_url)
113 : channel_(channel), 115 : channel_(channel),
114 handle_(handle), 116 handle_(handle),
115 initial_size_(size), 117 initial_size_(size),
116 disallowed_features_(disallowed_features), 118 disallowed_features_(disallowed_features),
117 allowed_extensions_(allowed_extensions), 119 allowed_extensions_(allowed_extensions),
118 requested_attribs_(attribs), 120 requested_attribs_(attribs),
119 gpu_preference_(gpu_preference), 121 gpu_preference_(gpu_preference),
120 route_id_(route_id), 122 route_id_(route_id),
123 surface_id_(surface_id),
121 software_(software), 124 software_(software),
122 client_has_memory_allocation_changed_callback_(false),
123 last_flush_count_(0), 125 last_flush_count_(0),
124 parent_stub_for_initialization_(), 126 parent_stub_for_initialization_(),
125 parent_texture_for_initialization_(0), 127 parent_texture_for_initialization_(0),
126 watchdog_(watchdog), 128 watchdog_(watchdog),
127 sync_point_wait_count_(0), 129 sync_point_wait_count_(0),
128 delayed_work_scheduled_(false), 130 delayed_work_scheduled_(false),
129 active_url_(active_url) { 131 active_url_(active_url) {
130 active_url_hash_ = base::Hash(active_url.possibly_invalid_spec()); 132 active_url_hash_ = base::Hash(active_url.possibly_invalid_spec());
131 FastSetActiveURL(active_url_, active_url_hash_); 133 FastSetActiveURL(active_url_, active_url_hash_);
132 if (share_group) { 134 if (share_group) {
133 context_group_ = share_group->context_group_; 135 context_group_ = share_group->context_group_;
134 } else { 136 } else {
135 context_group_ = new gpu::gles2::ContextGroup( 137 context_group_ = new gpu::gles2::ContextGroup(
136 mailbox_manager, 138 mailbox_manager,
137 new GpuCommandBufferMemoryTracker(channel), 139 new GpuCommandBufferMemoryTracker(channel),
138 true); 140 true);
139 } 141 }
140 if (surface_id != 0) 142 memory_manager_state_.reset(new GpuCommandBufferStubBase::MemoryManagerState(
141 surface_state_.reset(new GpuCommandBufferStubBase::SurfaceState( 143 surface_id != 0, true, base::TimeTicks::Now()));
142 surface_id, true, base::TimeTicks::Now()));
143 if (handle_.sync_point) 144 if (handle_.sync_point)
144 OnWaitSyncPoint(handle_.sync_point); 145 OnWaitSyncPoint(handle_.sync_point);
145 } 146 }
146 147
147 GpuCommandBufferStub::~GpuCommandBufferStub() { 148 GpuCommandBufferStub::~GpuCommandBufferStub() {
148 Destroy(); 149 Destroy();
149 150
150 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager(); 151 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager();
151 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer(surface_id())); 152 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer(surface_id()));
152 } 153 }
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 } 696 }
696 697
697 void GpuCommandBufferStub::OnDestroyVideoDecoder(int decoder_route_id) { 698 void GpuCommandBufferStub::OnDestroyVideoDecoder(int decoder_route_id) {
698 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDestroyVideoDecoder"); 699 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDestroyVideoDecoder");
699 channel_->RemoveRoute(decoder_route_id); 700 channel_->RemoveRoute(decoder_route_id);
700 video_decoders_.Remove(decoder_route_id); 701 video_decoders_.Remove(decoder_route_id);
701 } 702 }
702 703
703 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) { 704 void GpuCommandBufferStub::OnSetSurfaceVisible(bool visible) {
704 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetSurfaceVisible"); 705 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetSurfaceVisible");
705 DCHECK(surface_state_.get()); 706 memory_manager_state_->visible = visible;
706 surface_state_->visible = visible; 707 memory_manager_state_->last_used_time = base::TimeTicks::Now();
707 surface_state_->last_used_time = base::TimeTicks::Now(); 708 channel_->gpu_channel_manager()->gpu_memory_manager()->
708 channel_->gpu_channel_manager()->gpu_memory_manager()-> 709 ScheduleManage(visible);
709 ScheduleManage(visible);
710 } 710 }
711 711
712 void GpuCommandBufferStub::OnDiscardBackbuffer() { 712 void GpuCommandBufferStub::OnDiscardBackbuffer() {
713 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDiscardBackbuffer"); 713 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDiscardBackbuffer");
714 if (!surface_) 714 if (!surface_)
715 return; 715 return;
716 surface_->SetBackbufferAllocation(false); 716 surface_->SetBackbufferAllocation(false);
717 } 717 }
718 718
719 void GpuCommandBufferStub::OnEnsureBackbuffer() { 719 void GpuCommandBufferStub::OnEnsureBackbuffer() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 767
768 void GpuCommandBufferStub::OnSignalSyncPointAck(uint32 id) { 768 void GpuCommandBufferStub::OnSignalSyncPointAck(uint32 id) {
769 Send(new GpuCommandBufferMsg_SignalSyncPointAck(route_id_, id)); 769 Send(new GpuCommandBufferMsg_SignalSyncPointAck(route_id_, id));
770 } 770 }
771 771
772 void GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback( 772 void GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback(
773 bool has_callback) { 773 bool has_callback) {
774 TRACE_EVENT0( 774 TRACE_EVENT0(
775 "gpu", 775 "gpu",
776 "GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback"); 776 "GpuCommandBufferStub::OnSetClientHasMemoryAllocationChangedCallback");
777 client_has_memory_allocation_changed_callback_ = has_callback; 777 memory_manager_state_->client_has_memory_allocation_changed_callback =
778 has_callback;
778 channel_->gpu_channel_manager()->gpu_memory_manager()-> 779 channel_->gpu_channel_manager()->gpu_memory_manager()->
779 ScheduleManage(false); 780 ScheduleManage(false);
780 } 781 }
781 782
782 void GpuCommandBufferStub::SendConsoleMessage( 783 void GpuCommandBufferStub::SendConsoleMessage(
783 int32 id, 784 int32 id,
784 const std::string& message) { 785 const std::string& message) {
785 GPUCommandBufferConsoleMessage console_message; 786 GPUCommandBufferConsoleMessage console_message;
786 console_message.id = id; 787 console_message.id = id;
787 console_message.message = message; 788 console_message.message = message;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 return gfx::Size(); 820 return gfx::Size();
820 return surface_->GetSize(); 821 return surface_->GetSize();
821 } 822 }
822 823
823 bool GpuCommandBufferStub::IsInSameContextShareGroup( 824 bool GpuCommandBufferStub::IsInSameContextShareGroup(
824 const GpuCommandBufferStubBase& other) const { 825 const GpuCommandBufferStubBase& other) const {
825 return context_group_ == 826 return context_group_ ==
826 static_cast<const GpuCommandBufferStub&>(other).context_group_; 827 static_cast<const GpuCommandBufferStub&>(other).context_group_;
827 } 828 }
828 829
829 bool GpuCommandBufferStub:: 830
830 client_has_memory_allocation_changed_callback() const { 831 const GpuCommandBufferStubBase::MemoryManagerState&
831 return client_has_memory_allocation_changed_callback_; 832 GpuCommandBufferStub::memory_manager_state() const {
833 return *memory_manager_state_.get();
832 } 834 }
833
834 bool GpuCommandBufferStub::has_surface_state() const {
835 return surface_state_ != NULL;
836 }
837
838 const GpuCommandBufferStubBase::SurfaceState&
839 GpuCommandBufferStub::surface_state() const {
840 DCHECK(has_surface_state());
841 return *surface_state_.get();
842 }
843
844 void GpuCommandBufferStub::SetMemoryAllocation( 835 void GpuCommandBufferStub::SetMemoryAllocation(
845 const GpuMemoryAllocation& allocation) { 836 const GpuMemoryAllocation& allocation) {
846 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation)); 837 Send(new GpuCommandBufferMsg_SetMemoryAllocation(route_id_, allocation));
847 // This can be called outside of OnMessageReceived, so the context needs to be 838 // This can be called outside of OnMessageReceived, so the context needs to be
848 // made current before calling methods on the surface. 839 // made current before calling methods on the surface.
849 if (!surface_ || !MakeCurrent()) 840 if (!surface_ || !MakeCurrent())
850 return; 841 return;
851 surface_->SetFrontbufferAllocation(allocation.suggest_have_frontbuffer); 842 surface_->SetFrontbufferAllocation(allocation.suggest_have_frontbuffer);
852 } 843 }
853 844
854 #endif // defined(ENABLE_GPU) 845 #endif // defined(ENABLE_GPU)
OLDNEW
« no previous file with comments | « content/common/gpu/gpu_command_buffer_stub.h ('k') | content/common/gpu/gpu_memory_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698