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

Unified Diff: gpu/ipc/gpu_command_buffer_traits.cc

Issue 1427543002: Modified old wait sync point functions to also accept new sync tokens. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added DCHECK for valid sync token before IPC conversions Created 5 years, 2 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/ipc/gpu_command_buffer_traits.cc
diff --git a/gpu/ipc/gpu_command_buffer_traits.cc b/gpu/ipc/gpu_command_buffer_traits.cc
index 6a77984f8e44c5ab8327143a749f31857d716cf3..bdf8a58140497de04f2b32755cb753e8765c2fd3 100644
--- a/gpu/ipc/gpu_command_buffer_traits.cc
+++ b/gpu/ipc/gpu_command_buffer_traits.cc
@@ -57,10 +57,13 @@ void ParamTraits<gpu::CommandBuffer::State> ::Log(const param_type& p,
}
void ParamTraits<gpu::SyncToken>::Write(Message* m, const param_type& p) {
+ DCHECK(!p.HasData() || p.verified_flush());
+ const bool verified_flush = p.verified_flush();
const int namespace_id = static_cast<int>(p.namespace_id());
const uint64_t command_buffer_id = p.command_buffer_id();
const uint64_t release_count = p.release_count();
+ m->WriteBytes(&verified_flush, sizeof(verified_flush));
m->WriteBytes(&namespace_id, sizeof(namespace_id));
m->WriteBytes(&command_buffer_id, sizeof(command_buffer_id));
m->WriteBytes(&release_count, sizeof(release_count));
@@ -69,6 +72,10 @@ void ParamTraits<gpu::SyncToken>::Write(Message* m, const param_type& p) {
bool ParamTraits<gpu::SyncToken>::Read(const Message* m,
base::PickleIterator* iter,
param_type* p) {
+ bool verified_flush = false;
+ if (!iter->ReadBool(&verified_flush))
+ return false;
+
int namespace_id = -1;
if (!iter->ReadInt(&namespace_id))
return false;
@@ -84,6 +91,10 @@ bool ParamTraits<gpu::SyncToken>::Read(const Message* m,
p->Set(static_cast<gpu::CommandBufferNamespace>(namespace_id),
command_buffer_id,
release_count);
+
piman 2015/10/29 23:45:17 Can you add: if (p->HasData() && !verified_flush)
David Yen 2015/10/30 00:01:30 Done.
+ if (verified_flush)
+ p->SetVerifyFlush();
+
return true;
}
@@ -117,7 +128,7 @@ void ParamTraits<gpu::Mailbox>::Log(const param_type& p, std::string* l) {
void ParamTraits<gpu::MailboxHolder>::Write(Message* m, const param_type& p) {
WriteParam(m, p.mailbox);
WriteParam(m, p.texture_target);
- WriteParam(m, p.sync_point);
+ WriteParam(m, p.sync_token);
}
bool ParamTraits<gpu::MailboxHolder> ::Read(const Message* m,
@@ -125,14 +136,15 @@ bool ParamTraits<gpu::MailboxHolder> ::Read(const Message* m,
param_type* p) {
if (!ReadParam(m, iter, &p->mailbox) ||
!ReadParam(m, iter, &p->texture_target) ||
- !ReadParam(m, iter, &p->sync_point))
+ !ReadParam(m, iter, &p->sync_token))
return false;
return true;
}
void ParamTraits<gpu::MailboxHolder>::Log(const param_type& p, std::string* l) {
ParamTraits<gpu::Mailbox>::Log(p.mailbox, l);
- *l += base::StringPrintf(":%04x@%d", p.texture_target, p.sync_point);
+ *l += base::StringPrintf(":%04x@", p.texture_target);
+ ParamTraits<gpu::SyncToken>::Log(p.sync_token, l);
}
void ParamTraits<gpu::ValueState>::Write(Message* m, const param_type& p) {
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_extensions_autogen.h ('k') | media/base/video_frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698