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

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

Issue 2722883002: gpu: Allow waiting on sync tokens without sync token client. (Closed)
Patch Set: review Created 3 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This file contains the GLES2Decoder class. 5 // This file contains the GLES2Decoder class.
6 6
7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ 7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_
8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ 8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_
9 9
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 18 matching lines...) Expand all
29 class GLSurface; 29 class GLSurface;
30 } 30 }
31 31
32 namespace gfx { 32 namespace gfx {
33 class Size; 33 class Size;
34 } 34 }
35 35
36 namespace gpu { 36 namespace gpu {
37 37
38 struct Mailbox; 38 struct Mailbox;
39 struct SyncToken;
39 40
40 namespace gles2 { 41 namespace gles2 {
41 42
42 class ContextGroup; 43 class ContextGroup;
43 class ErrorState; 44 class ErrorState;
44 class FeatureInfo; 45 class FeatureInfo;
45 class GLES2Util; 46 class GLES2Util;
46 class ImageManager; 47 class ImageManager;
47 class Logger; 48 class Logger;
48 class QueryManager; 49 class QueryManager;
(...skipping 29 matching lines...) Expand all
78 typedef base::Callback<void(const std::string& key, 79 typedef base::Callback<void(const std::string& key,
79 const std::string& shader)> ShaderCacheCallback; 80 const std::string& shader)> ShaderCacheCallback;
80 81
81 // This class implements the AsyncAPIInterface interface, decoding GLES2 82 // This class implements the AsyncAPIInterface interface, decoding GLES2
82 // commands and calling GL. 83 // commands and calling GL.
83 class GPU_EXPORT GLES2Decoder : public base::SupportsWeakPtr<GLES2Decoder>, 84 class GPU_EXPORT GLES2Decoder : public base::SupportsWeakPtr<GLES2Decoder>,
84 public CommonDecoder { 85 public CommonDecoder {
85 public: 86 public:
86 typedef error::Error Error; 87 typedef error::Error Error;
87 typedef base::Callback<void(uint64_t release)> FenceSyncReleaseCallback; 88 typedef base::Callback<void(uint64_t release)> FenceSyncReleaseCallback;
88 typedef base::Callback<bool(gpu::CommandBufferNamespace namespace_id, 89 typedef base::Callback<bool(const gpu::SyncToken&)> WaitSyncTokenCallback;
89 gpu::CommandBufferId command_buffer_id,
90 uint64_t release)>
91 WaitFenceSyncCallback;
92 typedef base::Callback<void(void)> NoParamCallback; 90 typedef base::Callback<void(void)> NoParamCallback;
93 91
94 // The default stencil mask, which has all bits set. This really should be a 92 // The default stencil mask, which has all bits set. This really should be a
95 // GLuint, but we can't #include gl_bindings.h in this file without causing 93 // GLuint, but we can't #include gl_bindings.h in this file without causing
96 // macro redefinitions. 94 // macro redefinitions.
97 static const unsigned int kDefaultStencilMask; 95 static const unsigned int kDefaultStencilMask;
98 96
99 // Creates a decoder. 97 // Creates a decoder.
100 static GLES2Decoder* Create(ContextGroup* group); 98 static GLES2Decoder* Create(ContextGroup* group);
101 99
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 int width, 272 int width,
275 int height, 273 int height,
276 int depth) = 0; 274 int depth) = 0;
277 275
278 virtual ErrorState* GetErrorState() = 0; 276 virtual ErrorState* GetErrorState() = 0;
279 277
280 // A callback for messages from the decoder. 278 // A callback for messages from the decoder.
281 virtual void SetShaderCacheCallback(const ShaderCacheCallback& callback) = 0; 279 virtual void SetShaderCacheCallback(const ShaderCacheCallback& callback) = 0;
282 280
283 // Sets the callback for fence sync release and wait calls. The wait call 281 // Sets the callback for fence sync release and wait calls. The wait call
284 // returns true if the channel is still scheduled. 282 // returns false if the wait was a nop or invalid and the command buffer is
283 // still scheduled.
285 virtual void SetFenceSyncReleaseCallback( 284 virtual void SetFenceSyncReleaseCallback(
286 const FenceSyncReleaseCallback& callback) = 0; 285 const FenceSyncReleaseCallback& callback) = 0;
287 virtual void SetWaitFenceSyncCallback( 286 virtual void SetWaitSyncTokenCallback(
288 const WaitFenceSyncCallback& callback) = 0; 287 const WaitSyncTokenCallback& callback) = 0;
289 288
290 // Sets the callback for the DescheduleUntilFinished and 289 // Sets the callback for the DescheduleUntilFinished and
291 // RescheduleAfterFinished calls. 290 // RescheduleAfterFinished calls.
292 virtual void SetDescheduleUntilFinishedCallback( 291 virtual void SetDescheduleUntilFinishedCallback(
293 const NoParamCallback& callback) = 0; 292 const NoParamCallback& callback) = 0;
294 virtual void SetRescheduleAfterFinishedCallback( 293 virtual void SetRescheduleAfterFinishedCallback(
295 const NoParamCallback& callback) = 0; 294 const NoParamCallback& callback) = 0;
296 295
297 virtual void WaitForReadPixels(base::Closure callback) = 0; 296 virtual void WaitForReadPixels(base::Closure callback) = 0;
298 virtual uint32_t GetTextureUploadCount() = 0; 297 virtual uint32_t GetTextureUploadCount() = 0;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 bool initialized_; 333 bool initialized_;
335 bool debug_; 334 bool debug_;
336 bool log_commands_; 335 bool log_commands_;
337 DISALLOW_COPY_AND_ASSIGN(GLES2Decoder); 336 DISALLOW_COPY_AND_ASSIGN(GLES2Decoder);
338 }; 337 };
339 338
340 } // namespace gles2 339 } // namespace gles2
341 } // namespace gpu 340 } // namespace gpu
342 341
343 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_ 342 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_H_
OLDNEW
« no previous file with comments | « android_webview/browser/deferred_gpu_command_service.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698