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

Side by Side Diff: content/common/gpu/client/context_provider_command_buffer.cc

Issue 780653007: Added GL_CHROMIUM_trace_marker feature as well as gpu_toplevel markers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed render host for android tracing Created 6 years 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/common/gpu/client/context_provider_command_buffer.h" 5 #include "content/common/gpu/client/context_provider_command_buffer.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 30 matching lines...) Expand all
41 const std::string& debug_name) { 41 const std::string& debug_name) {
42 if (!context3d) 42 if (!context3d)
43 return NULL; 43 return NULL;
44 44
45 return new ContextProviderCommandBuffer(context3d.Pass(), debug_name); 45 return new ContextProviderCommandBuffer(context3d.Pass(), debug_name);
46 } 46 }
47 47
48 ContextProviderCommandBuffer::ContextProviderCommandBuffer( 48 ContextProviderCommandBuffer::ContextProviderCommandBuffer(
49 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context3d, 49 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context3d,
50 const std::string& debug_name) 50 const std::string& debug_name)
51 : context3d_(context3d.Pass()), 51 : gpu_trace_top_level_category_(TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(
52 TRACE_DISABLED_BY_DEFAULT("gpu_toplevel"))),
53 context3d_(context3d.Pass()),
52 debug_name_(debug_name), 54 debug_name_(debug_name),
53 destroyed_(false) { 55 destroyed_(false) {
54 DCHECK(main_thread_checker_.CalledOnValidThread()); 56 DCHECK(main_thread_checker_.CalledOnValidThread());
55 DCHECK(context3d_); 57 DCHECK(context3d_);
56 context_thread_checker_.DetachFromThread(); 58 context_thread_checker_.DetachFromThread();
57 } 59 }
58 60
59 ContextProviderCommandBuffer::~ContextProviderCommandBuffer() { 61 ContextProviderCommandBuffer::~ContextProviderCommandBuffer() {
60 DCHECK(main_thread_checker_.CalledOnValidThread() || 62 DCHECK(main_thread_checker_.CalledOnValidThread() ||
61 context_thread_checker_.CalledOnValidThread()); 63 context_thread_checker_.CalledOnValidThread());
(...skipping 27 matching lines...) Expand all
89 DCHECK(context_thread_checker_.CalledOnValidThread()); 91 DCHECK(context_thread_checker_.CalledOnValidThread());
90 92
91 if (lost_context_callback_proxy_) 93 if (lost_context_callback_proxy_)
92 return true; 94 return true;
93 95
94 if (!context3d_->InitializeOnCurrentThread()) 96 if (!context3d_->InitializeOnCurrentThread())
95 return false; 97 return false;
96 98
97 InitializeCapabilities(); 99 InitializeCapabilities();
98 100
99 std::string unique_context_name = 101 if (*gpu_trace_top_level_category_) {
vmiura 2014/12/09 00:18:10 As in render_widget_host_view_android.cc, move the
100 base::StringPrintf("%s-%p", debug_name_.c_str(), context3d_.get()); 102 std::string unique_context_name =
101 context3d_->pushGroupMarkerEXT(unique_context_name.c_str()); 103 base::StringPrintf("%s-%p", debug_name_.c_str(), context3d_.get());
104 TRACE_GPU_EVENT_BEGIN0(context3d_,
105 TRACE_DISABLED_BY_DEFAULT("gpu_toplevel"),
106 unique_context_name.c_str());
107 }
102 108
103 lost_context_callback_proxy_.reset(new LostContextCallbackProxy(this)); 109 lost_context_callback_proxy_.reset(new LostContextCallbackProxy(this));
104 context3d_->GetCommandBufferProxy()->SetMemoryAllocationChangedCallback( 110 context3d_->GetCommandBufferProxy()->SetMemoryAllocationChangedCallback(
105 base::Bind(&ContextProviderCommandBuffer::OnMemoryAllocationChanged, 111 base::Bind(&ContextProviderCommandBuffer::OnMemoryAllocationChanged,
106 base::Unretained(this))); 112 base::Unretained(this)));
107 return true; 113 return true;
108 } 114 }
109 115
110 gpu::gles2::GLES2Interface* ContextProviderCommandBuffer::ContextGL() { 116 gpu::gles2::GLES2Interface* ContextProviderCommandBuffer::ContextGL() {
111 DCHECK(context3d_); 117 DCHECK(context3d_);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 size_t mapped_memory_limit = context3d_->GetMappedMemoryLimit(); 198 size_t mapped_memory_limit = context3d_->GetMappedMemoryLimit();
193 caps.max_transfer_buffer_usage_bytes = 199 caps.max_transfer_buffer_usage_bytes =
194 mapped_memory_limit == WebGraphicsContext3DCommandBufferImpl::kNoLimit 200 mapped_memory_limit == WebGraphicsContext3DCommandBufferImpl::kNoLimit
195 ? std::numeric_limits<size_t>::max() : mapped_memory_limit; 201 ? std::numeric_limits<size_t>::max() : mapped_memory_limit;
196 202
197 capabilities_ = caps; 203 capabilities_ = caps;
198 } 204 }
199 205
200 bool ContextProviderCommandBuffer::DestroyedOnMainThread() { 206 bool ContextProviderCommandBuffer::DestroyedOnMainThread() {
201 DCHECK(main_thread_checker_.CalledOnValidThread()); 207 DCHECK(main_thread_checker_.CalledOnValidThread());
208 if (*gpu_trace_top_level_category_) {
209 TRACE_GPU_EVENT_END0(context3d_);
210 }
202 211
203 base::AutoLock lock(main_thread_lock_); 212 base::AutoLock lock(main_thread_lock_);
204 return destroyed_; 213 return destroyed_;
205 } 214 }
206 215
207 void ContextProviderCommandBuffer::SetLostContextCallback( 216 void ContextProviderCommandBuffer::SetLostContextCallback(
208 const LostContextCallback& lost_context_callback) { 217 const LostContextCallback& lost_context_callback) {
209 DCHECK(context_thread_checker_.CalledOnValidThread()); 218 DCHECK(context_thread_checker_.CalledOnValidThread());
210 DCHECK(lost_context_callback_.is_null() || 219 DCHECK(lost_context_callback_.is_null() ||
211 lost_context_callback.is_null()); 220 lost_context_callback.is_null());
212 lost_context_callback_ = lost_context_callback; 221 lost_context_callback_ = lost_context_callback;
213 } 222 }
214 223
215 void ContextProviderCommandBuffer::SetMemoryPolicyChangedCallback( 224 void ContextProviderCommandBuffer::SetMemoryPolicyChangedCallback(
216 const MemoryPolicyChangedCallback& memory_policy_changed_callback) { 225 const MemoryPolicyChangedCallback& memory_policy_changed_callback) {
217 DCHECK(context_thread_checker_.CalledOnValidThread()); 226 DCHECK(context_thread_checker_.CalledOnValidThread());
218 DCHECK(memory_policy_changed_callback_.is_null() || 227 DCHECK(memory_policy_changed_callback_.is_null() ||
219 memory_policy_changed_callback.is_null()); 228 memory_policy_changed_callback.is_null());
220 memory_policy_changed_callback_ = memory_policy_changed_callback; 229 memory_policy_changed_callback_ = memory_policy_changed_callback;
221 } 230 }
222 231
223 } // namespace content 232 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698