Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1401)

Unified Diff: content/common/gpu/gpu_channel_manager.h

Issue 1845563005: Refactor content/common/gpu into gpu/ipc/service (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Drop ref to deleted content_tests_gypi_values.content_unittests_ozone_sources Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | content/common/gpu/gpu_channel_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/gpu_channel_manager.h
diff --git a/content/common/gpu/gpu_channel_manager.h b/content/common/gpu/gpu_channel_manager.h
deleted file mode 100644
index 875656f47b697e82be97ce436e0e9609a6c3198b..0000000000000000000000000000000000000000
--- a/content/common/gpu/gpu_channel_manager.h
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_
-#define CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_
-
-#include <stdint.h>
-
-#include <deque>
-#include <string>
-#include <vector>
-
-#include "base/containers/scoped_ptr_hash_map.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "build/build_config.h"
-#include "content/common/content_export.h"
-#include "content/common/gpu/gpu_memory_manager.h"
-#include "gpu/command_buffer/common/constants.h"
-#include "ui/gfx/gpu_memory_buffer.h"
-#include "ui/gfx/native_widget_types.h"
-#include "ui/gl/gl_surface.h"
-#include "url/gurl.h"
-
-#if defined(OS_MACOSX)
-#include "base/callback.h"
-#include "base/containers/hash_tables.h"
-#endif
-
-namespace base {
-class WaitableEvent;
-}
-
-namespace gfx {
-class GLShareGroup;
-}
-
-namespace gpu {
-struct GpuPreferences;
-class PreemptionFlag;
-class SyncPointClient;
-class SyncPointManager;
-struct SyncToken;
-union ValueState;
-namespace gles2 {
-class FramebufferCompletenessCache;
-class MailboxManager;
-class ProgramCache;
-class ShaderTranslatorCache;
-}
-}
-
-namespace IPC {
-struct ChannelHandle;
-}
-
-namespace content {
-class GpuChannel;
-class GpuChannelManagerDelegate;
-class GpuMemoryBufferFactory;
-class GpuWatchdog;
-
-// A GpuChannelManager is a thread responsible for issuing rendering commands
-// managing the lifetimes of GPU channels and forwarding IPC requests from the
-// browser process to them based on the corresponding renderer ID.
-class CONTENT_EXPORT GpuChannelManager {
- public:
-#if defined(OS_MACOSX)
- typedef base::Callback<
- void(int32_t, const base::TimeTicks&, const base::TimeDelta&)>
- BufferPresentedCallback;
-#endif
- GpuChannelManager(const gpu::GpuPreferences& gpu_preferences,
- GpuChannelManagerDelegate* delegate,
- GpuWatchdog* watchdog,
- base::SingleThreadTaskRunner* task_runner,
- base::SingleThreadTaskRunner* io_task_runner,
- base::WaitableEvent* shutdown_event,
- gpu::SyncPointManager* sync_point_manager,
- GpuMemoryBufferFactory* gpu_memory_buffer_factory);
- virtual ~GpuChannelManager();
-
- GpuChannelManagerDelegate* delegate() const { return delegate_; }
-
- IPC::ChannelHandle EstablishChannel(int client_id,
- uint64_t client_tracing_id,
- bool preempts,
- bool allow_view_command_buffers,
- bool allow_real_time_streams);
-
- void PopulateShaderCache(const std::string& shader);
- void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
- int client_id,
- const gpu::SyncToken& sync_token);
- void UpdateValueState(int client_id,
- unsigned int target,
- const gpu::ValueState& state);
-#if defined(OS_ANDROID)
- void WakeUpGpu();
-#endif
- void DestroyAllChannels();
-
- // Remove the channel for a particular renderer.
- void RemoveChannel(int client_id);
-
- void LoseAllContexts();
-
-#if defined(OS_MACOSX)
- void AddBufferPresentedCallback(int32_t routing_id,
- const BufferPresentedCallback& callback);
- void RemoveBufferPresentedCallback(int32_t routing_id);
- void BufferPresented(int32_t surface_id,
- const base::TimeTicks& vsync_timebase,
- const base::TimeDelta& vsync_interval);
-#endif
-
- const gpu::GpuPreferences& gpu_preferences() const {
- return gpu_preferences_;
- }
- gpu::gles2::ProgramCache* program_cache();
- gpu::gles2::ShaderTranslatorCache* shader_translator_cache();
- gpu::gles2::FramebufferCompletenessCache* framebuffer_completeness_cache();
-
- GpuMemoryManager* gpu_memory_manager() { return &gpu_memory_manager_; }
-
- GpuChannel* LookupChannel(int32_t client_id) const;
-
- gfx::GLSurface* GetDefaultOffscreenSurface();
-
- GpuMemoryBufferFactory* gpu_memory_buffer_factory() {
- return gpu_memory_buffer_factory_;
- }
-
- // Returns the maximum order number for unprocessed IPC messages across all
- // channels.
- uint32_t GetUnprocessedOrderNum() const;
-
- // Returns the maximum order number for processed IPC messages across all
- // channels.
- uint32_t GetProcessedOrderNum() const;
-
-#if defined(OS_ANDROID)
- void DidAccessGpu();
-#endif
-
- protected:
- virtual scoped_ptr<GpuChannel> CreateGpuChannel(
- int client_id,
- uint64_t client_tracing_id,
- bool preempts,
- bool allow_view_command_buffers,
- bool allow_real_time_streams);
-
- gpu::SyncPointManager* sync_point_manager() const {
- return sync_point_manager_;
- }
-
- gfx::GLShareGroup* share_group() const { return share_group_.get(); }
- gpu::gles2::MailboxManager* mailbox_manager() const {
- return mailbox_manager_.get();
- }
- gpu::PreemptionFlag* preemption_flag() const {
- return preemption_flag_.get();
- }
-
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
-
- // These objects manage channels to individual renderer processes there is
- // one channel for each renderer process that has connected to this GPU
- // process.
- base::ScopedPtrHashMap<int32_t, scoped_ptr<GpuChannel>> gpu_channels_;
-
- private:
- void InternalDestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id);
- void InternalDestroyGpuMemoryBufferOnIO(gfx::GpuMemoryBufferId id,
- int client_id);
-#if defined(OS_ANDROID)
- void ScheduleWakeUpGpu();
- void DoWakeUpGpu();
-#endif
-
- const gpu::GpuPreferences& gpu_preferences_;
-
- GpuChannelManagerDelegate* const delegate_;
-#if defined(OS_MACOSX)
- base::hash_map<int32_t, BufferPresentedCallback>
- buffer_presented_callback_map_;
-#endif
-
- GpuWatchdog* watchdog_;
-
- base::WaitableEvent* shutdown_event_;
-
- scoped_refptr<gfx::GLShareGroup> share_group_;
- scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager_;
- scoped_refptr<gpu::PreemptionFlag> preemption_flag_;
- GpuMemoryManager gpu_memory_manager_;
- // SyncPointManager guaranteed to outlive running MessageLoop.
- gpu::SyncPointManager* sync_point_manager_;
- scoped_ptr<gpu::SyncPointClient> sync_point_client_waiter_;
- scoped_ptr<gpu::gles2::ProgramCache> program_cache_;
- scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_;
- scoped_refptr<gpu::gles2::FramebufferCompletenessCache>
- framebuffer_completeness_cache_;
- scoped_refptr<gfx::GLSurface> default_offscreen_surface_;
- GpuMemoryBufferFactory* const gpu_memory_buffer_factory_;
-#if defined(OS_ANDROID)
- // Last time we know the GPU was powered on. Global for tracking across all
- // transport surfaces.
- base::TimeTicks last_gpu_access_time_;
- base::TimeTicks begin_wake_up_time_;
-#endif
-
- // Member variables should appear before the WeakPtrFactory, to ensure
- // that any WeakPtrs to Controller are invalidated before its members
- // variable's destructors are executed, rendering them invalid.
- base::WeakPtrFactory<GpuChannelManager> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(GpuChannelManager);
-};
-
-} // namespace content
-
-#endif // CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | content/common/gpu/gpu_channel_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698