diff options
author | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-10 15:47:15 +0000 |
---|---|---|
committer | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-10 15:47:15 +0000 |
commit | b2e92599ffc4ace3bf7de3474afe3e13a7661e1b (patch) | |
tree | c26edaecf640decd7bf9212b5443b7b5e01e46e5 /gpu | |
parent | a45840b90d3b121c773fad503fee605eb07eb2a8 (diff) | |
download | chromium_src-b2e92599ffc4ace3bf7de3474afe3e13a7661e1b.zip chromium_src-b2e92599ffc4ace3bf7de3474afe3e13a7661e1b.tar.gz chromium_src-b2e92599ffc4ace3bf7de3474afe3e13a7661e1b.tar.bz2 |
Add synthetic delay points for latency testing
Add synthetic delay points for simulating long computation in the
following parts of the graphics/input pipeline:
1. blink.HandleInputEvent - Expensive JavaScript input event handling.
2. cc.RasterRequiredForActivation - Long running raster tasks.
3. cc.BeginMainFrame - Complex main thread picture recording, layout or
rAF.
4. gpu.AsyncTexImage - Slow texture uploads.
5. gpu.SwapBuffers - GPU-bound rendering.
BUG=307841
Review URL: https://codereview.chromium.org/83183005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244175 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
4 files changed, 18 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc index 7e0d515..3f3acc5 100644 --- a/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc @@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/debug/trace_event.h" +#include "base/debug/trace_event_synthetic_delay.h" #include "base/lazy_instance.h" #include "base/logging.h" #include "base/memory/ref_counted.h" @@ -234,10 +235,12 @@ class TransferStateInternal } void MarkAsTransferIsInProgress() { + TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("gpu.AsyncTexImage"); transfer_completion_.Reset(); } void MarkAsCompleted() { + TRACE_EVENT_SYNTHETIC_DELAY_END("gpu.AsyncTexImage"); transfer_completion_.Signal(); } diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc index 88aff57..dcd870d 100644 --- a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc @@ -6,6 +6,7 @@ #include "base/bind.h" #include "base/debug/trace_event.h" +#include "base/debug/trace_event_synthetic_delay.h" #include "base/lazy_instance.h" #include "base/memory/weak_ptr.h" #include "gpu/command_buffer/service/safe_shared_memory_pool.h" @@ -98,6 +99,7 @@ void AsyncPixelTransferDelegateIdle::AsyncTexImage2D( const AsyncTexImage2DParams& tex_params, const AsyncMemoryParams& mem_params, const base::Closure& bind_callback) { + TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("gpu.AsyncTexImage"); DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), tex_params.target); DCHECK(mem_params.shared_memory); DCHECK_LE(mem_params.shm_data_offset + mem_params.shm_data_size, @@ -121,6 +123,7 @@ void AsyncPixelTransferDelegateIdle::AsyncTexImage2D( void AsyncPixelTransferDelegateIdle::AsyncTexSubImage2D( const AsyncTexSubImage2DParams& tex_params, const AsyncMemoryParams& mem_params) { + TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("gpu.AsyncTexImage"); DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), tex_params.target); DCHECK(mem_params.shared_memory); DCHECK_LE(mem_params.shm_data_offset + mem_params.shm_data_size, @@ -188,6 +191,7 @@ void AsyncPixelTransferDelegateIdle::PerformAsyncTexImage2D( data); } + TRACE_EVENT_SYNTHETIC_DELAY_END("gpu.AsyncTexImage"); transfer_in_progress_ = false; shared_state_->texture_upload_count++; shared_state_->total_texture_upload_time += @@ -243,6 +247,7 @@ void AsyncPixelTransferDelegateIdle::PerformAsyncTexSubImage2D( data); } + TRACE_EVENT_SYNTHETIC_DELAY_END("gpu.AsyncTexImage"); transfer_in_progress_ = false; shared_state_->texture_upload_count++; shared_state_->total_texture_upload_time += diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc index f71e07e..dcdab1c 100644 --- a/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc @@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/debug/trace_event.h" +#include "base/debug/trace_event_synthetic_delay.h" #include "base/lazy_instance.h" #include "base/logging.h" #include "base/memory/ref_counted.h" @@ -251,6 +252,7 @@ class TransferStateInternal const AsyncMemoryParams mem_params, scoped_refptr<AsyncPixelTransferUploadStats> texture_upload_stats, const base::Closure& bind_callback) { + TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("gpu.AsyncTexImage"); pending_upload_task_ = new PendingTask(base::Bind( &TransferStateInternal::PerformAsyncTexImage2D, this, @@ -276,6 +278,7 @@ class TransferStateInternal AsyncTexSubImage2DParams tex_params, AsyncMemoryParams mem_params, scoped_refptr<AsyncPixelTransferUploadStats> texture_upload_stats) { + TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("gpu.AsyncTexImage"); pending_upload_task_ = new PendingTask(base::Bind( &TransferStateInternal::PerformAsyncTexSubImage2D, this, @@ -328,6 +331,7 @@ class TransferStateInternal tex_params.format, tex_params.type, data); + TRACE_EVENT_SYNTHETIC_DELAY_END("gpu.AsyncTexImage"); } if (texture_upload_stats.get()) { @@ -367,6 +371,7 @@ class TransferStateInternal tex_params.format, tex_params.type, data); + TRACE_EVENT_SYNTHETIC_DELAY_END("gpu.AsyncTexImage"); } if (texture_upload_stats.get()) { diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 25509d8..d76fec6 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -17,6 +17,7 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/debug/trace_event.h" +#include "base/debug/trace_event_synthetic_delay.h" #include "base/memory/scoped_ptr.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" @@ -8944,6 +8945,10 @@ void GLES2DecoderImpl::DoSwapBuffers() { TRACE_EVENT2("gpu", "GLES2DecoderImpl::DoSwapBuffers", "offscreen", is_offscreen, "frame", this_frame_number); + { + TRACE_EVENT_SYNTHETIC_DELAY("gpu.SwapBuffers"); + } + bool is_tracing; TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("gpu.debug"), &is_tracing); |