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

Unified Diff: gpu/command_buffer/client/cmd_buffer_helper.cc

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: Some fixes 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/client/cmd_buffer_helper.cc
diff --git a/gpu/command_buffer/client/cmd_buffer_helper.cc b/gpu/command_buffer/client/cmd_buffer_helper.cc
index 35805fe195703e37b006a0b7e2aef33439d0d333..4267eb76689080ea2c32ca407c196e1f91279883 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper.cc
@@ -31,6 +31,8 @@ CommandBufferHelper::CommandBufferHelper(CommandBuffer* command_buffer)
token_(0),
put_(0),
last_put_sent_(0),
+ next_fence_sync_release_(1),
+ flushed_fence_sync_release_(0),
#if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK)
commands_issued_(0),
#endif
@@ -146,6 +148,12 @@ void CommandBufferHelper::FreeRingBuffer() {
FreeResources();
}
+uint32_t CommandBufferHelper::GenerateFenceSyncRelease() {
+ // Enforce fence syncs generated are always inserted in the command buffer.
+ const uint32_t release = next_fence_sync_release_++;
+ return release;
+}
+
bool CommandBufferHelper::Initialize(int32 ring_buffer_size) {
ring_buffer_size_ = ring_buffer_size;
return AllocateRingBuffer();
@@ -176,6 +184,8 @@ void CommandBufferHelper::Flush() {
command_buffer_->Flush(put_);
++flush_generation_;
CalcImmediateEntries(0);
+
+ flushed_fence_sync_release_ = next_fence_sync_release_ - 1;
}
}

Powered by Google App Engine
This is Rietveld 408576698