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); |