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 #include "content/renderer/gpu/command_buffer_proxy.h" | 5 #include "content/renderer/gpu/command_buffer_proxy.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "base/logging.h" | 8 #include "base/logging.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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 task->Run(); | 87 task->Run(); |
88 } | 88 } |
89 | 89 |
90 void CommandBufferProxy::SetChannelErrorCallback(Callback0::Type* callback) { | 90 void CommandBufferProxy::SetChannelErrorCallback(Callback0::Type* callback) { |
91 channel_error_callback_.reset(callback); | 91 channel_error_callback_.reset(callback); |
92 } | 92 } |
93 | 93 |
94 bool CommandBufferProxy::Initialize(int32 size) { | 94 bool CommandBufferProxy::Initialize(int32 size) { |
95 DCHECK(!ring_buffer_.get()); | 95 DCHECK(!ring_buffer_.get()); |
96 | 96 |
97 RenderThread* render_thread = RenderThread::current(); | 97 ChildThread* child_thread = ChildThread::current(); |
98 if (!render_thread) | 98 if (!child_thread) |
99 return false; | 99 return false; |
100 | 100 |
101 base::SharedMemoryHandle handle; | 101 base::SharedMemoryHandle handle; |
102 if (!render_thread->Send(new ViewHostMsg_AllocateSharedMemoryBuffer( | 102 if (!child_thread->Send(new ViewHostMsg_AllocateSharedMemoryBuffer( |
103 size, | 103 size, |
104 &handle))) { | 104 &handle))) { |
105 return false; | 105 return false; |
106 } | 106 } |
107 | 107 |
108 if (!base::SharedMemory::IsHandleValid(handle)) | 108 if (!base::SharedMemory::IsHandleValid(handle)) |
109 return false; | 109 return false; |
110 | 110 |
111 #if defined(OS_POSIX) | 111 #if defined(OS_POSIX) |
112 handle.auto_close = false; | 112 handle.auto_close = false; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 | 209 |
210 void CommandBufferProxy::SetGetOffset(int32 get_offset) { | 210 void CommandBufferProxy::SetGetOffset(int32 get_offset) { |
211 // Not implemented in proxy. | 211 // Not implemented in proxy. |
212 NOTREACHED(); | 212 NOTREACHED(); |
213 } | 213 } |
214 | 214 |
215 int32 CommandBufferProxy::CreateTransferBuffer(size_t size, int32 id_request) { | 215 int32 CommandBufferProxy::CreateTransferBuffer(size_t size, int32 id_request) { |
216 if (last_state_.error != gpu::error::kNoError) | 216 if (last_state_.error != gpu::error::kNoError) |
217 return -1; | 217 return -1; |
218 | 218 |
219 RenderThread* render_thread = RenderThread::current(); | 219 ChildThread* child_thread = ChildThread::current(); |
220 if (!render_thread) | 220 if (!child_thread) |
221 return -1; | 221 return -1; |
222 | 222 |
223 base::SharedMemoryHandle handle; | 223 base::SharedMemoryHandle handle; |
224 if (!render_thread->Send(new ViewHostMsg_AllocateSharedMemoryBuffer( | 224 if (!child_thread->Send(new ViewHostMsg_AllocateSharedMemoryBuffer( |
225 size, | 225 size, |
226 &handle))) { | 226 &handle))) { |
227 return -1; | 227 return -1; |
228 } | 228 } |
229 | 229 |
230 if (!base::SharedMemory::IsHandleValid(handle)) | 230 if (!base::SharedMemory::IsHandleValid(handle)) |
231 return -1; | 231 return -1; |
232 | 232 |
233 // Handle is closed by the SharedMemory object below. This stops | 233 // Handle is closed by the SharedMemory object below. This stops |
234 // base::FileDescriptor from closing it as well. | 234 // base::FileDescriptor from closing it as well. |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 delete msg; | 442 delete msg; |
443 return false; | 443 return false; |
444 } | 444 } |
445 | 445 |
446 void CommandBufferProxy::OnUpdateState(const gpu::CommandBuffer::State& state) { | 446 void CommandBufferProxy::OnUpdateState(const gpu::CommandBuffer::State& state) { |
447 // Handle wraparound. It works as long as we don't have more than 2B state | 447 // Handle wraparound. It works as long as we don't have more than 2B state |
448 // updates in flight across which reordering occurs. | 448 // updates in flight across which reordering occurs. |
449 if (state.generation - last_state_.generation < 0x80000000U) | 449 if (state.generation - last_state_.generation < 0x80000000U) |
450 last_state_ = state; | 450 last_state_ = state; |
451 } | 451 } |
OLD | NEW |