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

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: rebase + autogen Created 5 years, 1 month 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..f085f1f36be75541cf251c8e7548ee0258769008 100644
--- a/gpu/ipc/gpu_command_buffer_traits.cc
+++ b/gpu/ipc/gpu_command_buffer_traits.cc
@@ -57,18 +57,25 @@ 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(&namespace_id, sizeof(namespace_id));
- m->WriteBytes(&command_buffer_id, sizeof(command_buffer_id));
- m->WriteBytes(&release_count, sizeof(release_count));
+ m->WriteBool(verified_flush);
+ m->WriteInt(namespace_id);
+ m->WriteUInt64(command_buffer_id);
+ m->WriteUInt64(release_count);
}
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,13 @@ bool ParamTraits<gpu::SyncToken>::Read(const Message* m,
p->Set(static_cast<gpu::CommandBufferNamespace>(namespace_id),
command_buffer_id,
release_count);
+
+ if (p->HasData()) {
+ if (!verified_flush)
+ return false;
+ p->SetVerifyFlush();
+ }
+
return true;
}
@@ -116,23 +130,24 @@ 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.sync_token);
WriteParam(m, p.texture_target);
- WriteParam(m, p.sync_point);
}
bool ParamTraits<gpu::MailboxHolder> ::Read(const Message* m,
base::PickleIterator* iter,
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) ||
+ !ReadParam(m, iter, &p->texture_target))
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);
+ ParamTraits<gpu::SyncToken>::Log(p.sync_token, l);
dcheng 2015/11/03 07:39:29 Nit: LogParam (here and previous line) for magical
David Yen 2015/11/03 18:09:28 Done.
+ *l += base::StringPrintf(":%04x@", p.texture_target);
}
void ParamTraits<gpu::ValueState>::Write(Message* m, const param_type& p) {

Powered by Google App Engine
This is Rietveld 408576698