Commit 4307de17 authored by epenner@chromium.org's avatar epenner@chromium.org

Telemetry: Use cc frames and fix bots.

Using cc frames for now which should fix the bots. Also removing error to fix the perf-bots. I'll enable once I examine manually that all bots are working.

BUG=335610
TBR=ernstm@chromium.org
NOTRY=true

No-try since I've tested locally and this will fix the win perf bots.

Review URL: https://codereview.chromium.org/142033002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245590 0039d316-1c4b-4281-b951-d872f2087c98
parent 9f9a4471
...@@ -151,10 +151,7 @@ SilkDetails = MainThread ...@@ -151,10 +151,7 @@ SilkDetails = MainThread
# TODO(epenner): Thread names above are likely fairly stable but trace names # TODO(epenner): Thread names above are likely fairly stable but trace names
# could change. We should formalize this trace to keep this robust. # could change. We should formalize this trace to keep this robust.
GpuFrameTraceName = ":RealSwapBuffers" CompositorFrameTraceName = "::SwapBuffers"
# TODO(epenner): The decoder swap-buffers can be used by several producers.
# we need to find the canonical swap buffers on Mac.
GpuFrameTraceNameMac = "GLES2DecoderImpl::DoSwapBuffers"
def ThreadCategoryName(thread_name): def ThreadCategoryName(thread_name):
thread_category = "other" thread_category = "other"
...@@ -205,8 +202,8 @@ class ResultsForThread(object): ...@@ -205,8 +202,8 @@ class ResultsForThread(object):
def AddResults(self, num_frames, results): def AddResults(self, num_frames, results):
clock_report_name = ThreadTimeResultName(self.name) clock_report_name = ThreadTimeResultName(self.name)
cpu_report_name = ThreadCpuTimeResultName(self.name) cpu_report_name = ThreadCpuTimeResultName(self.name)
clock_per_frame = float(self.clock_time) / num_frames clock_per_frame = (float(self.clock_time) / num_frames) if num_frames else 0
cpu_per_frame = float(self.cpu_time) / num_frames cpu_per_frame = (float(self.cpu_time) / num_frames) if num_frames else 0
results.Add(clock_report_name, 'ms', clock_per_frame) results.Add(clock_report_name, 'ms', clock_per_frame)
results.Add(cpu_report_name, 'ms', cpu_per_frame) results.Add(cpu_report_name, 'ms', cpu_per_frame)
...@@ -218,12 +215,12 @@ class ResultsForThread(object): ...@@ -218,12 +215,12 @@ class ResultsForThread(object):
for category, slices_in_category in slices_by_category.iteritems(): for category, slices_in_category in slices_by_category.iteritems():
self_time = sum([x.self_time for x in slices_in_category]) self_time = sum([x.self_time for x in slices_in_category])
all_self_times.append(self_time) all_self_times.append(self_time)
self_time_result = float(self_time) / num_frames self_time_result = (float(self_time) / num_frames) if num_frames else 0
results.Add(ThreadDetailResultName(self.name, category), results.Add(ThreadDetailResultName(self.name, category),
'ms', self_time_result) 'ms', self_time_result)
all_measured_time = sum(all_self_times) all_measured_time = sum(all_self_times)
idle_time = max(0, self.model.bounds.bounds - all_measured_time) idle_time = max(0, self.model.bounds.bounds - all_measured_time)
idle_time_result = float(idle_time) / num_frames idle_time_result = (float(idle_time) / num_frames) if num_frames else 0
results.Add(ThreadDetailResultName(self.name, "idle"), results.Add(ThreadDetailResultName(self.name, "idle"),
'ms', idle_time_result) 'ms', idle_time_result)
...@@ -260,13 +257,9 @@ class ThreadTimesTimelineMetric(TimelineMetric): ...@@ -260,13 +257,9 @@ class ThreadTimesTimelineMetric(TimelineMetric):
if ThreadCategoryName(thread.name) in FastPath: if ThreadCategoryName(thread.name) in FastPath:
thread_category_results['total_fast_path'].AppendThreadSlices(thread) thread_category_results['total_fast_path'].AppendThreadSlices(thread)
# Calculate the number of frames from the GPU thread. # Calculate the number of frames from the CC thread.
gpu_slices = thread_category_results['GPU'].all_slices cc_slices = thread_category_results['renderer_compositor'].all_slices
num_frames = self.CountSlices(gpu_slices, GpuFrameTraceName) num_frames = self.CountSlices(cc_slices, CompositorFrameTraceName)
if not num_frames:
num_frames = self.CountSlices(gpu_slices, GpuFrameTraceNameMac)
if not num_frames:
raise MissingFramesError()
# Report the desired results and details. # Report the desired results and details.
for thread_results in thread_category_results.values(): for thread_results in thread_category_results.values():
......
...@@ -77,12 +77,12 @@ class ThreadTimesTimelineMetricUnittest(unittest.TestCase): ...@@ -77,12 +77,12 @@ class ThreadTimesTimelineMetricUnittest(unittest.TestCase):
renderer_main.name = 'CrRendererMain' renderer_main.name = 'CrRendererMain'
# Create two frame swaps (Results times should be divided by two) # Create two frame swaps (Results times should be divided by two)
gpu_main = model.GetOrCreateProcess(1).GetOrCreateThread(3) cc_main = model.GetOrCreateProcess(1).GetOrCreateThread(3)
gpu_main.name = 'CrGpuMain' cc_main.name = 'Compositor'
gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 10, 10) cc_main.BeginSlice('cc_cat', timeline.CompositorFrameTraceName, 10, 10)
gpu_main.EndSlice(11, 11) cc_main.EndSlice(11, 11)
gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 12, 12) cc_main.BeginSlice('cc_cat', timeline.CompositorFrameTraceName, 12, 12)
gpu_main.EndSlice(13, 13) cc_main.EndSlice(13, 13)
# [ X ] # [ X ]
# [ Y ] # [ Y ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment