diff options
| author | boliu <boliu@chromium.org> | 2015-07-21 12:08:56 -0700 |
|---|---|---|
| committer | Commit bot <commit-bot@chromium.org> | 2015-07-21 19:09:26 +0000 |
| commit | c5befe7d0b86bb4996017605f1edc4bfa1c327f8 (patch) | |
| tree | 50228f7d3c5c05a5d9a1ebe56285e101f3708044 /content/gpu/in_process_gpu_thread.h | |
| parent | a4971c13e156194f1b51d3b019806bbf64cfa8f6 (diff) | |
| download | chromium_src-c5befe7d0b86bb4996017605f1edc4bfa1c327f8.zip chromium_src-c5befe7d0b86bb4996017605f1edc4bfa1c327f8.tar.gz chromium_src-c5befe7d0b86bb4996017605f1edc4bfa1c327f8.tar.bz2 | |
Share SyncPointManager between ipc and in-process
Allow SyncPointManager instance to be set, and set the same
instance in Android WebView. Also remove ref-counting and just
guarantee SyncPointManager outlives running message loop.
Also make SyncPointManager thread safe, and callbacks are no longer
guaranteed to happen on the same thread. Make sure command buffer
implementations handle it correctly.
BUG=509702
Review URL: https://codereview.chromium.org/1231263003
Cr-Commit-Position: refs/heads/master@{#339712}
Diffstat (limited to 'content/gpu/in_process_gpu_thread.h')
| -rw-r--r-- | content/gpu/in_process_gpu_thread.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/content/gpu/in_process_gpu_thread.h b/content/gpu/in_process_gpu_thread.h index 3716730..6516ba6 100644 --- a/content/gpu/in_process_gpu_thread.h +++ b/content/gpu/in_process_gpu_thread.h @@ -9,6 +9,10 @@ #include "content/common/content_export.h" #include "content/common/in_process_child_thread_params.h" +namespace gpu { +class SyncPointManager; +} + namespace content { class GpuMemoryBufferFactory; @@ -18,7 +22,8 @@ class GpuProcess; // with --in-process-gpu or --single-process. class InProcessGpuThread : public base::Thread { public: - InProcessGpuThread(const InProcessChildThreadParams& params); + InProcessGpuThread(const InProcessChildThreadParams& params, + gpu::SyncPointManager* sync_point_manager_override); ~InProcessGpuThread() override; protected: @@ -31,6 +36,12 @@ class InProcessGpuThread : public base::Thread { // Deleted in CleanUp() on the gpu thread, so don't use smart pointers. GpuProcess* gpu_process_; + // Can be null if overridden. + scoped_ptr<gpu::SyncPointManager> sync_point_manager_; + + // Non-owning. + gpu::SyncPointManager* sync_point_manager_override_; + scoped_ptr<GpuMemoryBufferFactory> gpu_memory_buffer_factory_; DISALLOW_COPY_AND_ASSIGN(InProcessGpuThread); |
