Chromium Code Reviews| Index: components/viz/common/server_gpu_memory_buffer_manager.h |
| diff --git a/components/viz/common/server_gpu_memory_buffer_manager.h b/components/viz/common/server_gpu_memory_buffer_manager.h |
| index 5b2992c75487fbefa932df82e24eb7db3059d572..cbd0894262fef207e94a2588889395f70d3ea693 100644 |
| --- a/components/viz/common/server_gpu_memory_buffer_manager.h |
| +++ b/components/viz/common/server_gpu_memory_buffer_manager.h |
| @@ -9,7 +9,6 @@ |
| #include "base/macros.h" |
| #include "base/memory/weak_ptr.h" |
| -#include "base/threading/thread_checker.h" |
| #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" |
| #include "gpu/ipc/host/gpu_memory_buffer_support.h" |
| #include "services/ui/gpu/interfaces/gpu_service.mojom.h" |
| @@ -18,8 +17,7 @@ namespace viz { |
| // This GpuMemoryBufferManager implementation is for [de]allocating gpu memory |
| // from the gpu process over the mojom.GpuService api. |
| -class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager, |
| - public base::ThreadChecker { |
| +class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager { |
| public: |
| ServerGpuMemoryBufferManager(ui::mojom::GpuService* gpu_service, |
| int client_id); |
| @@ -31,13 +29,14 @@ class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager, |
| void DestroyAllGpuMemoryBufferForClient(int client_id); |
| - gfx::GpuMemoryBufferHandle CreateGpuMemoryBufferHandle( |
| + void CreateGpuMemoryBufferHandle( |
|
reveman
2017/06/15 15:17:43
How about renaming this to AllocateGpuMemoryBuffer
sadrul
2017/06/15 16:58:06
Changed to Allocate*
|
| gfx::GpuMemoryBufferId id, |
| int client_id, |
| const gfx::Size& size, |
| gfx::BufferFormat format, |
| gfx::BufferUsage usage, |
| - gpu::SurfaceHandle surface_handle); |
| + gpu::SurfaceHandle surface_handle, |
| + base::OnceCallback<void(const gfx::GpuMemoryBufferHandle&)> callback); |
| // Overridden from gpu::GpuMemoryBufferManager: |
| std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBuffer( |
| @@ -49,6 +48,15 @@ class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager, |
| const gpu::SyncToken& sync_token) override; |
| private: |
| + void OnGpuMemoryBufferCreated( |
| + int client_id, |
| + base::OnceCallback<void(const gfx::GpuMemoryBufferHandle&)> callback, |
| + const gfx::GpuMemoryBufferHandle& handle); |
| + void OnGpuMemoryBufferCreatedWait( |
|
reveman
2017/06/15 15:17:43
WaitOnGpuMemoryBufferCreated?
sadrul
2017/06/15 16:58:06
Renamed this to SignalOnGMBAllocated, since this s
|
| + gfx::GpuMemoryBufferHandle* handle, |
| + base::WaitableEvent* wait_event, |
| + const gfx::GpuMemoryBufferHandle& allocated_handle); |
| + |
| ui::mojom::GpuService* gpu_service_; |
| const int client_id_; |
| int next_gpu_memory_id_ = 1; |
| @@ -57,8 +65,10 @@ class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager, |
| std::unordered_set<gfx::GpuMemoryBufferId, |
| BASE_HASH_NAMESPACE::hash<gfx::GpuMemoryBufferId>>; |
| std::unordered_map<int, NativeBuffers> native_buffers_; |
| + std::unordered_set<int> pending_buffers_; |
| const gpu::GpuMemoryBufferConfigurationSet native_configurations_; |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| base::WeakPtrFactory<ServerGpuMemoryBufferManager> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(ServerGpuMemoryBufferManager); |