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 373713dbfe29b7def404eec7aeaa649083a104c4..07d2feff4ebc729834c1a37b1abd692476067504 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,7 +114,7 @@ BrowserGpuMemoryBufferManager::GpuMemoryBufferFromClientBuffer( |
void BrowserGpuMemoryBufferManager::ChildProcessDeletedGpuMemoryBuffer( |
gfx::GpuMemoryBufferType type, |
- const gfx::GpuMemoryBufferId& id, |
+ gfx::GpuMemoryBufferId id, |
base::ProcessHandle child_process_handle, |
int child_client_id, |
uint32 sync_point) { |
@@ -128,6 +133,7 @@ void BrowserGpuMemoryBufferManager::ProcessRemoved( |
void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferOnIO( |
AllocateGpuMemoryBufferRequest* request) { |
GpuMemoryBufferImpl::Create( |
+ g_next_gpu_memory_buffer_id.GetNext(), |
request->size, |
request->format, |
request->usage, |