GPU: Instrument AsyncTexImage2D and TexImage2D for telemetry.
This makes the total_texture_upload and total_texture_upload_time results
from telemetry consistent when run with and without impl-side painting.
TEST=by hand via telemetry (http://dev.chromium.org/developers/telemetry)
Review URL: https://chromiumcodereview.appspot.com/16923010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206476 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index a8562ad4..8c4bd250 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -7783,16 +7783,22 @@
}
if (!teximage2d_faster_than_texsubimage2d_ && level_is_same && pixels) {
- glTexSubImage2D(target, level, 0, 0, width, height, format, type, pixels);
+ {
+ ScopedTextureUploadTimer timer(this);
+ glTexSubImage2D(target, level, 0, 0, width, height, format, type, pixels);
+ }
texture_manager()->SetLevelCleared(texture_ref, target, level, true);
tex_image_2d_failed_ = false;
return;
}
LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("glTexImage2D");
- glTexImage2D(
- target, level, internal_format, width, height, border, format, type,
- pixels);
+ {
+ ScopedTextureUploadTimer timer(this);
+ glTexImage2D(
+ target, level, internal_format, width, height, border, format, type,
+ pixels);
+ }
GLenum error = LOCAL_PEEK_GL_ERROR("glTexImage2D");
if (error == GL_NO_ERROR) {
texture_manager()->SetLevelInfo(