OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "services/ui/common/server_gpu_memory_buffer_manager.h" | 5 #include "services/ui/common/server_gpu_memory_buffer_manager.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "gpu/ipc/client/gpu_memory_buffer_impl.h" | 8 #include "gpu/ipc/client/gpu_memory_buffer_impl.h" |
9 #include "gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.h" | 9 #include "gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.h" |
10 #include "gpu/ipc/common/gpu_memory_buffer_support.h" | 10 #include "gpu/ipc/common/gpu_memory_buffer_support.h" |
| 11 #include "mojo/public/cpp/bindings/sync_call_restrictions.h" |
11 #include "services/ui/gpu/interfaces/gpu_service.mojom.h" | 12 #include "services/ui/gpu/interfaces/gpu_service.mojom.h" |
12 | 13 |
13 namespace ui { | 14 namespace ui { |
14 | 15 |
15 ServerGpuMemoryBufferManager::ServerGpuMemoryBufferManager( | 16 ServerGpuMemoryBufferManager::ServerGpuMemoryBufferManager( |
16 mojom::GpuService* gpu_service, | 17 mojom::GpuService* gpu_service, |
17 int client_id) | 18 int client_id) |
18 : gpu_service_(gpu_service), | 19 : gpu_service_(gpu_service), |
19 client_id_(client_id), | 20 client_id_(client_id), |
20 native_configurations_(gpu::GetNativeGpuMemoryBufferConfigurations()), | 21 native_configurations_(gpu::GetNativeGpuMemoryBufferConfigurations()), |
(...skipping 28 matching lines...) Expand all Loading... |
49 return gpu::GpuMemoryBufferImplSharedMemory::CreateGpuMemoryBuffer(id, size, | 50 return gpu::GpuMemoryBufferImplSharedMemory::CreateGpuMemoryBuffer(id, size, |
50 format); | 51 format); |
51 } | 52 } |
52 | 53 |
53 std::unique_ptr<gfx::GpuMemoryBuffer> | 54 std::unique_ptr<gfx::GpuMemoryBuffer> |
54 ServerGpuMemoryBufferManager::CreateGpuMemoryBuffer( | 55 ServerGpuMemoryBufferManager::CreateGpuMemoryBuffer( |
55 const gfx::Size& size, | 56 const gfx::Size& size, |
56 gfx::BufferFormat format, | 57 gfx::BufferFormat format, |
57 gfx::BufferUsage usage, | 58 gfx::BufferUsage usage, |
58 gpu::SurfaceHandle surface_handle) { | 59 gpu::SurfaceHandle surface_handle) { |
| 60 LOG(ERROR) << "ServerGpuMemoryBufferManager::CreateGpuMemoryBuffer"; |
| 61 LOG(ERROR) << "base::PlatformThread::GetName()" |
| 62 << base::PlatformThread::GetName(); |
59 gfx::GpuMemoryBufferId id(next_gpu_memory_id_++); | 63 gfx::GpuMemoryBufferId id(next_gpu_memory_id_++); |
| 64 // TODO(mfomitchev): Get rid of this once the viz/WS split is done. |
| 65 mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call; |
60 gfx::GpuMemoryBufferHandle handle = CreateGpuMemoryBufferHandle( | 66 gfx::GpuMemoryBufferHandle handle = CreateGpuMemoryBufferHandle( |
61 id, client_id_, size, format, usage, surface_handle); | 67 id, client_id_, size, format, usage, surface_handle); |
62 if (handle.is_null()) | 68 if (handle.is_null()) |
63 return nullptr; | 69 return nullptr; |
64 return gpu::GpuMemoryBufferImpl::CreateFromHandle( | 70 return gpu::GpuMemoryBufferImpl::CreateFromHandle( |
65 handle, size, format, usage, | 71 handle, size, format, usage, |
66 base::Bind(&ServerGpuMemoryBufferManager::DestroyGpuMemoryBuffer, | 72 base::Bind(&ServerGpuMemoryBufferManager::DestroyGpuMemoryBuffer, |
67 weak_factory_.GetWeakPtr(), id, client_id_)); | 73 weak_factory_.GetWeakPtr(), id, client_id_)); |
68 } | 74 } |
69 | 75 |
(...skipping 16 matching lines...) Expand all Loading... |
86 | 92 |
87 void ServerGpuMemoryBufferManager::DestroyAllGpuMemoryBufferForClient( | 93 void ServerGpuMemoryBufferManager::DestroyAllGpuMemoryBufferForClient( |
88 int client_id) { | 94 int client_id) { |
89 DCHECK(CalledOnValidThread()); | 95 DCHECK(CalledOnValidThread()); |
90 for (gfx::GpuMemoryBufferId id : native_buffers_[client_id]) | 96 for (gfx::GpuMemoryBufferId id : native_buffers_[client_id]) |
91 gpu_service_->DestroyGpuMemoryBuffer(id, client_id, gpu::SyncToken()); | 97 gpu_service_->DestroyGpuMemoryBuffer(id, client_id, gpu::SyncToken()); |
92 native_buffers_.erase(client_id); | 98 native_buffers_.erase(client_id); |
93 } | 99 } |
94 | 100 |
95 } // namespace ui | 101 } // namespace ui |
OLD | NEW |