Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Unified Diff: gpu/ipc/client/command_buffer_proxy_impl.cc

Issue 2041043002: CommandBufferProxyImpl holds on to GpuMemoryBuffers while they are in use. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/ipc/client/command_buffer_proxy_impl.cc
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc
index 447697d0f9d1e12998bbd8279443b23967474230..a04ae4c66df4c1e97e45a19f255adb664ee17b74 100644
--- a/gpu/ipc/client/command_buffer_proxy_impl.cc
+++ b/gpu/ipc/client/command_buffer_proxy_impl.cc
@@ -518,6 +518,9 @@ void CommandBufferProxyImpl::DestroyImage(int32_t id) {
auto it = image_gmb_ids_map_.find(id);
if (it != image_gmb_ids_map_.end())
image_gmb_ids_map_.erase(it);
+ auto it2 = image_gmb_map_.find(id);
+ if (it2 != image_gmb_map_.end())
+ image_gmb_map_.erase(it2);
Send(new GpuCommandBufferMsg_DestroyImage(route_id_, id));
}
@@ -535,7 +538,11 @@ int32_t CommandBufferProxyImpl::CreateGpuMemoryBufferImage(
if (!buffer)
return -1;
- return CreateImage(buffer->AsClientBuffer(), width, height, internal_format);
+ int32_t result =
+ CreateImage(buffer->AsClientBuffer(), width, height, internal_format);
+ if (result != -1)
+ image_gmb_map_[result] = std::move(buffer);
+ return result;
}
int32_t CommandBufferProxyImpl::GetImageGpuMemoryBufferId(unsigned image_id) {
« gpu/ipc/client/command_buffer_proxy_impl.h ('K') | « gpu/ipc/client/command_buffer_proxy_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698