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

Side by Side 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 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 #include "gpu/command_buffer/service/texture_manager.h" 5 #include "gpu/command_buffer/service/texture_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bits.h" 10 #include "base/bits.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 DCHECK(feature_info); 213 DCHECK(feature_info);
214 DCHECK(signature); 214 DCHECK(signature);
215 DCHECK_GE(level, 0); 215 DCHECK_GE(level, 0);
216 size_t face_index = GLES2Util::GLTargetToFaceIndex(target); 216 size_t face_index = GLES2Util::GLTargetToFaceIndex(target);
217 DCHECK_LT(static_cast<size_t>(face_index), 217 DCHECK_LT(static_cast<size_t>(face_index),
218 level_infos_.size()); 218 level_infos_.size());
219 DCHECK_LT(static_cast<size_t>(level), 219 DCHECK_LT(static_cast<size_t>(level),
220 level_infos_[face_index].size()); 220 level_infos_[face_index].size());
221 const Texture::LevelInfo& info = 221 const Texture::LevelInfo& info =
222 level_infos_[face_index][level]; 222 level_infos_[face_index][level];
223 *signature += base::StringPrintf( 223
224 "|Texture|target=%04x|level=%d|internal_format=%04x" 224 signature->append("|Texture|");
225 "|width=%d|height=%d|depth=%d|border=%d|format=%04x|type=%04x" 225 signature->append(reinterpret_cast<const char*>(&target), sizeof(target));
226 "|image=%d|canrender=%d|canrenderto=%d|npot_=%d" 226 signature->append(reinterpret_cast<const char*>(&level), sizeof(level));
227 "|min_filter=%04x|mag_filter=%04x|wrap_s=%04x|wrap_t=%04x" 227 signature->append(reinterpret_cast<const char*>(&info.internal_format),
228 "|usage=%04x", 228 sizeof(info.internal_format));
229 target, level, info.internal_format, 229 signature->append(reinterpret_cast<const char*>(&info.width),
230 info.width, info.height, info.depth, info.border, 230 sizeof(info.width));
231 info.format, info.type, info.image.get() != NULL, 231 signature->append(reinterpret_cast<const char*>(&info.height),
232 CanRender(feature_info), CanRenderTo(), npot_, 232 sizeof(info.height));
233 min_filter_, mag_filter_, wrap_s_, wrap_t_, 233 signature->append(reinterpret_cast<const char*>(&info.depth),
234 usage_); 234 sizeof(info.depth));
235 signature->append(reinterpret_cast<const char*>(&info.border),
236 sizeof(info.border));
237 signature->append(reinterpret_cast<const char*>(&info.format),
238 sizeof(info.format));
239 signature->append(reinterpret_cast<const char*>(&info.type),
240 sizeof(info.type));
241
242 const bool has_image = info.image.get() != NULL;
243 signature->append(reinterpret_cast<const char*>(&has_image),
244 sizeof(has_image));
245
246 const bool can_render = CanRender(feature_info);
247 signature->append(reinterpret_cast<const char*>(&can_render),
248 sizeof(can_render));
249
250 const bool can_render_to = CanRenderTo();
251 signature->append(reinterpret_cast<const char*>(&can_render_to),
252 sizeof(can_render_to));
253
254 signature->append(reinterpret_cast<const char*>(&npot_),
255 sizeof(npot_));
256 signature->append(reinterpret_cast<const char*>(&min_filter_),
257 sizeof(min_filter_));
258 signature->append(reinterpret_cast<const char*>(&wrap_s_),
259 sizeof(wrap_s_));
260 signature->append(reinterpret_cast<const char*>(&wrap_t_),
261 sizeof(wrap_t_));
262 signature->append(reinterpret_cast<const char*>(&usage_),
263 sizeof(usage_));
vmiura 2014/09/23 20:26:47 As with Renderbuffer, would these be better if pac
235 } 264 }
236 265
237 void Texture::SetMailboxManager(MailboxManager* mailbox_manager) { 266 void Texture::SetMailboxManager(MailboxManager* mailbox_manager) {
238 DCHECK(!mailbox_manager_ || mailbox_manager_ == mailbox_manager); 267 DCHECK(!mailbox_manager_ || mailbox_manager_ == mailbox_manager);
239 mailbox_manager_ = mailbox_manager; 268 mailbox_manager_ = mailbox_manager;
240 } 269 }
241 270
242 bool Texture::MarkMipmapsGenerated( 271 bool Texture::MarkMipmapsGenerated(
243 const FeatureInfo* feature_info) { 272 const FeatureInfo* feature_info) {
244 if (!CanGenerateMipmaps(feature_info)) { 273 if (!CanGenerateMipmaps(feature_info)) {
(...skipping 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1543 } 1572 }
1544 1573
1545 ScopedTextureUploadTimer::~ScopedTextureUploadTimer() { 1574 ScopedTextureUploadTimer::~ScopedTextureUploadTimer() {
1546 texture_state_->texture_upload_count++; 1575 texture_state_->texture_upload_count++;
1547 texture_state_->total_texture_upload_time += 1576 texture_state_->total_texture_upload_time +=
1548 base::TimeTicks::HighResNow() - begin_time_; 1577 base::TimeTicks::HighResNow() - begin_time_;
1549 } 1578 }
1550 1579
1551 } // namespace gles2 1580 } // namespace gles2
1552 } // namespace gpu 1581 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698