Lines Matching refs:buffer

98 BufferHandle* BufferManager::AllocateBufferHandle(SurfaceBufferImpl& buffer) const
100 uint32_t total = buffer.GetReserveFds() + buffer.GetReserveInts() + sizeof(BufferHandle);
103 bufferHandle->fd = buffer.GetKey();
104 bufferHandle->phyAddr = buffer.GetPhyAddr();
105 bufferHandle->size = buffer.GetSize();
106 if (!ConvertUsage(bufferHandle->usage, buffer.GetUsage())) {
111 bufferHandle->virAddr = buffer.GetVirAddr();
112 bufferHandle->reserveFds = buffer.GetReserveFds();
113 bufferHandle->reserveInts = buffer.GetReserveInts();
114 for (uint32_t i = 0; i < (buffer.GetReserveFds() + buffer.GetReserveInts()); i++) {
115 buffer.GetInt32(i, bufferHandle->reserve[i]);
127 GRAPHIC_LOGE("Alloc graphic buffer failed");
130 SurfaceBufferImpl* buffer = new SurfaceBufferImpl();
131 if (buffer != nullptr) {
132 buffer->SetMaxSize(bufferHandle->size);
133 buffer->SetVirAddr(bufferHandle->virAddr);
134 buffer->SetKey(bufferHandle->fd);
135 buffer->SetPhyAddr(bufferHandle->phyAddr);
136 buffer->SetStride(bufferHandle->stride);
137 buffer->SetReserveFds(bufferHandle->reserveFds);
138 buffer->SetReserveInts(bufferHandle->reserveInts);
140 buffer->SetInt32(i, bufferHandle->reserve[i]);
144 GRAPHIC_LOGD("Alloc buffer succeed to shared memory segment.");
147 GRAPHIC_LOGW("Alloc buffer failed to shared memory segment.");
149 return buffer;
159 GRAPHIC_LOGW("Alloc graphic buffer failed --- conversion usage.");
163 SurfaceBufferImpl* buffer = AllocBuffer(info);
164 if (buffer == nullptr) {
165 GRAPHIC_LOGE("Alloc graphic buffer failed");
168 buffer->SetUsage(usage);
169 return buffer;
179 GRAPHIC_LOGW("Alloc graphic buffer failed --- conversion usage.");
183 GRAPHIC_LOGW("Alloc graphic buffer failed --- conversion format.");
186 SurfaceBufferImpl* buffer = AllocBuffer(info);
187 if (buffer == nullptr) {
188 GRAPHIC_LOGE("Alloc graphic buffer failed");
191 buffer->SetUsage(usage);
192 return buffer;
195 void BufferManager::FreeBuffer(SurfaceBufferImpl** buffer)
198 if ((*buffer) == nullptr) {
199 GRAPHIC_LOGW("Input param buffer is null.");
202 BufferKey key = {(*buffer)->GetKey(), (*buffer)->GetPhyAddr()};
211 delete *buffer;
212 *buffer = nullptr;
213 GRAPHIC_LOGD("Free buffer succeed.");
217 bool BufferManager::MapBuffer(SurfaceBufferImpl& buffer) const
221 BufferHandle* bufferHandle = AllocateBufferHandle(buffer);
225 if (buffer.GetUsage() == BUFFER_CONSUMER_USAGE_HARDWARE ||
226 buffer.GetUsage() == BUFFER_CONSUMER_USAGE_HARDWARE_CONSUMER_CACHE ||
227 buffer.GetUsage() == BUFFER_CONSUMER_USAGE_SORTWARE) {
231 } else if (buffer.GetUsage() == BUFFER_CONSUMER_USAGE_HARDWARE_PRODUCER_CACHE) {
245 buffer.SetVirAddr(virAddr);
251 void BufferManager::UnmapBuffer(SurfaceBufferImpl& buffer) const
254 BufferHandle* bufferHandle = AllocateBufferHandle(buffer);
259 GRAPHIC_LOGE("Umap buffer failed.");
264 int32_t BufferManager::FlushCache(SurfaceBufferImpl& buffer) const
267 BufferHandle* bufferHandle = AllocateBufferHandle(buffer);
271 if (buffer.GetUsage() == BUFFER_CONSUMER_USAGE_HARDWARE_CONSUMER_CACHE) {
273 GRAPHIC_LOGE("Flush cache buffer failed.");
275 } else if (buffer.GetUsage() == BUFFER_CONSUMER_USAGE_HARDWARE_PRODUCER_CACHE) {
277 GRAPHIC_LOGE("Flush M cache buffer failed.");