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

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

Issue 634313002: Add mouse input forwarding to gpu service (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test race 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 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
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/bind_helpers.h" 12 #include "base/bind_helpers.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/lazy_instance.h" 14 #include "base/lazy_instance.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "base/message_loop/message_loop_proxy.h" 17 #include "base/message_loop/message_loop_proxy.h"
18 #include "base/sequence_checker.h" 18 #include "base/sequence_checker.h"
19 #include "base/synchronization/condition_variable.h" 19 #include "base/synchronization/condition_variable.h"
20 #include "base/threading/thread.h" 20 #include "base/threading/thread.h"
21 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" 21 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
22 #include "gpu/command_buffer/common/value_state.h"
22 #include "gpu/command_buffer/service/command_buffer_service.h" 23 #include "gpu/command_buffer/service/command_buffer_service.h"
23 #include "gpu/command_buffer/service/context_group.h" 24 #include "gpu/command_buffer/service/context_group.h"
24 #include "gpu/command_buffer/service/gl_context_virtual.h" 25 #include "gpu/command_buffer/service/gl_context_virtual.h"
25 #include "gpu/command_buffer/service/gpu_scheduler.h" 26 #include "gpu/command_buffer/service/gpu_scheduler.h"
26 #include "gpu/command_buffer/service/gpu_switches.h" 27 #include "gpu/command_buffer/service/gpu_switches.h"
27 #include "gpu/command_buffer/service/image_factory.h" 28 #include "gpu/command_buffer/service/image_factory.h"
28 #include "gpu/command_buffer/service/image_manager.h" 29 #include "gpu/command_buffer/service/image_manager.h"
29 #include "gpu/command_buffer/service/mailbox_manager_impl.h" 30 #include "gpu/command_buffer/service/mailbox_manager_impl.h"
30 #include "gpu/command_buffer/service/mailbox_manager_sync.h" 31 #include "gpu/command_buffer/service/mailbox_manager_sync.h"
31 #include "gpu/command_buffer/service/memory_tracking.h" 32 #include "gpu/command_buffer/service/memory_tracking.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 191 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
191 switches::kEnableThreadedTextureMailboxes)) { 192 switches::kEnableThreadedTextureMailboxes)) {
192 mailbox_manager_ = new gles2::MailboxManagerSync(); 193 mailbox_manager_ = new gles2::MailboxManagerSync();
193 } else { 194 } else {
194 mailbox_manager_ = new gles2::MailboxManagerImpl(); 195 mailbox_manager_ = new gles2::MailboxManagerImpl();
195 } 196 }
196 } 197 }
197 return mailbox_manager_; 198 return mailbox_manager_;
198 } 199 }
199 200
201 scoped_refptr<gpu::ValueStateMap>
202 InProcessCommandBuffer::Service::pending_valuebuffer_state() {
203 if (!pending_valuebuffer_state_.get()) {
204 pending_valuebuffer_state_ = new gpu::ValueStateMap();
205 }
206 return pending_valuebuffer_state_;
207 }
208
200 InProcessCommandBuffer::InProcessCommandBuffer( 209 InProcessCommandBuffer::InProcessCommandBuffer(
201 const scoped_refptr<Service>& service) 210 const scoped_refptr<Service>& service)
202 : context_lost_(false), 211 : context_lost_(false),
203 idle_work_pending_(false), 212 idle_work_pending_(false),
204 image_factory_(nullptr), 213 image_factory_(nullptr),
205 last_put_offset_(-1), 214 last_put_offset_(-1),
206 gpu_memory_buffer_manager_(nullptr), 215 gpu_memory_buffer_manager_(nullptr),
207 flush_event_(false, false), 216 flush_event_(false, false),
208 service_(service.get() ? service : g_default_service.Get().gpu_thread), 217 service_(service.get() ? service : g_default_service.Get().gpu_thread),
209 gpu_thread_weak_ptr_factory_(this) { 218 gpu_thread_weak_ptr_factory_(this) {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 #endif 344 #endif
336 345
337 bool bind_generates_resource = false; 346 bool bind_generates_resource = false;
338 decoder_.reset(gles2::GLES2Decoder::Create( 347 decoder_.reset(gles2::GLES2Decoder::Create(
339 params.context_group 348 params.context_group
340 ? params.context_group->decoder_->GetContextGroup() 349 ? params.context_group->decoder_->GetContextGroup()
341 : new gles2::ContextGroup(service_->mailbox_manager(), 350 : new gles2::ContextGroup(service_->mailbox_manager(),
342 NULL, 351 NULL,
343 service_->shader_translator_cache(), 352 service_->shader_translator_cache(),
344 NULL, 353 NULL,
354 service_->pending_valuebuffer_state(),
345 bind_generates_resource))); 355 bind_generates_resource)));
346 356
347 gpu_scheduler_.reset( 357 gpu_scheduler_.reset(
348 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); 358 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get()));
349 command_buffer->SetGetBufferChangeCallback(base::Bind( 359 command_buffer->SetGetBufferChangeCallback(base::Bind(
350 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); 360 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get())));
351 command_buffer_ = command_buffer.Pass(); 361 command_buffer_ = command_buffer.Pass();
352 362
353 decoder_->set_engine(gpu_scheduler_.get()); 363 decoder_->set_engine(gpu_scheduler_.get());
354 364
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 868
859 #if defined(OS_ANDROID) 869 #if defined(OS_ANDROID)
860 scoped_refptr<gfx::SurfaceTexture> 870 scoped_refptr<gfx::SurfaceTexture>
861 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) { 871 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) {
862 DCHECK(stream_texture_manager_); 872 DCHECK(stream_texture_manager_);
863 return stream_texture_manager_->GetSurfaceTexture(stream_id); 873 return stream_texture_manager_->GetSurfaceTexture(stream_id);
864 } 874 }
865 #endif 875 #endif
866 876
867 } // namespace gpu 877 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/in_process_command_buffer.h ('k') | gpu/command_buffer/service/valuebuffer_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698