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

Side by Side Diff: gpu/command_buffer/service/in_process_command_buffer.cc

Issue 1149893010: gpu: play skp files through the command buffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: now with proper mac headers Created 5 years, 6 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
« no previous file with comments | « build/all.gyp ('k') | gpu/skia_runner/BUILD.gn » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "gpu/command_buffer/service/in_process_command_buffer.h" 5 #include "gpu/command_buffer/service/in_process_command_buffer.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 case gfx::SURFACE_TEXTURE_BUFFER: 214 case gfx::SURFACE_TEXTURE_BUFFER:
215 case gfx::OZONE_NATIVE_BUFFER: 215 case gfx::OZONE_NATIVE_BUFFER:
216 *requires_sync_point = true; 216 *requires_sync_point = true;
217 return source_handle; 217 return source_handle;
218 default: 218 default:
219 NOTREACHED(); 219 NOTREACHED();
220 return gfx::GpuMemoryBufferHandle(); 220 return gfx::GpuMemoryBufferHandle();
221 } 221 }
222 } 222 }
223 223
224 scoped_refptr<InProcessCommandBuffer::Service> GetInitialService(
225 const scoped_refptr<InProcessCommandBuffer::Service>& service) {
226 if (service)
227 return service;
228
229 // Call base::ThreadTaskRunnerHandle::IsSet() to ensure that it is
230 // instantiated before we create the GPU thread, otherwise shutdown order will
231 // delete the ThreadTaskRunnerHandle before the GPU thread's message loop,
232 // and when the message loop is shutdown, it will recreate
233 // ThreadTaskRunnerHandle, which will re-add a new task to the, AtExitManager,
234 // which causes a deadlock because it's already locked.
235 base::ThreadTaskRunnerHandle::IsSet();
236 return g_default_service.Get().gpu_thread;
237 }
238
224 } // anonyous namespace 239 } // anonyous namespace
225 240
226 InProcessCommandBuffer::Service::Service() {} 241 InProcessCommandBuffer::Service::Service() {}
227 242
228 InProcessCommandBuffer::Service::~Service() {} 243 InProcessCommandBuffer::Service::~Service() {}
229 244
230 scoped_refptr<gfx::GLShareGroup> 245 scoped_refptr<gfx::GLShareGroup>
231 InProcessCommandBuffer::Service::share_group() { 246 InProcessCommandBuffer::Service::share_group() {
232 if (!share_group_.get()) 247 if (!share_group_.get())
233 share_group_ = new gfx::GLShareGroup; 248 share_group_ = new gfx::GLShareGroup;
(...skipping 30 matching lines...) Expand all
264 } 279 }
265 280
266 InProcessCommandBuffer::InProcessCommandBuffer( 281 InProcessCommandBuffer::InProcessCommandBuffer(
267 const scoped_refptr<Service>& service) 282 const scoped_refptr<Service>& service)
268 : context_lost_(false), 283 : context_lost_(false),
269 idle_work_pending_(false), 284 idle_work_pending_(false),
270 image_factory_(nullptr), 285 image_factory_(nullptr),
271 last_put_offset_(-1), 286 last_put_offset_(-1),
272 gpu_memory_buffer_manager_(nullptr), 287 gpu_memory_buffer_manager_(nullptr),
273 flush_event_(false, false), 288 flush_event_(false, false),
274 service_(service.get() ? service : g_default_service.Get().gpu_thread), 289 service_(GetInitialService(service)),
275 gpu_thread_weak_ptr_factory_(this) { 290 gpu_thread_weak_ptr_factory_(this) {
276 DCHECK(service_.get()); 291 DCHECK(service_.get());
277 next_image_id_.GetNext(); 292 next_image_id_.GetNext();
278 } 293 }
279 294
280 InProcessCommandBuffer::~InProcessCommandBuffer() { 295 InProcessCommandBuffer::~InProcessCommandBuffer() {
281 Destroy(); 296 Destroy();
282 } 297 }
283 298
284 void InProcessCommandBuffer::OnResizeView(gfx::Size size, float scale_factor) { 299 void InProcessCommandBuffer::OnResizeView(gfx::Size size, float scale_factor) {
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 1002
988 #if defined(OS_ANDROID) 1003 #if defined(OS_ANDROID)
989 scoped_refptr<gfx::SurfaceTexture> 1004 scoped_refptr<gfx::SurfaceTexture>
990 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) { 1005 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) {
991 DCHECK(stream_texture_manager_); 1006 DCHECK(stream_texture_manager_);
992 return stream_texture_manager_->GetSurfaceTexture(stream_id); 1007 return stream_texture_manager_->GetSurfaceTexture(stream_id);
993 } 1008 }
994 #endif 1009 #endif
995 1010
996 } // namespace gpu 1011 } // namespace gpu
OLDNEW
« no previous file with comments | « build/all.gyp ('k') | gpu/skia_runner/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698