Index: content/browser/gpu/browser_gpu_memory_buffer_manager.cc |
diff --git a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc |
index a3feef78a5431ad33345e7d82730095ddb55a044..8dfdc6a08bbfa0d3bd95f39430d89aef01ddeddc 100644 |
--- a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc |
+++ b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc |
@@ -4,6 +4,7 @@ |
#include "content/browser/gpu/browser_gpu_memory_buffer_manager.h" |
+#include "base/atomic_sequence_num.h" |
#include "base/bind.h" |
#include "base/debug/trace_event.h" |
#include "base/lazy_instance.h" |
@@ -25,6 +26,9 @@ void GpuMemoryBufferAllocatedForChildProcess( |
BrowserGpuMemoryBufferManager* g_gpu_memory_buffer_manager = nullptr; |
+// Global atomic to generate gpu memory buffer unique IDs. |
+base::StaticAtomicSequenceNumber g_next_gpu_memory_buffer_id; |
+ |
} // namespace |
struct BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferRequest { |
@@ -93,6 +97,7 @@ void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess( |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
GpuMemoryBufferImpl::AllocateForChildProcess( |
+ g_next_gpu_memory_buffer_id.GetNext(), |
size, |
format, |
usage, |
@@ -109,11 +114,13 @@ BrowserGpuMemoryBufferManager::GpuMemoryBufferFromClientBuffer( |
void BrowserGpuMemoryBufferManager::ChildProcessDeletedGpuMemoryBuffer( |
gfx::GpuMemoryBufferType type, |
- const gfx::GpuMemoryBufferId& id, |
- base::ProcessHandle child_process_handle) { |
+ gfx::GpuMemoryBufferId id, |
+ base::ProcessHandle child_process_handle, |
+ int child_client_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- GpuMemoryBufferImpl::DeletedByChildProcess(type, id, child_process_handle); |
+ GpuMemoryBufferImpl::DeletedByChildProcess( |
+ type, id, child_process_handle, child_client_id); |
} |
void BrowserGpuMemoryBufferManager::ProcessRemoved( |
@@ -125,6 +132,7 @@ void BrowserGpuMemoryBufferManager::ProcessRemoved( |
void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferOnIO( |
AllocateGpuMemoryBufferRequest* request) { |
GpuMemoryBufferImpl::Create( |
+ g_next_gpu_memory_buffer_id.GetNext(), |
request->size, |
request->format, |
request->usage, |