summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-10 15:47:15 +0000
committerskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-10 15:47:15 +0000
commitb2e92599ffc4ace3bf7de3474afe3e13a7661e1b (patch)
treec26edaecf640decd7bf9212b5443b7b5e01e46e5 /gpu
parenta45840b90d3b121c773fad503fee605eb07eb2a8 (diff)
downloadchromium_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')
-rw-r--r--gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc3
-rw-r--r--gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc5
-rw-r--r--gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc5
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc5
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);