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

Unified Diff: gpu/command_buffer/service/in_process_command_buffer.h

Issue 1231263003: Share SyncPointManager between ipc and in-process (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove forward decl/includes Created 5 years, 5 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/gpu/in_process_gpu_thread.cc ('k') | gpu/command_buffer/service/in_process_command_buffer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/in_process_command_buffer.h
diff --git a/gpu/command_buffer/service/in_process_command_buffer.h b/gpu/command_buffer/service/in_process_command_buffer.h
index bfc0867cea1e4144df5e0a0cc1bce24d36d7df8b..db9c2b2f56efa83e5ac3d0701325bb4f5332e0d1 100644
--- a/gpu/command_buffer/service/in_process_command_buffer.h
+++ b/gpu/command_buffer/service/in_process_command_buffer.h
@@ -17,6 +17,7 @@
#include "base/memory/weak_ptr.h"
#include "base/synchronization/lock.h"
#include "base/synchronization/waitable_event.h"
+#include "base/threading/thread.h"
#include "gpu/command_buffer/client/gpu_control.h"
#include "gpu/command_buffer/common/command_buffer.h"
#include "gpu/gpu_export.h"
@@ -46,6 +47,7 @@ class StreamTextureManagerInProcess;
#endif
namespace gpu {
+class SyncPointManager;
class ValueStateMap;
namespace gles2 {
@@ -142,6 +144,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer,
virtual bool UseVirtualizedGLContexts() = 0;
virtual scoped_refptr<gles2::ShaderTranslatorCache>
shader_translator_cache() = 0;
+ virtual SyncPointManager* sync_point_manager() = 0;
scoped_refptr<gfx::GLShareGroup> share_group();
scoped_refptr<gles2::MailboxManager> mailbox_manager();
scoped_refptr<gles2::SubscriptionRefSet> subscription_ref_set();
@@ -261,6 +264,32 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer,
DISALLOW_COPY_AND_ASSIGN(InProcessCommandBuffer);
};
+// Default Service class when a null service is used.
+class GPU_EXPORT GpuInProcessThread
+ : public base::Thread,
+ public NON_EXPORTED_BASE(InProcessCommandBuffer::Service),
+ public base::RefCountedThreadSafe<GpuInProcessThread> {
+ public:
+ explicit GpuInProcessThread(SyncPointManager* sync_point_manager);
+
+ void AddRef() const override;
+ void Release() const override;
+ void ScheduleTask(const base::Closure& task) override;
+ void ScheduleIdleWork(const base::Closure& callback) override;
+ bool UseVirtualizedGLContexts() override;
+ scoped_refptr<gles2::ShaderTranslatorCache> shader_translator_cache()
+ override;
+ SyncPointManager* sync_point_manager() override;
+
+ private:
+ ~GpuInProcessThread() override;
+ friend class base::RefCountedThreadSafe<GpuInProcessThread>;
+
+ SyncPointManager* sync_point_manager_; // Non-owning.
+ scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_;
+ DISALLOW_COPY_AND_ASSIGN(GpuInProcessThread);
+};
+
} // namespace gpu
#endif // GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
« no previous file with comments | « content/gpu/in_process_gpu_thread.cc ('k') | gpu/command_buffer/service/in_process_command_buffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698