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