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

Side by Side Diff: gpu/command_buffer/service/in_process_command_buffer.h

Issue 1864723003: Make lost context and error message callbacks on GpuControl go to client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: errorcallback: . 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 // If |surface| is not NULL, use it directly; in this case, the command 86 // If |surface| is not NULL, use it directly; in this case, the command
87 // buffer gpu thread must be the same as the client thread. Otherwise create 87 // buffer gpu thread must be the same as the client thread. Otherwise create
88 // a new GLSurface. 88 // a new GLSurface.
89 bool Initialize(scoped_refptr<gfx::GLSurface> surface, 89 bool Initialize(scoped_refptr<gfx::GLSurface> surface,
90 bool is_offscreen, 90 bool is_offscreen,
91 gfx::AcceleratedWidget window, 91 gfx::AcceleratedWidget window,
92 const gfx::Size& size, 92 const gfx::Size& size,
93 const std::vector<int32_t>& attribs, 93 const std::vector<int32_t>& attribs,
94 gfx::GpuPreference gpu_preference, 94 gfx::GpuPreference gpu_preference,
95 const base::Closure& context_lost_callback,
96 InProcessCommandBuffer* share_group, 95 InProcessCommandBuffer* share_group,
97 GpuMemoryBufferManager* gpu_memory_buffer_manager, 96 GpuMemoryBufferManager* gpu_memory_buffer_manager,
98 ImageFactory* image_factory); 97 ImageFactory* image_factory);
99 void Destroy(); 98 void Destroy();
100 99
101 // CommandBuffer implementation: 100 // CommandBuffer implementation:
102 bool Initialize() override; 101 bool Initialize() override;
103 State GetLastState() override; 102 State GetLastState() override;
104 int32_t GetLastToken() override; 103 int32_t GetLastToken() override;
105 void Flush(int32_t put_offset) override; 104 void Flush(int32_t put_offset) override;
106 void OrderingBarrier(int32_t put_offset) override; 105 void OrderingBarrier(int32_t put_offset) override;
107 void WaitForTokenInRange(int32_t start, int32_t end) override; 106 void WaitForTokenInRange(int32_t start, int32_t end) override;
108 void WaitForGetOffsetInRange(int32_t start, int32_t end) override; 107 void WaitForGetOffsetInRange(int32_t start, int32_t end) override;
109 void SetGetBuffer(int32_t shm_id) override; 108 void SetGetBuffer(int32_t shm_id) override;
110 scoped_refptr<gpu::Buffer> CreateTransferBuffer(size_t size, 109 scoped_refptr<gpu::Buffer> CreateTransferBuffer(size_t size,
111 int32_t* id) override; 110 int32_t* id) override;
112 void DestroyTransferBuffer(int32_t id) override; 111 void DestroyTransferBuffer(int32_t id) override;
113 gpu::error::Error GetLastError() override; 112 gpu::error::Error GetLastError() override;
114 113
115 // GpuControl implementation: 114 // GpuControl implementation:
115 // NOTE: The GpuControlClient will be called on the GPU thread.
116 void SetGpuControlClient(GpuControlClient*) override;
116 gpu::Capabilities GetCapabilities() override; 117 gpu::Capabilities GetCapabilities() override;
117 int32_t CreateImage(ClientBuffer buffer, 118 int32_t CreateImage(ClientBuffer buffer,
118 size_t width, 119 size_t width,
119 size_t height, 120 size_t height,
120 unsigned internalformat) override; 121 unsigned internalformat) override;
121 void DestroyImage(int32_t id) override; 122 void DestroyImage(int32_t id) override;
122 int32_t CreateGpuMemoryBufferImage(size_t width, 123 int32_t CreateGpuMemoryBufferImage(size_t width,
123 size_t height, 124 size_t height,
124 unsigned internalformat, 125 unsigned internalformat,
125 unsigned usage) override; 126 unsigned usage) override;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 // Callbacks: 243 // Callbacks:
243 void OnContextLost(); 244 void OnContextLost();
244 bool GetBufferChanged(int32_t transfer_buffer_id); 245 bool GetBufferChanged(int32_t transfer_buffer_id);
245 void PumpCommands(); 246 void PumpCommands();
246 void PerformDelayedWork(); 247 void PerformDelayedWork();
247 248
248 const CommandBufferId command_buffer_id_; 249 const CommandBufferId command_buffer_id_;
249 250
250 // Members accessed on the gpu thread (possibly with the exception of 251 // Members accessed on the gpu thread (possibly with the exception of
251 // creation): 252 // creation):
253 GpuControlClient* gpu_control_client_;
252 bool context_lost_; 254 bool context_lost_;
253 scoped_refptr<TransferBufferManagerInterface> transfer_buffer_manager_; 255 scoped_refptr<TransferBufferManagerInterface> transfer_buffer_manager_;
254 scoped_ptr<CommandExecutor> executor_; 256 scoped_ptr<CommandExecutor> executor_;
255 scoped_ptr<gles2::GLES2Decoder> decoder_; 257 scoped_ptr<gles2::GLES2Decoder> decoder_;
256 scoped_refptr<gfx::GLContext> context_; 258 scoped_refptr<gfx::GLContext> context_;
257 scoped_refptr<gfx::GLSurface> surface_; 259 scoped_refptr<gfx::GLSurface> surface_;
258 scoped_refptr<SyncPointOrderData> sync_point_order_data_; 260 scoped_refptr<SyncPointOrderData> sync_point_order_data_;
259 scoped_ptr<SyncPointClient> sync_point_client_; 261 scoped_ptr<SyncPointClient> sync_point_client_;
260 base::Closure context_lost_callback_; 262 base::Closure context_lost_callback_;
261 bool delayed_work_pending_; // Used to throttle PerformDelayedWork. 263 bool delayed_work_pending_; // Used to throttle PerformDelayedWork.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 SyncPointManager* sync_point_manager_; // Non-owning. 322 SyncPointManager* sync_point_manager_; // Non-owning.
321 scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_; 323 scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_;
322 scoped_refptr<gpu::gles2::FramebufferCompletenessCache> 324 scoped_refptr<gpu::gles2::FramebufferCompletenessCache>
323 framebuffer_completeness_cache_; 325 framebuffer_completeness_cache_;
324 DISALLOW_COPY_AND_ASSIGN(GpuInProcessThread); 326 DISALLOW_COPY_AND_ASSIGN(GpuInProcessThread);
325 }; 327 };
326 328
327 } // namespace gpu 329 } // namespace gpu
328 330
329 #endif // GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_ 331 #endif // GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698