| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 5 #ifndef CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| 6 #define CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 6 #define CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 namespace content { | 44 namespace content { |
| 45 class GpuProcessHost; | 45 class GpuProcessHost; |
| 46 | 46 |
| 47 class CONTENT_EXPORT BrowserGpuMemoryBufferManager | 47 class CONTENT_EXPORT BrowserGpuMemoryBufferManager |
| 48 : public gpu::GpuMemoryBufferManager, | 48 : public gpu::GpuMemoryBufferManager, |
| 49 public base::trace_event::MemoryDumpProvider { | 49 public base::trace_event::MemoryDumpProvider { |
| 50 public: | 50 public: |
| 51 using CreateCallback = | 51 using CreateCallback = |
| 52 base::Callback<void(const gfx::GpuMemoryBufferHandle& handle)>; | 52 base::Callback<void(const gfx::GpuMemoryBufferHandle& handle)>; |
| 53 using AllocationCallback = CreateCallback; | 53 using AllocationCallback = CreateCallback; |
| 54 using FenceCreationCallback = |
| 55 base::Callback<void(const gfx::GpuFenceHandle& handle)>; |
| 54 | 56 |
| 55 BrowserGpuMemoryBufferManager(int gpu_client_id, | 57 BrowserGpuMemoryBufferManager(int gpu_client_id, |
| 56 uint64_t gpu_client_tracing_id); | 58 uint64_t gpu_client_tracing_id); |
| 57 ~BrowserGpuMemoryBufferManager() override; | 59 ~BrowserGpuMemoryBufferManager() override; |
| 58 | 60 |
| 59 static BrowserGpuMemoryBufferManager* current(); | 61 static BrowserGpuMemoryBufferManager* current(); |
| 60 | 62 |
| 61 static bool IsNativeGpuMemoryBuffersEnabled(); | 63 static bool IsNativeGpuMemoryBuffersEnabled(); |
| 62 | 64 |
| 63 static uint32_t GetImageTextureTarget(gfx::BufferFormat format, | 65 static uint32_t GetImageTextureTarget(gfx::BufferFormat format, |
| 64 gfx::BufferUsage usage); | 66 gfx::BufferUsage usage); |
| 65 | 67 |
| 66 // Overridden from gpu::GpuMemoryBufferManager: | 68 // Overridden from gpu::GpuMemoryBufferManager: |
| 67 std::unique_ptr<gfx::GpuMemoryBuffer> AllocateGpuMemoryBuffer( | 69 std::unique_ptr<gfx::GpuMemoryBuffer> AllocateGpuMemoryBuffer( |
| 68 const gfx::Size& size, | 70 const gfx::Size& size, |
| 69 gfx::BufferFormat format, | 71 gfx::BufferFormat format, |
| 70 gfx::BufferUsage usage, | 72 gfx::BufferUsage usage, |
| 71 gpu::SurfaceHandle surface_handle) override; | 73 gpu::SurfaceHandle surface_handle) override; |
| 72 std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBufferFromHandle( | 74 std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBufferFromHandle( |
| 73 const gfx::GpuMemoryBufferHandle& handle, | 75 const gfx::GpuMemoryBufferHandle& handle, |
| 74 const gfx::Size& size, | 76 const gfx::Size& size, |
| 75 gfx::BufferFormat format) override; | 77 gfx::BufferFormat format) override; |
| 76 void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer, | 78 void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer, |
| 77 const gpu::SyncToken& sync_token) override; | 79 const gpu::SyncToken& sync_token) override; |
| 80 std::unique_ptr<gfx::GpuFence> CreateGpuFence() override; |
| 81 std::unique_ptr<gfx::GpuFence> CreateGpuFenceFromHandle( |
| 82 const gfx::GpuFenceHandle& handle) override; |
| 83 gfx::GpuFence* GpuFenceFromClientFence(ClientFence fence) override; |
| 78 | 84 |
| 79 // Overridden from base::trace_event::MemoryDumpProvider: | 85 // Overridden from base::trace_event::MemoryDumpProvider: |
| 80 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, | 86 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
| 81 base::trace_event::ProcessMemoryDump* pmd) override; | 87 base::trace_event::ProcessMemoryDump* pmd) override; |
| 82 | 88 |
| 83 void AllocateGpuMemoryBufferForChildProcess( | 89 void AllocateGpuMemoryBufferForChildProcess( |
| 84 gfx::GpuMemoryBufferId id, | 90 gfx::GpuMemoryBufferId id, |
| 85 const gfx::Size& size, | 91 const gfx::Size& size, |
| 86 gfx::BufferFormat format, | 92 gfx::BufferFormat format, |
| 87 gfx::BufferUsage usage, | 93 gfx::BufferUsage usage, |
| 88 base::ProcessHandle child_process_handle, | 94 base::ProcessHandle child_process_handle, |
| 89 int child_client_id, | 95 int child_client_id, |
| 90 const AllocationCallback& callback); | 96 const AllocationCallback& callback); |
| 91 void ChildProcessDeletedGpuMemoryBuffer( | 97 void ChildProcessDeletedGpuMemoryBuffer( |
| 92 gfx::GpuMemoryBufferId id, | 98 gfx::GpuMemoryBufferId id, |
| 93 base::ProcessHandle child_process_handle, | 99 base::ProcessHandle child_process_handle, |
| 94 int child_client_id, | 100 int child_client_id, |
| 95 const gpu::SyncToken& sync_token); | 101 const gpu::SyncToken& sync_token); |
| 102 void CreateGpuFenceForChildProcess(base::ProcessHandle child_process_handle, |
| 103 const FenceCreationCallback& callback); |
| 96 void ProcessRemoved(base::ProcessHandle process_handle, int client_id); | 104 void ProcessRemoved(base::ProcessHandle process_handle, int client_id); |
| 97 | 105 |
| 98 bool IsNativeGpuMemoryBufferConfiguration(gfx::BufferFormat format, | 106 bool IsNativeGpuMemoryBufferConfiguration(gfx::BufferFormat format, |
| 99 gfx::BufferUsage usage) const; | 107 gfx::BufferUsage usage) const; |
| 100 | 108 |
| 101 private: | 109 private: |
| 102 struct BufferInfo { | 110 struct BufferInfo { |
| 103 BufferInfo(); | 111 BufferInfo(); |
| 104 BufferInfo(const gfx::Size& size, | 112 BufferInfo(const gfx::Size& size, |
| 105 gfx::GpuMemoryBufferType type, | 113 gfx::GpuMemoryBufferType type, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 using BufferMap = base::hash_map<gfx::GpuMemoryBufferId, BufferInfo>; | 183 using BufferMap = base::hash_map<gfx::GpuMemoryBufferId, BufferInfo>; |
| 176 using ClientMap = base::hash_map<int, BufferMap>; | 184 using ClientMap = base::hash_map<int, BufferMap>; |
| 177 ClientMap clients_; | 185 ClientMap clients_; |
| 178 | 186 |
| 179 DISALLOW_COPY_AND_ASSIGN(BrowserGpuMemoryBufferManager); | 187 DISALLOW_COPY_AND_ASSIGN(BrowserGpuMemoryBufferManager); |
| 180 }; | 188 }; |
| 181 | 189 |
| 182 } // namespace content | 190 } // namespace content |
| 183 | 191 |
| 184 #endif // CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ | 192 #endif // CONTENT_BROWSER_GPU_BROWSER_GPU_MEMORY_BUFFER_MANAGER_H_ |
| OLD | NEW |