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 <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 | 9 |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 for (size_t ii = 0; ii < chunks_.size(); ++ii) { | 110 for (size_t ii = 0; ii < chunks_.size(); ++ii) { |
111 MemoryChunk* chunk = chunks_[ii]; | 111 MemoryChunk* chunk = chunks_[ii]; |
112 if (chunk->IsInChunk(pointer)) { | 112 if (chunk->IsInChunk(pointer)) { |
113 chunk->FreePendingToken(pointer, token); | 113 chunk->FreePendingToken(pointer, token); |
114 return; | 114 return; |
115 } | 115 } |
116 } | 116 } |
117 NOTREACHED(); | 117 NOTREACHED(); |
118 } | 118 } |
119 | 119 |
| 120 void MappedMemoryManager::FreePendingAsyncToken(void *pointer, |
| 121 uint32 async_token) { |
| 122 for (size_t ii = 0; ii < chunks_.size(); ++ii) { |
| 123 MemoryChunk* chunk = chunks_[ii]; |
| 124 if (chunk->IsInChunk(pointer)) { |
| 125 chunk->FreePendingAsyncToken(pointer, async_token); |
| 126 return; |
| 127 } |
| 128 } |
| 129 NOTREACHED(); |
| 130 } |
| 131 |
120 void MappedMemoryManager::FreeUnused() { | 132 void MappedMemoryManager::FreeUnused() { |
121 CommandBuffer* cmd_buf = helper_->command_buffer(); | 133 CommandBuffer* cmd_buf = helper_->command_buffer(); |
122 MemoryChunkVector::iterator iter = chunks_.begin(); | 134 MemoryChunkVector::iterator iter = chunks_.begin(); |
123 while (iter != chunks_.end()) { | 135 while (iter != chunks_.end()) { |
124 MemoryChunk* chunk = *iter; | 136 MemoryChunk* chunk = *iter; |
125 chunk->FreeUnused(); | 137 chunk->FreeUnused(); |
126 if (!chunk->InUse()) { | 138 if (!chunk->InUse()) { |
127 cmd_buf->DestroyTransferBuffer(chunk->shm_id()); | 139 cmd_buf->DestroyTransferBuffer(chunk->shm_id()); |
128 allocated_memory_ -= chunk->GetSize(); | 140 allocated_memory_ -= chunk->GetSize(); |
129 iter = chunks_.erase(iter); | 141 iter = chunks_.erase(iter); |
130 } else { | 142 } else { |
131 ++iter; | 143 ++iter; |
132 } | 144 } |
133 } | 145 } |
134 } | 146 } |
135 | 147 |
136 } // namespace gpu | 148 } // namespace gpu |
OLD | NEW |