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

Side by Side Diff: gpu/command_buffer/client/cmd_buffer_helper.h

Issue 1331843005: Implemented new fence syncs which replaces the old sync points. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reverted some unnecesary changes, fixed some small issues Created 5 years, 3 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 command buffer helper class. 5 // This file contains the command buffer helper class.
6 6
7 #ifndef GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 7 #ifndef GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
8 #define GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 8 #define GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
9 9
10 #include <string.h> 10 #include <string.h>
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 bool usable () const { 299 bool usable () const {
300 return usable_; 300 return usable_;
301 } 301 }
302 302
303 void ClearUsable() { 303 void ClearUsable() {
304 usable_ = false; 304 usable_ = false;
305 context_lost_ = true; 305 context_lost_ = true;
306 CalcImmediateEntries(0); 306 CalcImmediateEntries(0);
307 } 307 }
308 308
309 uint32_t GenerateFenceSyncRelease();
310
311 bool IsFenceSyncRelease(uint32_t release) {
312 return release < next_fence_sync_release_;
313 }
314
315 bool IsFenceSyncFlushed(uint32_t release) {
316 return release <= flushed_fence_sync_release_;
317 }
318
309 // Overridden from base::trace_event::MemoryDumpProvider: 319 // Overridden from base::trace_event::MemoryDumpProvider:
310 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, 320 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
311 base::trace_event::ProcessMemoryDump* pmd) override; 321 base::trace_event::ProcessMemoryDump* pmd) override;
312 322
313 private: 323 private:
314 // Returns the number of available entries (they may not be contiguous). 324 // Returns the number of available entries (they may not be contiguous).
315 int32 AvailableEntries() { 325 int32 AvailableEntries() {
316 return (get_offset() - put_ - 1 + total_entry_count_) % total_entry_count_; 326 return (get_offset() - put_ - 1 + total_entry_count_) % total_entry_count_;
317 } 327 }
318 328
(...skipping 15 matching lines...) Expand all
334 CommandBuffer* command_buffer_; 344 CommandBuffer* command_buffer_;
335 int32 ring_buffer_id_; 345 int32 ring_buffer_id_;
336 int32 ring_buffer_size_; 346 int32 ring_buffer_size_;
337 scoped_refptr<gpu::Buffer> ring_buffer_; 347 scoped_refptr<gpu::Buffer> ring_buffer_;
338 CommandBufferEntry* entries_; 348 CommandBufferEntry* entries_;
339 int32 total_entry_count_; // the total number of entries 349 int32 total_entry_count_; // the total number of entries
340 int32 immediate_entry_count_; 350 int32 immediate_entry_count_;
341 int32 token_; 351 int32 token_;
342 int32 put_; 352 int32 put_;
343 int32 last_put_sent_; 353 int32 last_put_sent_;
344 int32 last_barrier_put_sent_; 354
355 uint32_t next_fence_sync_release_;
sunnyps 2015/09/23 21:44:45 I think this should be part of GpuChannelHost::Str
David Yen 2015/09/25 20:13:33 The command buffer ID should be per context (as th
356 uint32_t flushed_fence_sync_release_;
345 357
346 #if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK) 358 #if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK)
347 int commands_issued_; 359 int commands_issued_;
348 #endif 360 #endif
349 361
350 bool usable_; 362 bool usable_;
351 bool context_lost_; 363 bool context_lost_;
352 bool flush_automatically_; 364 bool flush_automatically_;
353 365
354 base::TimeTicks last_flush_time_; 366 base::TimeTicks last_flush_time_;
355 367
356 // Incremented every time the helper flushes the command buffer. 368 // Incremented every time the helper flushes the command buffer.
357 // Can be used to track when prior commands have been flushed. 369 // Can be used to track when prior commands have been flushed.
358 uint32 flush_generation_; 370 uint32 flush_generation_;
359 371
360 friend class CommandBufferHelperTest; 372 friend class CommandBufferHelperTest;
361 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper); 373 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper);
362 }; 374 };
363 375
364 } // namespace gpu 376 } // namespace gpu
365 377
366 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 378 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698