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 "gpu/command_buffer/client/mapped_memory.h" | 5 #include "gpu/command_buffer/client/mapped_memory.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 29 matching lines...) Expand all Loading... |
40 MemoryChunk::~MemoryChunk() {} | 40 MemoryChunk::~MemoryChunk() {} |
41 | 41 |
42 MappedMemoryManager::MappedMemoryManager(CommandBufferHelper* helper, | 42 MappedMemoryManager::MappedMemoryManager(CommandBufferHelper* helper, |
43 size_t unused_memory_reclaim_limit) | 43 size_t unused_memory_reclaim_limit) |
44 : chunk_size_multiple_(FencedAllocator::kAllocAlignment), | 44 : chunk_size_multiple_(FencedAllocator::kAllocAlignment), |
45 helper_(helper), | 45 helper_(helper), |
46 allocated_memory_(0), | 46 allocated_memory_(0), |
47 max_free_bytes_(unused_memory_reclaim_limit), | 47 max_free_bytes_(unused_memory_reclaim_limit), |
48 max_allocated_bytes_(SharedMemoryLimits::kNoLimit), | 48 max_allocated_bytes_(SharedMemoryLimits::kNoLimit), |
49 tracing_id_(g_next_mapped_memory_manager_tracing_id.GetNext()) { | 49 tracing_id_(g_next_mapped_memory_manager_tracing_id.GetNext()) { |
50 // In certain cases, ThreadTaskRunnerHandle isn't set (Android Webview). | |
51 // Don't register a dump provider in these cases. | |
52 // TODO(ericrk): Get this working in Android Webview. crbug.com/517156 | |
53 if (base::ThreadTaskRunnerHandle::IsSet()) { | |
54 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( | |
55 this, "gpu::MappedMemoryManager", base::ThreadTaskRunnerHandle::Get()); | |
56 } | |
57 } | 50 } |
58 | 51 |
59 MappedMemoryManager::~MappedMemoryManager() { | 52 MappedMemoryManager::~MappedMemoryManager() { |
60 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( | |
61 this); | |
62 | |
63 CommandBuffer* cmd_buf = helper_->command_buffer(); | 53 CommandBuffer* cmd_buf = helper_->command_buffer(); |
64 for (auto& chunk : chunks_) { | 54 for (auto& chunk : chunks_) { |
65 cmd_buf->DestroyTransferBuffer(chunk->shm_id()); | 55 cmd_buf->DestroyTransferBuffer(chunk->shm_id()); |
66 } | 56 } |
67 } | 57 } |
68 | 58 |
69 void* MappedMemoryManager::Alloc(unsigned int size, | 59 void* MappedMemoryManager::Alloc(unsigned int size, |
70 int32_t* shm_id, | 60 int32_t* shm_id, |
71 unsigned int* shm_offset) { | 61 unsigned int* shm_offset) { |
72 DCHECK(shm_id); | 62 DCHECK(shm_id); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 void ScopedMappedMemoryPtr::Reset(uint32_t new_size) { | 212 void ScopedMappedMemoryPtr::Reset(uint32_t new_size) { |
223 Release(); | 213 Release(); |
224 | 214 |
225 if (new_size) { | 215 if (new_size) { |
226 buffer_ = mapped_memory_manager_->Alloc(new_size, &shm_id_, &shm_offset_); | 216 buffer_ = mapped_memory_manager_->Alloc(new_size, &shm_id_, &shm_offset_); |
227 size_ = buffer_ ? new_size : 0; | 217 size_ = buffer_ ? new_size : 0; |
228 } | 218 } |
229 } | 219 } |
230 | 220 |
231 } // namespace gpu | 221 } // namespace gpu |
OLD | NEW |