OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "base/process_util.h" | 9 #include "base/process_util.h" |
10 #include "base/shared_memory.h" | 10 #include "base/shared_memory.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #if defined(OS_WIN) | 22 #if defined(OS_WIN) |
23 #include "base/win/wrapped_window_proc.h" | 23 #include "base/win/wrapped_window_proc.h" |
24 #elif defined(TOUCH_UI) | 24 #elif defined(TOUCH_UI) |
25 #include "content/common/gpu/image_transport_surface_linux.h" | 25 #include "content/common/gpu/image_transport_surface_linux.h" |
26 #endif | 26 #endif |
27 | 27 |
28 using gpu::Buffer; | 28 using gpu::Buffer; |
29 | 29 |
30 GpuCommandBufferStub::GpuCommandBufferStub( | 30 GpuCommandBufferStub::GpuCommandBufferStub( |
31 GpuChannel* channel, | 31 GpuChannel* channel, |
| 32 GpuCommandBufferStub* share_group, |
32 gfx::PluginWindowHandle handle, | 33 gfx::PluginWindowHandle handle, |
33 const gfx::Size& size, | 34 const gfx::Size& size, |
34 const gpu::gles2::DisallowedExtensions& disallowed_extensions, | 35 const gpu::gles2::DisallowedExtensions& disallowed_extensions, |
35 const std::string& allowed_extensions, | 36 const std::string& allowed_extensions, |
36 const std::vector<int32>& attribs, | 37 const std::vector<int32>& attribs, |
37 int32 route_id, | 38 int32 route_id, |
38 int32 renderer_id, | 39 int32 renderer_id, |
39 int32 render_view_id, | 40 int32 render_view_id, |
40 GpuWatchdog* watchdog, | 41 GpuWatchdog* watchdog, |
41 bool software) | 42 bool software) |
42 : channel_(channel), | 43 : channel_(channel), |
43 handle_(handle), | 44 handle_(handle), |
44 initial_size_(size), | 45 initial_size_(size), |
45 disallowed_extensions_(disallowed_extensions), | 46 disallowed_extensions_(disallowed_extensions), |
46 allowed_extensions_(allowed_extensions), | 47 allowed_extensions_(allowed_extensions), |
47 requested_attribs_(attribs), | 48 requested_attribs_(attribs), |
48 route_id_(route_id), | 49 route_id_(route_id), |
49 software_(software), | 50 software_(software), |
50 last_flush_count_(0), | 51 last_flush_count_(0), |
51 renderer_id_(renderer_id), | 52 renderer_id_(renderer_id), |
52 render_view_id_(render_view_id), | 53 render_view_id_(render_view_id), |
53 parent_stub_for_initialization_(), | 54 parent_stub_for_initialization_(), |
54 parent_texture_for_initialization_(0), | 55 parent_texture_for_initialization_(0), |
55 watchdog_(watchdog), | 56 watchdog_(watchdog), |
56 task_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 57 task_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| 58 if (share_group) |
| 59 context_group_ = share_group->context_group_; |
| 60 else |
| 61 context_group_ = new gpu::gles2::ContextGroup; |
57 } | 62 } |
58 | 63 |
59 GpuCommandBufferStub::~GpuCommandBufferStub() { | 64 GpuCommandBufferStub::~GpuCommandBufferStub() { |
60 if (scheduler_.get()) { | 65 if (scheduler_.get()) { |
61 scheduler_->Destroy(); | 66 scheduler_->Destroy(); |
62 } | 67 } |
63 | 68 |
64 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager(); | 69 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager(); |
65 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer( | 70 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer( |
66 handle_, renderer_id_, render_view_id_)); | 71 handle_, renderer_id_, render_view_id_)); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 #else | 145 #else |
141 // POSIX receives a dup of the shared memory handle and closes the dup when | 146 // POSIX receives a dup of the shared memory handle and closes the dup when |
142 // this variable goes out of scope. | 147 // this variable goes out of scope. |
143 base::SharedMemory shared_memory(ring_buffer, false); | 148 base::SharedMemory shared_memory(ring_buffer, false); |
144 #endif | 149 #endif |
145 | 150 |
146 // Initialize the CommandBufferService and GpuScheduler. | 151 // Initialize the CommandBufferService and GpuScheduler. |
147 if (command_buffer_->Initialize(&shared_memory, size)) { | 152 if (command_buffer_->Initialize(&shared_memory, size)) { |
148 scheduler_.reset(gpu::GpuScheduler::Create(command_buffer_.get(), | 153 scheduler_.reset(gpu::GpuScheduler::Create(command_buffer_.get(), |
149 channel_, | 154 channel_, |
150 NULL)); | 155 context_group_.get())); |
151 #if defined(TOUCH_UI) | 156 #if defined(TOUCH_UI) |
152 if (software_) { | 157 if (software_) { |
153 OnInitializeFailed(reply_message); | 158 OnInitializeFailed(reply_message); |
154 return; | 159 return; |
155 } | 160 } |
156 | 161 |
157 scoped_refptr<gfx::GLSurface> surface; | 162 scoped_refptr<gfx::GLSurface> surface; |
158 if (handle_) | 163 if (handle_) |
159 surface = ImageTransportSurface::CreateSurface(this); | 164 surface = ImageTransportSurface::CreateSurface(this); |
160 else | 165 else |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 new GpuVideoDecodeAccelerator(this, route_id_, this)); | 558 new GpuVideoDecodeAccelerator(this, route_id_, this)); |
554 video_decoder_->Initialize(configs, reply_message); | 559 video_decoder_->Initialize(configs, reply_message); |
555 } | 560 } |
556 | 561 |
557 void GpuCommandBufferStub::OnDestroyVideoDecoder() { | 562 void GpuCommandBufferStub::OnDestroyVideoDecoder() { |
558 LOG(ERROR) << "GpuCommandBufferStub::OnDestroyVideoDecoder"; | 563 LOG(ERROR) << "GpuCommandBufferStub::OnDestroyVideoDecoder"; |
559 video_decoder_.reset(); | 564 video_decoder_.reset(); |
560 } | 565 } |
561 | 566 |
562 #endif // defined(ENABLE_GPU) | 567 #endif // defined(ENABLE_GPU) |
OLD | NEW |