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

Unified Diff: gpu/command_buffer/service/texture_manager.cc

Issue 593233002: Modified GPU command signature hash to use a binary representation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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/service/texture_manager.cc
diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc
index 9dc5cc9d924f19a2cd266043f24cb7cc38b4e178..5020fd491727a49f1599f084a663cb03a548934c 100644
--- a/gpu/command_buffer/service/texture_manager.cc
+++ b/gpu/command_buffer/service/texture_manager.cc
@@ -220,18 +220,47 @@ void Texture::AddToSignature(
level_infos_[face_index].size());
const Texture::LevelInfo& info =
level_infos_[face_index][level];
- *signature += base::StringPrintf(
- "|Texture|target=%04x|level=%d|internal_format=%04x"
- "|width=%d|height=%d|depth=%d|border=%d|format=%04x|type=%04x"
- "|image=%d|canrender=%d|canrenderto=%d|npot_=%d"
- "|min_filter=%04x|mag_filter=%04x|wrap_s=%04x|wrap_t=%04x"
- "|usage=%04x",
- target, level, info.internal_format,
- info.width, info.height, info.depth, info.border,
- info.format, info.type, info.image.get() != NULL,
- CanRender(feature_info), CanRenderTo(), npot_,
- min_filter_, mag_filter_, wrap_s_, wrap_t_,
- usage_);
+
+ signature->append("|Texture|");
+ signature->append(reinterpret_cast<const char*>(&target), sizeof(target));
+ signature->append(reinterpret_cast<const char*>(&level), sizeof(level));
+ signature->append(reinterpret_cast<const char*>(&info.internal_format),
+ sizeof(info.internal_format));
+ signature->append(reinterpret_cast<const char*>(&info.width),
+ sizeof(info.width));
+ signature->append(reinterpret_cast<const char*>(&info.height),
+ sizeof(info.height));
+ signature->append(reinterpret_cast<const char*>(&info.depth),
+ sizeof(info.depth));
+ signature->append(reinterpret_cast<const char*>(&info.border),
+ sizeof(info.border));
+ signature->append(reinterpret_cast<const char*>(&info.format),
+ sizeof(info.format));
+ signature->append(reinterpret_cast<const char*>(&info.type),
+ sizeof(info.type));
+
+ const bool has_image = info.image.get() != NULL;
+ signature->append(reinterpret_cast<const char*>(&has_image),
+ sizeof(has_image));
+
+ const bool can_render = CanRender(feature_info);
+ signature->append(reinterpret_cast<const char*>(&can_render),
+ sizeof(can_render));
+
+ const bool can_render_to = CanRenderTo();
+ signature->append(reinterpret_cast<const char*>(&can_render_to),
+ sizeof(can_render_to));
+
+ signature->append(reinterpret_cast<const char*>(&npot_),
+ sizeof(npot_));
+ signature->append(reinterpret_cast<const char*>(&min_filter_),
+ sizeof(min_filter_));
+ signature->append(reinterpret_cast<const char*>(&wrap_s_),
+ sizeof(wrap_s_));
+ signature->append(reinterpret_cast<const char*>(&wrap_t_),
+ sizeof(wrap_t_));
+ signature->append(reinterpret_cast<const char*>(&usage_),
+ sizeof(usage_));
vmiura 2014/09/23 20:26:47 As with Renderbuffer, would these be better if pac
}
void Texture::SetMailboxManager(MailboxManager* mailbox_manager) {

Powered by Google App Engine
This is Rietveld 408576698