summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources
diff options
context:
space:
mode:
authornduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-09 19:41:57 +0000
committernduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-09 19:41:57 +0000
commitea005db8d19c4e40fbc17ad7e20d50c2476485ef (patch)
tree78c9e73b9ebaf814be6ae7d1fbc7820af91991bd /chrome/browser/resources
parent0934e35f418895925345d059490e27d643db1133 (diff)
downloadchromium_src-ea005db8d19c4e40fbc17ad7e20d50c2476485ef.zip
chromium_src-ea005db8d19c4e40fbc17ad7e20d50c2476485ef.tar.gz
chromium_src-ea005db8d19c4e40fbc17ad7e20d50c2476485ef.tar.bz2
Implement timeline control and trace viewer for gpu profiling.
The general design here is: TraceController: manages collection of trace data from the backend RawEventView: new tab in about:gpu that shows trace events collected in raw form TimelineView: new tab in about:gpu that shows a timeline of events, broken out by thread and colored by name The TimelineView is built around a TimelineModel class. The TimelineModel class takes as input the BEGIN/END events from TraceEvent and converts them into processes, threads, threads, slices and subrows. Slices represent a single BEGIN-END pair. Since slices can nest, slices have subSlices. E.g. B(x) B(y) E(y) E(y) yields slice(x) with subslice (y). A thread stores slices grouped into subrows, which are slicesall of the same logical nesting depth. With the previous example, the thread would have two subrows, one containing just x, and one containing just Y. The TimelineModel is visualized by a Timeline class in gantt-chart form. The Timeline decorates a div and builds inside that div a number of canvas elements, one element per subRow across all threads in the capture. Within that canvas, we visualize the slices against a scale+translate transform, manipulable with w/a s/d keys for zooming and panning, respectively. When drawing, we collapse together rectangles that are subpixel, avoiding the cost of rasterizing them entirely. This code is all stubbed out so that it does not show up in the about:gpu within chrome. We will turn it on once the trace_event rewrite lands. If you run it standalone with ~nduca/emulate_webui.py, it becomes active. BUG= TEST= Review URL: http://codereview.chromium.org/6542012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77503 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources')
-rw-r--r--chrome/browser/resources/gpu_internals.html33
-rw-r--r--chrome/browser/resources/gpu_internals/browser_bridge.js13
-rw-r--r--chrome/browser/resources/gpu_internals/fast_rect_renderer.js120
-rw-r--r--chrome/browser/resources/gpu_internals/info_view.js101
-rw-r--r--chrome/browser/resources/gpu_internals/overlay.js11
-rw-r--r--chrome/browser/resources/gpu_internals/overlay_test.html5
-rw-r--r--chrome/browser/resources/gpu_internals/simulated_trace_data.js30
-rw-r--r--chrome/browser/resources/gpu_internals/sorted_array_utils.js157
-rw-r--r--chrome/browser/resources/gpu_internals/tab_control.css1
-rw-r--r--chrome/browser/resources/gpu_internals/tab_control.js21
-rw-r--r--chrome/browser/resources/gpu_internals/timeline.css51
-rw-r--r--chrome/browser/resources/gpu_internals/timeline.js421
-rw-r--r--chrome/browser/resources/gpu_internals/timeline_model.js249
-rw-r--r--chrome/browser/resources/gpu_internals/timeline_track.js186
-rw-r--r--chrome/browser/resources/gpu_internals/timeline_view.css35
-rw-r--r--chrome/browser/resources/gpu_internals/timeline_view.html11
-rw-r--r--chrome/browser/resources/gpu_internals/timeline_view.js131
-rw-r--r--chrome/browser/resources/gpu_internals/tracing_controller.css33
-rw-r--r--chrome/browser/resources/gpu_internals/tracing_controller.html14
-rw-r--r--chrome/browser/resources/gpu_internals/tracing_controller.js127
20 files changed, 1678 insertions, 72 deletions
diff --git a/chrome/browser/resources/gpu_internals.html b/chrome/browser/resources/gpu_internals.html
index bdcea10..8763249 100644
--- a/chrome/browser/resources/gpu_internals.html
+++ b/chrome/browser/resources/gpu_internals.html
@@ -23,35 +23,57 @@ body {
margin: 0;
}
</style>
-<link rel="stylesheet" href="gpu_internals/tab_control.css">
<link rel="stylesheet" href="gpu_internals/info_view.css">
+<link rel="stylesheet" href="gpu_internals/overlay.css">
+<link rel="stylesheet" href="gpu_internals/tab_control.css">
+<link rel="stylesheet" href="gpu_internals/timeline_view.css">
+<link rel="stylesheet" href="gpu_internals/timeline.css">
+<link rel="stylesheet" href="gpu_internals/tracing_controller.css">
<script src="chrome://resources/js/cr.js"></script>
<script src="chrome://resources/js/cr/event_target.js"></script>
<script src="chrome://resources/js/cr/ui.js"></script>
<script src="chrome://resources/js/util.js"></script>
<script src="gpu_internals/tab_control.js"></script>
+<script src="gpu_internals/overlay.js"></script>
<script src="gpu_internals/browser_bridge.js"></script>
+<script src="gpu_internals/tracing_controller.js"></script>
<script src="gpu_internals/info_view.js"></script>
-
+<script src="gpu_internals/timeline_model.js"></script>
+<script src="gpu_internals/sorted_array_utils.js"></script>
+<script src="gpu_internals/timeline.js"></script>
+<script src="gpu_internals/timeline_track.js"></script>
+<script src="gpu_internals/fast_rect_renderer.js"></script>
+<script src="gpu_internals/timeline_view.js"></script>
+<script src="gpu_internals/simulated_trace_data.js"></script>
<script>
-var browser;
+var browserBridge;
+var tracingController;
+var timelineView; // made global for debugging purposes only
/**
* Main entry point. called once the page has loaded.
*/
function onLoad() {
browserBridge = new gpu.BrowserBridge();
+ if (browserBridge.debugMode)
+ tracingController = new gpu.TracingController();
// Create the views.
cr.ui.decorate('#info-view', gpu.InfoView);
+ timelineView = $('timeline-view');
+ if (browserBridge.debugMode)
+ cr.ui.decorate(timelineView, gpu.TimelineView);
+ else
+ timelineView.parentNode.removeChild(timelineView);
+
// Create the main tab control
var tabs = $('main-tabs');
cr.ui.decorate(tabs, gpu.TabControl);
// Sync the main-tabs selectedTabs in-sync with the location.
- tabs.addEventListener('selectedTabChanged', function() {
+ tabs.addEventListener('selectedTabChange', function() {
if (tabs.selectedTab.id) {
history.pushState('', '', '#' + tabs.selectedTab.id);
}
@@ -78,6 +100,9 @@ document.addEventListener('DOMContentLoaded', onLoad);
<!-- Tabs -->
<div id="main-tabs">
<include src="gpu_internals/info_view.html">
+ <include src="gpu_internals/timeline_view.html">
</div>
+
+ <include src="gpu_internals/tracing_controller.html">
</body>
</html>
diff --git a/chrome/browser/resources/gpu_internals/browser_bridge.js b/chrome/browser/resources/gpu_internals/browser_bridge.js
index 9e7cc82..1b1a97c 100644
--- a/chrome/browser/resources/gpu_internals/browser_bridge.js
+++ b/chrome/browser/resources/gpu_internals/browser_bridge.js
@@ -12,9 +12,12 @@ cr.define('gpu', function() {
// If we are not running inside WebUI, output chrome.send messages
// to the console to help with quick-iteration debugging.
if (chrome.send === undefined && console.log) {
+ this.debugMode_ = true;
chrome.send = function(messageHandler, args) {
console.log('chrome.send', messageHandler, args);
};
+ } else {
+ this.debugMode_ = false;
}
this.nextRequestId_ = 0;
@@ -28,6 +31,14 @@ cr.define('gpu', function() {
__proto__: cr.EventTarget.prototype,
/**
+ * Returns true if the page is hosted inside Chrome WebUI
+ * Helps have behavior conditional to emulate_webui.py
+ */
+ get debugMode() {
+ return this.debugMode_;
+ },
+
+ /**
* Sends a message to the browser with specified args. The
* browser will reply asynchronously via the provided callback.
*/
@@ -72,6 +83,6 @@ cr.define('gpu', function() {
};
return {
- BrowserBridge : BrowserBridge
+ BrowserBridge: BrowserBridge
};
});
diff --git a/chrome/browser/resources/gpu_internals/fast_rect_renderer.js b/chrome/browser/resources/gpu_internals/fast_rect_renderer.js
new file mode 100644
index 0000000..ef80326b
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/fast_rect_renderer.js
@@ -0,0 +1,120 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview Provides a mechanism for drawing massive numbers of
+ * colored rectangles into a canvas in an efficient manner, provided
+ * they are drawn left to right with fixed y and height throughout.
+ *
+ * The basic idea used here is to fuse subpixel rectangles together so that
+ * we never issue a canvas fillRect for them. It turns out Javascript can
+ * do this quite efficiently, compared to asking Canvas2D to do the same.
+ *
+ * A few extra things are done by this class in the name of speed:
+ * - Viewport culling: off-viewport rectangles are discarded.
+ *
+ * - The actual discarding operation is done in world space,
+ * e.g. pre-transform.
+ *
+ * - Rather than expending compute cycles trying to figure out an average
+ * color for fused rectangles from css strings, you instead draw using
+ * palletized colors. The fused rect is the max pallete index encountered.
+ *
+ * Make sure to flush the trackRenderer before finishing drawing in order
+ * to commit any queued drawing operations.
+ */
+cr.define('gpu', function() {
+
+ /**
+ * Creates a fast rect renderer with a specific set of culling rules
+ * and color pallette.
+ * @param {GraphicsContext2D} ctx Canvas2D drawing context.
+ * @param {number} vpLeft The leftmost visible part of the drawing viewport.
+ * @param {number} minRectSize Only rectangles with width < minRectSize are
+ * considered for merging.
+ * @param {number} maxMergeDist Controls how many successive small rectangles
+ * can be merged together before issuing a rectangle.
+ * @param {number} vpRight The rightmost visible part of the viewport.
+ * @param {Array} pallette The color pallete for drawing. Pallette slots
+ * should map to valid Canvas fillStyle strings.
+ *
+ * @constructor
+ */
+ function FastRectRenderer(ctx, vpLeft, minRectSize, maxMergeDist, vpRight,
+ pallette) {
+ this.ctx_ = ctx;
+ this.vpLeft_ = vpLeft;
+ this.minRectSize_ = minRectSize;
+ this.maxMergeDist_ = maxMergeDist;
+ this.vpRight_ = vpRight;
+ this.pallette_ = pallette;
+ }
+
+ FastRectRenderer.prototype = {
+ y_: 0,
+ h_: 0,
+ merging_: false,
+ mergeStartX_: 0,
+ mergeCurRight_: 0,
+
+ /**
+ * Changes the y position and height for subsequent fillRect
+ * calls. x and width are specifieid on the fillRect calls.
+ */
+ setYandH: function(y, h) {
+ this.flush();
+ this.y_ = y;
+ this.h_ = h;
+ },
+
+ /**
+ * Fills rectangle at the specified location, if visible. If the
+ * rectangle is subpixel, it will be merged with adjacent rectangles.
+ * The drawing operation may not take effect until flush is called.
+ * @param {number} colorId The color of this rectangle, as an index
+ * in the renderer's color pallete.
+ */
+ fillRect: function(x, w, colorId) {
+ var r = x + w;
+ if (r < this.vpLeft_ || x > this.vpRight_) return;
+ if (w < this.minRectSize_) {
+ if (r - this.mergeStartX_ > this.maxMergeDist_)
+ this.flush();
+ if (!this.merging_) {
+ this.merging_ = true;
+ this.mergeStartX_ = x;
+ this.mergeCurRight_ = r;
+ this.mergedColorId = colorId;
+ } else {
+ this.mergeCurRight_ = r;
+ this.mergedColorId = Math.max(this.mergedColorId, colorId);
+ }
+ } else {
+ if (this.merging_)
+ this.flush();
+ this.ctx_.fillStyle = this.pallette_[colorId];
+ this.ctx_.fillRect(x, this.y_, w, this.h_);
+ }
+ },
+
+ /**
+ * Commits any pending fillRect operations to the underlying graphics
+ * context.
+ */
+ flush: function() {
+ if (this.merging_) {
+ this.ctx_.fillStyle = this.pallette_[this.mergedColorId];
+ this.ctx_.fillRect(this.mergeStartX_, this.y_,
+ this.mergeCurRight_ - this.mergeStartX_, this.h_);
+ this.merging_ = false;
+ }
+ }
+ };
+
+ return {
+ FastRectRenderer: FastRectRenderer
+ };
+
+});
diff --git a/chrome/browser/resources/gpu_internals/info_view.js b/chrome/browser/resources/gpu_internals/info_view.js
index 6bf8340..26a193f 100644
--- a/chrome/browser/resources/gpu_internals/info_view.js
+++ b/chrome/browser/resources/gpu_internals/info_view.js
@@ -1,15 +1,12 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+
/**
- * This view displays options for importing/exporting the captured data. Its
- * primarily usefulness is to allow users to copy-paste their data in an easy
- * to read format for bug reports.
- *
- * - Has a button to generate a text report.
- *
- * - Shows how many events have been captured.
+ * @fileoverview This view displays information on the current GPU
+ * hardware. Its primary usefulness is to allow users to copy-paste
+ * their data in an easy to read format for bug reports.
*/
cr.define('gpu', function() {
/**
@@ -54,14 +51,14 @@ cr.define('gpu', function() {
*/
beginRequestLogMessages: function() {
browserBridge.callAsync('requestLogMessages', undefined,
- (function(messages) {
- if(messages.length != this.logMessages_.length) {
- this.logMessages_ = messages;
- this.refresh();
- }
- // check again in 250 ms
- window.setTimeout(this.beginRequestLogMessages.bind(this), 250);
- }).bind(this));
+ (function(messages) {
+ if (messages.length != this.logMessages_.length) {
+ this.logMessages_ = messages;
+ this.refresh();
+ }
+ // check again in 250 ms
+ window.setTimeout(this.beginRequestLogMessages.bind(this), 250);
+ }).bind(this));
},
/**
@@ -71,18 +68,18 @@ cr.define('gpu', function() {
// Client info
if (this.clientInfo_) {
var chromeVersion = this.clientInfo_.version +
- ' (' + this.clientInfo_.official +
- ' ' + this.clientInfo_.cl +
- ') ' + this.clientInfo_.version_mod;
+ ' (' + this.clientInfo_.official +
+ ' ' + this.clientInfo_.cl +
+ ') ' + this.clientInfo_.version_mod;
this.setTable_('client-info', [
- {
- description: 'Data exported',
- value: (new Date()).toLocaleString()
- },
- {
- description: 'Chrome version',
- value: chromeVersion
- }]);
+ {
+ description: 'Data exported',
+ value: (new Date()).toLocaleString()
+ },
+ {
+ description: 'Chrome version',
+ value: chromeVersion
+ }]);
} else {
this.setText_('client-info', '... loading...');
}
@@ -93,13 +90,13 @@ cr.define('gpu', function() {
var gpuInfo = browserBridge.gpuInfo;
if (gpuInfo) {
if (gpuInfo.blacklistingReasons) {
- blacklistedIndicator.style.display = 'block';
+ blacklistedIndicator.hidden = false;
// Not using jstemplate here because we need to manipulate
// href on the fly
var reasonsEl = blacklistedIndicator.querySelector(
'.blacklisted-reasons');
- reasonsEl.textContent = "";
- for (var i = 0; i < gpuInfo.blacklistingReasons.length; ++i) {
+ reasonsEl.textContent = '';
+ for (var i = 0; i < gpuInfo.blacklistingReasons.length; i++) {
var reason = gpuInfo.blacklistingReasons[i];
var reasonEl = document.createElement('li');
@@ -110,7 +107,7 @@ cr.define('gpu', function() {
reasonEl.appendChild(desc);
// Spacing ':' element
- if(reason.cr_bugs.length + reason.webkit_bugs.length > 0) {
+ if (reason.cr_bugs.length + reason.webkit_bugs.length > 0) {
var tmp = document.createElement('span');
tmp.textContent = ' ';
reasonEl.appendChild(tmp);
@@ -119,59 +116,61 @@ cr.define('gpu', function() {
var nreasons = 0;
var j;
// cr_bugs
- for (j = 0; j < reason.cr_bugs.length; ++j) {
+ for (j = 0; j < reason.cr_bugs.length; ++j) {
if (nreasons > 0) {
var tmp = document.createElement('span');
tmp.textContent = ', ';
reasonEl.appendChild(tmp);
}
- var lnk = document.createElement('a');
+ var link = document.createElement('a');
var bugid = parseInt(reason.cr_bugs[j]);
- lnk.textContent = bugid;
- lnk.href = 'http://crbug.com/' + bugid;
- reasonEl.appendChild(lnk);
- nreasons += 1;
+ link.textContent = bugid;
+ link.href = 'http://crbug.com/' + bugid;
+ reasonEl.appendChild(link);
+ nreasons ++;
}
- for (j = 0; j < reason.webkit_bugs.length; ++j) {
+ for (j = 0; j < reason.webkit_bugs.length; ++j) {
if (nreasons > 0) {
var tmp = document.createElement('span');
tmp.textContent = ', ';
reasonEl.appendChild(tmp);
}
- var lnk = document.createElement('a');
+ var link = document.createElement('a');
var bugid = parseInt(reason.webkit_bugs[j]);
- lnk.textContent = bugid;
+ link.textContent = bugid;
- lnk.href = 'https://bugs.webkit.org/show_bug.cgi?id=' + bugid;
- reasonEl.appendChild(lnk);
- nreasons += 1;
+ link.href = 'https://bugs.webkit.org/show_bug.cgi?id=' + bugid;
+ reasonEl.appendChild(link);
+ nreasons ++;
}
reasonsEl.appendChild(reasonEl);
}
} else {
- blacklistedIndicator.style.display = 'none';
+ blacklistedIndicator.hidden = true;
}
this.setTable_('basic-info', gpuInfo.basic_info);
if (gpuInfo.diagnostics) {
- diagnostics.style.display = 'block';
+ diagnostics.hidden = false;
this.setTable_('diagnostics-table', gpuInfo.diagnostics);
} else {
- diagnostics.style.display = 'none';
+ diagnostics.hidden = true;
}
} else {
- blacklistedIndicator.style.display = 'none';
+ blacklistedIndicator.hidden = true;
this.setText_('basic-info', '... loading ...');
- diagnostics.style.display = 'none';
+ diagnostics.hidden = true;
}
// Log messages
- jstProcess(new JsEvalContext({values: this.logMessages_}),
- document.getElementById('log-messages'));
+ if (!browserBridge.debugMode) {
+ jstProcess(new JsEvalContext({values: this.logMessages_}),
+ document.getElementById('log-messages'));
+ }
},
setText_: function(outputElementId, text) {
@@ -196,4 +195,4 @@ cr.define('gpu', function() {
return {
InfoView: InfoView
};
-}); \ No newline at end of file
+});
diff --git a/chrome/browser/resources/gpu_internals/overlay.js b/chrome/browser/resources/gpu_internals/overlay.js
index 9a87d7d..720065c 100644
--- a/chrome/browser/resources/gpu_internals/overlay.js
+++ b/chrome/browser/resources/gpu_internals/overlay.js
@@ -1,8 +1,9 @@
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+
+
/**
- *
* @fileoverview Implements an element that is hidden by default, but
* when shown, dims and (attempts to) disable the main document.
*
@@ -22,7 +23,7 @@ cr.define('gpu', function() {
*/
var OverlayRoot = cr.ui.define('div');
OverlayRoot.prototype = {
- __proto__ : HTMLDivElement.prototype,
+ __proto__: HTMLDivElement.prototype,
decorate: function() {
this.classList.add('overlay-root');
this.visible = false;
@@ -136,7 +137,7 @@ cr.define('gpu', function() {
var Overlay = cr.ui.define('div');
Overlay.prototype = {
- __proto__ : HTMLDivElement.prototype,
+ __proto__: HTMLDivElement.prototype,
/**
* Initializes the overlay element.
@@ -171,6 +172,6 @@ cr.define('gpu', function() {
Overlay.prototype.onVisibleChanged_);
return {
- Overlay : Overlay
+ Overlay: Overlay
};
-}); \ No newline at end of file
+});
diff --git a/chrome/browser/resources/gpu_internals/overlay_test.html b/chrome/browser/resources/gpu_internals/overlay_test.html
index 34de09c..c06572c 100644
--- a/chrome/browser/resources/gpu_internals/overlay_test.html
+++ b/chrome/browser/resources/gpu_internals/overlay_test.html
@@ -1,4 +1,9 @@
<!DOCTYPE html>
+<!--
+Copyright (c) 2010 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
<html>
<head>
<title></title>
diff --git a/chrome/browser/resources/gpu_internals/simulated_trace_data.js b/chrome/browser/resources/gpu_internals/simulated_trace_data.js
new file mode 100644
index 0000000..70625c4
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/simulated_trace_data.js
@@ -0,0 +1,30 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function getTimelineTestData1() {
+ return [{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859659826,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859659832,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859661997,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859662000,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859664086,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859664090,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859666156,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859666159,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859667975,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859667978,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512859668808,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859669128,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512859669130,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512859669509,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854410,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854414,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854722,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854724,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854973,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860854974,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855225,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855227,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855487,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855488,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855769,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860855770,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960145,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960149,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960452,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960454,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960728,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860960729,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860961020,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860961021,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860961699,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860961701,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962036,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962038,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962310,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962312,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962624,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860962626,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860963445,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860963448,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860963825,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860963826,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964016,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964017,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964198,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964200,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964379,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964381,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964683,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512860964685,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512860968496,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861066150,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861066155,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861069423,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861069426,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861071995,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861071997,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861079859,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861079862,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080180,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080182,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080483,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080485,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080807,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861080809,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081125,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081127,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081420,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081422,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081745,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861081747,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082149,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082151,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082364,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082366,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082604,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082606,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082881,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861082883,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083158,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083160,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083428,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083431,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083701,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083703,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083976,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861083978,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084251,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084254,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084498,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084500,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084718,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084720,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084930,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861084931,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085141,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085142,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085364,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085365,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085574,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085576,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085786,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085787,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085994,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861085996,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086193,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086194,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086406,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086408,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086885,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861086887,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861087571,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861087573,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088016,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088018,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088449,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088451,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088892,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861088895,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861089277,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861089279,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861090075,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861090077,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861119271,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861119275,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861119840,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861119843,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861120264,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861120267,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861120680,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861120683,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861121136,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861121138,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861131512,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861131515,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861131905,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861131907,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861132609,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861132612,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861133713,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861133715,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861134096,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861134098,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861135157,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861135159,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861135955,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861135958,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138448,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138450,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138694,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138696,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138934,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861138936,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861139748,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861139750,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861140730,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861140732,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861143608,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861143610,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861143892,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861143894,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861144190,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861144192,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861144491,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861144493,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861145536,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861145538,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861146520,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861146521,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149321,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149323,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149636,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149638,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149938,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861149939,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861150287,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861150288,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861151335,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861151337,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861152425,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861152428,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861155587,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861155590,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861156941,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861156943,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861158400,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861158402,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162165,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162167,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162531,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162533,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162793,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861162795,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163001,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163002,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163255,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163257,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163526,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163528,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163826,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861163828,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861164117,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861164119,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861164994,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861164996,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165279,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165281,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165583,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165585,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165851,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861165853,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861166666,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861166668,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861167559,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861167561,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170074,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170076,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170361,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170363,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170586,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170587,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170825,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861170827,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861171671,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861171673,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861172583,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861172585,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175023,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175025,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175296,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175298,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175524,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861175526,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861231280,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861231285,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861242845,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861242850,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861244446,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861244450,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861246001,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861246004,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861247490,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861247495,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861247769,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861248036,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861248039,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861250274,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861261691,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861261694,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861263124,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861263127,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861263806,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861263809,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861265905,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861265908,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861266399,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861266402,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861266871,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861266874,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861268107,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861268109,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861268208,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861268694,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861268696,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861269384,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861302618,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861302622,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861303358,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861303360,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861303731,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861303733,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861304304,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861304307,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861304417,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861304733,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861304735,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861304986,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861312990,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861312992,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861313636,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861313638,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861314025,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861314027,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861315249,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861315251,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861315344,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861315681,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861315684,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861315979,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861458080,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861458084,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861458278,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861610521,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861610526,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861611363,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861611364,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861611802,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861611804,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861612541,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861612543,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861612620,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861612909,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861612911,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861613127,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861646792,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861646796,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861647481,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861647483,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861647858,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861647860,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861648802,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861648804,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861648894,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861649232,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861649234,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861649527,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861701828,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861701832,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861702646,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861702649,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861745582,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861745586,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861747100,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861747103,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861747833,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861747835,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861750695,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861750697,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861750797,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861751158,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861751160,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861751459,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861910507,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861910511,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861910713,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861953912,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861953915,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861954665,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861956699,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512861956703,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512861956903,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862210647,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862210652,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862214339,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862214343,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862214746,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862214748,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862216914,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862216918,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862217345,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862217347,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862219350,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862219352,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862219805,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862219808,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862222185,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862222188,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862222652,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862222654,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862400629,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862400634,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862405957,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862405959,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862407936,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862407938,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862408751,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862408754,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862409891,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862409893,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862409992,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862410367,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862410369,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862410614,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862412227,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862412230,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862414388,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862414391,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862414846,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862414849,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862415249,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862415251,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862416157,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862416159,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862416241,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862416545,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862416547,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862416884,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862417888,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862417890,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862419625,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862419627,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862419891,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862419893,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862420117,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862420119,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862420937,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862420940,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862421013,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862421406,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862421409,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862421669,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862422741,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862422744,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862424447,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862424449,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862424821,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862424823,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862425176,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862425178,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862426145,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862426147,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862426230,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862426521,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862426523,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862426785,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862427686,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862427688,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862429351,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862429353,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862429689,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862429692,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862430007,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862430010,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862430874,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862430876,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862430953,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862431274,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862431277,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862431487,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862432403,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862432405,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434036,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434038,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434321,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434323,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434587,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862434589,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862435401,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862435403,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862435466,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862435720,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862435721,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862435917,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862436907,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862436909,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862438515,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862438517,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862438897,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862438899,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862439147,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862439148,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862439965,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862439967,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862440039,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862440336,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862440340,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862440529,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862441441,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862441443,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862442859,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862442861,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862443097,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862443098,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862443323,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862443325,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862444056,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862444058,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862444214,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862444497,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862444499,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862444689,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862445523,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862445526,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447035,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447037,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447271,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447273,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447498,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862447500,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862448254,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862448256,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862448342,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862448627,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862448629,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862448933,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862449789,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862449790,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451294,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451296,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451555,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451557,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451791,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862451793,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862452725,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862452728,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862452808,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862453085,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862453086,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862453297,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862454099,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862454101,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862455517,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862455519,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862455771,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862455773,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862456016,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862456017,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862456715,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862456717,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862456777,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862457045,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862457046,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862457253,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862458037,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862458039,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459485,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459487,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459714,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459716,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459935,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862459937,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862460913,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862460915,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862460976,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862461238,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862461240,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862461492,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862462272,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862462273,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862463734,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862463736,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464000,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464002,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464241,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464242,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464935,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862464936,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862464997,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862465259,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862465261,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862465496,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862466362,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862466364,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862467926,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862467928,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862468252,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862468257,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862468520,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862468522,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862469227,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862469229,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862469292,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862469575,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862469577,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862469822,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862470614,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862470616,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472157,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472159,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472401,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472403,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472662,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862472663,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862473389,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862473391,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862473452,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862473748,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862473750,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862473966,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862474768,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862474770,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476288,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476289,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476572,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476574,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476838,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862476840,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862477558,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862477560,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862477620,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862477906,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862477908,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862478167,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862478935,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862478938,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862480440,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862480442,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862480816,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862480818,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862481165,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862481167,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862482011,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862482015,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862482130,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862482427,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862482429,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862482628,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862483342,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862483344,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862484730,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862484732,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862484921,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862484923,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485100,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485101,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485742,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485743,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862485806,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485990,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862485991,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862486252,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862486959,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862486961,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488353,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488355,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488563,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488565,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488762,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862488764,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862489429,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862489430,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862489492,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862489721,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862489723,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862489890,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862490726,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862490729,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492323,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492325,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492582,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492584,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492783,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862492785,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862493567,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862493569,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862493638,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862493846,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862493848,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862494051,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862494923,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862494925,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496570,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496572,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496782,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496783,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496974,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862496976,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862497689,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862497691,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862497755,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862497969,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862497971,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862498158,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862498992,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862498994,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500550,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500552,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500772,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500774,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500974,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862500975,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862501732,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862501734,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862501798,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862502035,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862502037,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862502262,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862503178,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862503180,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862504846,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862504848,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862505080,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862505082,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862505302,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862505304,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862506047,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862506049,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862506116,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862506373,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862506375,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862506562,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862507413,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862507415,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862508957,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862508959,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862509187,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862509189,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862509405,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862509407,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862510145,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862510147,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862510213,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862510464,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862510466,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862510647,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862511819,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862511821,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513366,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513368,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513596,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513598,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513817,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862513819,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862514563,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862514565,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862514631,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862514877,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862514879,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862515060,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862515915,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862515917,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862517500,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862517502,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862517817,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862517819,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862518081,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862518083,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862518823,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862518825,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862518895,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862519134,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862519136,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862519315,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862520377,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862520379,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522032,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522034,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522263,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522265,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522473,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862522475,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862523208,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862523210,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862523278,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862523526,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862523528,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862523714,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862524495,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862524497,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862526068,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862526070,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862526363,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862526365,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862527797,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862527799,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862528552,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862528554,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862528621,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862528882,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862528884,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862529068,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862529885,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862529888,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531473,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531475,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531714,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531716,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531976,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862531978,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862532729,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862532731,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862532798,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862533055,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862533057,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862533246,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862534120,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862534122,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862535724,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862535726,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862535961,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862535963,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862536189,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862536191,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862536962,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862536964,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862537031,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862537285,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862537287,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862537471,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862538313,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862538315,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862539863,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862539865,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862540106,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862540108,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862540354,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862540356,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862541107,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862541109,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862541178,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862541490,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862541492,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862541837,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862542665,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862542668,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544290,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544293,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544680,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544682,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544978,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862544980,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862545818,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862545819,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862545904,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862546196,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862546198,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862546472,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862547301,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862547303,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549023,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549025,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549309,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549311,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549586,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862549588,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862550415,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862550418,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862550484,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862550797,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862550799,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862550981,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862551904,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862551906,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862554321,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862554325,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862554701,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862554703,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862555042,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862555044,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862555983,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862555985,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862556058,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862556333,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862556335,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862556504,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862557469,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862557471,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862559703,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862559705,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862559999,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862560008,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862560298,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862560301,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862561376,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862561378,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862561476,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862561767,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862561769,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862562092,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862563362,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862563364,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565187,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565189,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565439,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565441,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565666,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862565669,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862566538,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862566540,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862566620,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862566890,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862566892,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862567145,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862567909,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862567911,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862569664,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862569667,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862569909,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862569911,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862570137,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862570139,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862570968,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862570970,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862571047,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862571285,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862571287,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862571494,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862572276,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862572278,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574184,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574187,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574443,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574445,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574672,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862574674,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862575494,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862575496,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862575574,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862575815,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862575817,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862576020,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862576999,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862577002,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862578872,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862578875,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862579156,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862579158,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862579421,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862579423,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862580363,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862580367,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862580474,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862580735,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862580738,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862581027,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862581860,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862581863,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594486,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594489,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594749,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594751,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594997,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862594999,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862595828,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862595830,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862595912,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862596153,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862596155,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862596454,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862597805,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862597807,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862599524,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862599526,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862599844,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862599846,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862600061,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862600062,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862600730,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862600732,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862600798,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862601021,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862601023,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862601210,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862601988,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862601990,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862603510,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862603512,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862603761,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862603763,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862604043,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862604045,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862604926,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862604929,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862605008,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862605330,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862605333,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862605537,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862606517,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862606519,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862608786,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862608789,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862609182,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862609185,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862609556,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862609558,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862610603,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862610606,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862610692,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862611127,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862611129,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862611484,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862612698,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862612701,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615029,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615032,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615427,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615430,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615757,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862615759,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862617433,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862617435,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862617507,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862617871,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862617874,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862618218,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862619819,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862619822,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622072,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622074,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622468,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622471,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622874,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862622877,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862624048,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862624050,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862624153,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862624551,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862624554,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862624779,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862625924,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862625926,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862628115,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862628117,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862628848,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862628851,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862629258,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862629260,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862630397,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862630400,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862630931,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862631289,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862631291,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862631685,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862632838,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862632841,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635191,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635194,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635522,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635525,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635822,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862635825,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862638038,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862638041,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862638253,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862638597,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862638600,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22630,'tid':22630,'ts':2512862638891,'ph':'I','name':'GpuCommandBufferStub::OnSwapBuffers','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862639893,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862639896,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862641935,'ph':'B','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'PERF','pid':22630,'tid':22630,'ts':2512862641938,'ph':'E','name':'GPUProcessor::ProcessCommands','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858147354,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858147358,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858149698,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858149703,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858321033,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858321037,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858322248,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512858322253,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859601588,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859601592,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859614357,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859614361,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859625114,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859625118,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859670017,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859670020,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859670289,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859670291,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859671166,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859671167,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859681396,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859681401,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859681449,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512859681450,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22600,'ts':2512860762219,'ph':'B','name':'GpuProcessHost::Synchronize','args':{'this':'0x0x7fffdcd48400'}},{'cat':'INFO','pid':22574,'tid':22600,'ts':2512860762225,'ph':'E','name':'GpuProcessHost::Synchronize','args':{}},{'cat':'INFO','pid':22574,'tid':22600,'ts':2512860762729,'ph':'B','name':'GpuProcessHost::Synchronize','args':{'this':'0x0x7fffdcd48400'}},{'cat':'INFO','pid':22574,'tid':22600,'ts':2512860762733,'ph':'E','name':'GpuProcessHost::Synchronize','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861187753,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861187758,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861257716,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861257721,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861267861,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861267864,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861269840,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861269844,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861304062,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861304065,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861306142,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861306145,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861314967,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861314970,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861316575,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861316579,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861457706,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861457710,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861458827,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861458830,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861612273,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861612276,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861613641,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861613644,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861648417,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861648420,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861650017,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861650020,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861750333,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861750337,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861752397,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861752400,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861910035,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861910038,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861911277,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861911280,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861953442,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861953447,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861955407,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861955410,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861956433,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861956435,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861957536,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512861957539,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862409596,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862409599,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862411123,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862411125,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862415947,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862415949,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862417376,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862417379,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862420677,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862420679,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862422209,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862422211,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862425896,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862425898,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862427253,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862427256,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862430663,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862430665,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862431971,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862431973,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862435220,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862435222,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862436317,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862436319,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862439787,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862439788,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862440975,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862440977,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862443897,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862443899,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862445069,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862445071,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862448053,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862448054,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862449375,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862449379,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862452473,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862452475,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862453674,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862453677,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862456531,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862456533,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862457617,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862457620,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862460728,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862460729,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862461857,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862461860,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862464754,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862464755,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862465818,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862465821,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862469044,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862469046,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862470215,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862470218,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862473206,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862473208,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862474354,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862474357,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862477374,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862477375,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862478528,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862478530,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862481769,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862481771,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862482962,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862482965,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862485594,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862485596,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862486568,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862486571,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862489280,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862489282,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862490326,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862490329,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862493404,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862493406,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862494510,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862494513,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862497530,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862497532,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862498582,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862498585,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862501573,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862501575,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862502765,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862502767,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862505883,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862505885,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862506999,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862507002,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862509980,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862509982,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862511046,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862511048,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862514400,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862514402,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862515504,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862515506,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862518659,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862518661,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862519820,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862519823,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862523049,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862523051,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862524069,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862524072,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862528382,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862528384,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862529439,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862529441,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862532560,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862532562,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862533641,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862533644,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862536790,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862536792,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862537873,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862537876,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862540917,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862540919,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862542233,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862542235,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862545631,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862545633,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862546843,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862546846,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862550225,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862550228,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862551396,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862551399,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862555772,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862555774,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862556947,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862556951,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862561072,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862561074,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862562896,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862562899,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862566316,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862566319,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862567446,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862567449,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862570786,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862570788,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862571785,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862571788,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862575311,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862575313,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862576492,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862576495,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862580074,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862580076,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862581359,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862581362,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862595576,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862595578,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862596878,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862596881,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862600582,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862600584,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862601589,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862601591,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862604739,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862604741,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862606040,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862606042,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862610322,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862610325,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862612068,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862612072,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862616506,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862616508,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862619218,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862619221,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862623700,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862623703,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862625318,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862625322,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862630074,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862630077,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862632234,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862632238,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862637157,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862637160,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862639318,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862639321,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862645055,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862645058,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862868352,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862868357,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862873551,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862873553,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862874439,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862874440,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862875991,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862875993,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862883445,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862883447,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862884719,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862884722,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862884855,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862884858,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862889119,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862889121,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862890733,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862890736,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862895387,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862895389,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862897046,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862897049,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862901085,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862901087,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862902444,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862902447,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862906318,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862906321,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862907654,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862907657,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862911734,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862911736,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862913269,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862913272,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862917312,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862917314,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862918654,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862918658,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862922559,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862922561,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862924420,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862924423,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862929175,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862929179,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862930664,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862930667,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862934768,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862934771,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862936073,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862936076,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862940080,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862940083,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862941416,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862941419,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862945293,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862945295,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862946705,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862946708,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862950698,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862950700,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862952212,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862952215,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862956242,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862956244,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862957878,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862957882,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862962284,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862962286,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862963525,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862963529,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862967433,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862967435,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862968806,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862968809,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862972736,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862972739,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862974130,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862974133,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862978291,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862978293,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862979826,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862979829,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862983826,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862983829,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862985029,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862985032,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862989059,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862989061,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862990540,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862990543,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862994652,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862994656,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862996581,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512862996584,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863000572,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863000575,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863001828,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863001832,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863005787,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863005789,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863006982,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863006985,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863010889,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863010891,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863012255,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863012258,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863016783,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863016786,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863018111,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863018114,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863201833,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863201836,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863203223,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863203225,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863211766,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863211768,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863213073,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863213075,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863216987,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863216989,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863218083,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863218085,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863220816,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863220817,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863221953,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863221956,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863225776,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863225778,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863227106,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863227109,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863231318,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863231321,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863232415,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863232418,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863236362,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863236364,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863237638,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863237641,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863241658,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863241661,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863243055,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863243066,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863246743,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863246745,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863247742,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863247745,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863252410,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863252413,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863253906,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863253909,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863258165,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863258167,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863259848,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863259852,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863264172,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863264174,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863265752,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863265755,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863270291,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863270293,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863271864,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863271868,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863276183,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863276185,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863277759,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863277762,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863282099,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863282102,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863283673,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863283677,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863288039,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863288041,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863289507,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863289510,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863293537,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863293539,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863294850,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863294860,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863298812,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863298815,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863300191,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863300194,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863304501,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863304504,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863305878,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863305881,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863309814,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863309817,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863311376,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863311380,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863315286,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863315289,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863316679,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863316683,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863320610,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863320612,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863321928,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863321932,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863326069,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863326072,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863327318,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863327321,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863331190,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863331192,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863332704,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863332708,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863336702,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863336704,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863338016,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863338019,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863342309,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863342311,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863344126,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863344129,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863348080,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863348082,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863349868,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863349871,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863354562,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863354565,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863355851,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863355854,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863359618,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863359620,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863360847,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863360850,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863365761,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863365763,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863367362,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863367365,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863371599,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863371603,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863373311,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863373314,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863377626,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863377628,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863379234,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863379237,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863383612,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863383614,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863384941,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863384945,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863395031,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863395033,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863396400,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863396403,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863402357,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863402360,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863403644,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863403647,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863410488,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863410498,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863412571,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512863412574,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512864352992,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512864352996,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865806055,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865806059,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865807681,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865807685,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865909928,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865909930,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865911625,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512865911629,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866387305,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866387309,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866399731,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866399736,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866665451,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866665454,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866666767,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866666771,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866803213,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866803216,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866804363,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866804367,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866824855,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866824857,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866826513,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512866826516,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867168291,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867168297,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867170054,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867170059,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867177879,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867177882,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867179353,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867179364,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867235124,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867235127,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867236008,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867236011,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867612778,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867612782,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867614104,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867614108,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867693043,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867693046,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867694016,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512867694020,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512868073134,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512868073138,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512868075167,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512868075171,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512869989009,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512869989014,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512869990208,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512869990211,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870052931,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870052936,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870054052,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870054055,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870585043,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870585047,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870586297,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870586300,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870657605,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870657607,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870659056,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870659060,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870671494,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870671496,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870672777,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870672780,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870679378,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870679381,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870680888,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870680892,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870687790,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870687792,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870689337,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870689341,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870694092,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870694095,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870695568,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870695572,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870699811,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870699813,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870701509,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870701513,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870703883,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870703887,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870705563,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870705567,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870709738,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870709742,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870711331,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870711334,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870715538,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870715540,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870716694,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870716698,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870719500,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870719502,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870720852,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870720856,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870725592,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870725595,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870726985,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870726989,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870729443,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870729445,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870730746,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870730749,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870735447,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870735450,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870736827,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870736831,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870741433,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870741435,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870743680,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870743684,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870746206,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870746209,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870747822,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870747826,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870749759,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870749761,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870751572,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870751576,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870755581,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870755583,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870756881,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870756885,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870759590,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870759592,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870760859,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870760862,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870764055,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870764058,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870765303,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870765307,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870767448,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870767450,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870768724,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870768728,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870771496,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870771504,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870772849,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870772852,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870775380,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870775382,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870776624,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870776627,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870779506,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870779509,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870780754,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870780757,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870783433,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870783435,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870784713,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870784717,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870787620,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870787622,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870788943,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870788947,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870790053,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870790056,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870791388,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870791392,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870793798,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870793800,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870795354,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870795357,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870797407,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870797409,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870798711,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870798714,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870801383,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870801385,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870803000,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870803003,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870804104,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870804112,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870805604,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870805608,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870807567,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870807569,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870808954,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870808957,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870811596,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870811598,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870813145,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870813149,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870814252,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870814254,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870815659,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870815662,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870817601,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870817603,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870818967,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870818970,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870821565,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870821567,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870823106,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870823110,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870825505,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870825507,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870826963,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870826966,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870829537,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870829540,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870831273,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870831277,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870832697,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870832699,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870834082,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870834085,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870835997,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870836000,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870837432,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870837436,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870839501,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870839503,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870840930,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870840934,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870843653,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870843655,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870845445,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870845448,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870851206,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870851209,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870853397,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870853402,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870855346,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870855349,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870856906,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870856909,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870858065,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870858067,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870859474,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870859477,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870863593,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870863596,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870865273,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870865277,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870867712,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870867714,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870869607,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870869610,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870875603,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870875605,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870877255,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870877259,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870883756,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870883759,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870885581,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870885591,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870889746,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870889749,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870891579,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870891583,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870899778,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870899780,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870901787,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870901791,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870915746,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870915748,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870917368,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870917372,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870927676,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870927679,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870929278,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870929282,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870943619,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870943621,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870945431,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870945435,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870959779,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870959781,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870961597,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870961600,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870989918,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870989920,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870991664,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512870991668,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512871897558,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512871897562,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512871899071,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512871899075,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872259505,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872259509,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872280706,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872280724,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872383491,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872383494,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872384934,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872384938,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872386000,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872386003,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872387492,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872387495,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872441821,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872441825,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872443527,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512872443531,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873123531,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873123535,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873124829,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873124833,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873439537,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873439540,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873440729,'ph':'B','name':'RenderWidget::DoDeferredUpdate','args':{}},{'cat':'INFO','pid':22574,'tid':22605,'ts':2512873440731,'ph':'E','name':'RenderWidget::DoDeferredUpdate','args':{}}];
+}
+
+function getTimelineTestData2() {
+ return [
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':826,'ph':'B','name':'A','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':827,'ph':'B','name':'Asub','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':828,'ph':'E','name':'Asub','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':829,'ph':'B','name':'Asub','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':832,'ph':'E','name':'Asub','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':833,'ph':'E','name':'','args':{}},
+
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':840,'ph':'B','name':'A','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':848,'ph':'E','name':'A','args':{}},
+
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':850,'ph':'B','name':'B','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22630,'ts':854,'ph':'E','name':'B','args':{}},
+
+ {'cat':'PERF','pid':22630,'tid':22631,'ts':827,'ph':'B','name':'A','args':{}},
+ {'cat':'PERF','pid':22630,'tid':22631,'ts':854,'ph':'E','name':'A','args':{}}
+ ];
+
+
+}
+
diff --git a/chrome/browser/resources/gpu_internals/sorted_array_utils.js b/chrome/browser/resources/gpu_internals/sorted_array_utils.js
new file mode 100644
index 0000000..edb4349
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/sorted_array_utils.js
@@ -0,0 +1,157 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview Helper functions for doing intersections and iteration
+ * over sorted arrays and intervals.
+ *
+ */
+cr.define('gpu', function() {
+ /**
+ * Finds the first index in the array whose value is >= loVal.
+ *
+ * The key for the search is defined by the mapFn. This array must
+ * be prearranged such that ary.map(mapFn) would also be sorted in
+ * ascending order.
+ *
+ * @param {Array} ary An array of arbitrary objects.
+ * @param {function():*} mapFn Callback that produces a key value
+ * from an element in ary.
+ * @param {number} loVal Value for which to search.
+ * @return {Number} Offset o into ary where all ary[i] for i <= o
+ * are < loVal, or ary.length if loVal is greater than all elements in
+ * the array.
+ */
+ function findLowIndexInSortedArray(ary, mapFn, loVal) {
+ if (ary.length == 0)
+ return 1;
+
+ var low = 0;
+ var high = ary.length - 1;
+ var i, comparison;
+ var hitPos = -1;
+ while (low <= high) {
+ i = Math.floor((low + high) / 2);
+ comparison = mapFn(ary[i]) - loVal;
+ if (comparison < 0) {
+ low = i + 1; continue;
+ } else if (comparison > 0) {
+ high = i - 1; continue;
+ } else {
+ hitPos = i;
+ high = i - 1;
+ }
+ }
+ // return where we hit, or failing that the low pos
+ return hitPos != -1 ? hitPos : low;
+ }
+
+ /**
+ * Finds an index in an array of intervals that either
+ * intersects the provided loVal, or if no intersection is found,
+ * the index of the first interval whose start is > loVal.
+ *
+ * The array of intervals is defined implicitly via two mapping functions
+ * over the provided ary. mapLoFn determines the lower value of the interval,
+ * mapWidthFn the width. Intersection is lower-inclusive, e.g. [lo,lo+w).
+ *
+ * The array of intervals formed by this mapping must be non-overlapping and
+ * sorted in ascending order by loVal.
+ *
+ * @param {Array} ary An array of objects that can be converted into sorted
+ * nonoverlapping ranges [x,y) using the mapLoFn and mapWidth.
+ * @param {function():*} mapLoFn Callback that produces the low value for the
+ * interval represented by an element in the array.
+ * @param {function():*} mapLoFn Callback that produces the width for the
+ * interval represented by an element in the array.
+ * @param {number} loVal The low value for the search.
+ * @return {Number} An index in the array that intersects or is first-above
+ * loVal, -1 if none found and loVal is below than all the intervals,
+ * ary.length if loVal is greater than all the intervals.
+ */
+ function findLowIndexInSortedIntervals(ary, mapLoFn, mapWidthFn, loVal) {
+ var first = findLowIndexInSortedArray(ary, mapLoFn, loVal);
+ if (first == 0) {
+ if (loVal >= mapLoFn(ary[0]) &&
+ loVal < mapLoFn(ary[0] + mapWidthFn(ary[0]))) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if (first <= ary.length &&
+ loVal >= mapLoFn(ary[first - 1]) &&
+ loVal < mapLoFn(ary[first - 1]) + mapWidthFn(ary[first - 1])) {
+ return first - 1;
+ } else {
+ return ary.length;
+ }
+ }
+
+ /**
+ * Calls cb for all intervals in the implicit array of intervals
+ * defnied by ary, mapLoFn and mapHiFn that intersect the range
+ * [loVal,hiVal)
+ *
+ * This function uses the same scheme as findLowIndexInSortedArray
+ * to define the intervals. The same restrictions on sortedness and
+ * non-overlappingness apply.
+ *
+ * @param {Array} ary An array of objects that can be converted into sorted
+ * nonoverlapping ranges [x,y) using the mapLoFn and mapWidth.
+ * @param {function():*} mapLoFn Callback that produces the low value for the
+ * interval represented by an element in the array.
+ * @param {function():*} mapLoFn Callback that produces the width for the
+ * interval represented by an element in the array.
+ * @param {number} The low value for the search, inclusive.
+ * @param {number} loVal The high value for the search, non inclusive.
+ * @param {function():*} cb The function to run for intersecting intervals.
+ */
+ function iterateOverIntersectingIntervals(ary, mapLoFn, mapWidthFn, loVal,
+ hiVal, cb) {
+ if (loVal > hiVal) return;
+
+ var i = findLowIndexInSortedArray(ary, mapLoFn, loVal);
+ if (i == -1) {
+ return;
+ }
+ if (i > 0) {
+ var hi = mapLoFn(ary[i - 1]) + mapWidthFn(ary[i - 1]);
+ if (hi >= loVal) {
+ cb(ary[i - 1]);
+ }
+ }
+ if (i == ary.length) {
+ return;
+ }
+
+ for(var n = ary.length; i < n; i++) {
+ var lo = mapLoFn(ary[i]);
+ if (lo >= hiVal)
+ break;
+ cb(ary[i]);
+ }
+ }
+
+ /**
+ * Non iterative version of iterateOverIntersectingIntervals.
+ *
+ * @return {Array} Array of elements in ary that intersect loVal, hiVal.
+ */
+ function getIntersectingIntervals(ary, mapLoFn, mapWidthFn, loVal, hiVal) {
+ var tmp = [];
+ iterateOverIntersectingIntervals(ary, mapLoFn, mapWidthFn, loVal, hiVal,
+ function(d) {
+ tmp.push(d);
+ });
+ return tmp;
+ }
+
+ return {
+ findLowIndexInSortedArray: findLowIndexInSortedArray,
+ findLowIndexInSortedIntervals: findLowIndexInSortedIntervals,
+ iterateOverIntersectingIntervals: iterateOverIntersectingIntervals,
+ getIntersectingIntervals: getIntersectingIntervals
+ };
+});
diff --git a/chrome/browser/resources/gpu_internals/tab_control.css b/chrome/browser/resources/gpu_internals/tab_control.css
index 4d7b7f8..29c7538 100644
--- a/chrome/browser/resources/gpu_internals/tab_control.css
+++ b/chrome/browser/resources/gpu_internals/tab_control.css
@@ -28,7 +28,6 @@ found in the LICENSE file.
-webkit-box-flex: 1;
display: -webkit-box;
-webkit-box-orient: vertical;
- -webkit-box-pack: stretch;
overflow: auto;
}
diff --git a/chrome/browser/resources/gpu_internals/tab_control.js b/chrome/browser/resources/gpu_internals/tab_control.js
index 6c4a120..dcd3e0a 100644
--- a/chrome/browser/resources/gpu_internals/tab_control.js
+++ b/chrome/browser/resources/gpu_internals/tab_control.js
@@ -1,8 +1,9 @@
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+
+
/**
- *
* @fileoverview This implements a tab control.
*
* An individual tab within a tab control is, unsurprisingly, a Tab.
@@ -36,7 +37,7 @@ cr.define('gpu', function() {
Tab.prototype = {
__proto__: HTMLDivElement.prototype,
- decorate : function() {
+ decorate: function() {
}
};
@@ -83,7 +84,7 @@ cr.define('gpu', function() {
this.onTabChanged_();
},
- onTabChanged_ : function(e) {
+ onTabChanged_: function(e) {
if (this.tab_) {
this.textContent = this.tab_.label;
this.selected = this.tab_.selected;
@@ -109,7 +110,7 @@ cr.define('gpu', function() {
TabControl.prototype = {
__proto__: HTMLDivElement.prototype,
- selectedTab_ : null,
+ selectedTab_: null,
/**
* Initializes the tab control element.
@@ -137,7 +138,7 @@ cr.define('gpu', function() {
/**
* Adds an element to the tab control.
*/
- addTab : function(tab) {
+ addTab: function(tab) {
if (tab.parentNode == this.tabs_)
throw Error('Tab is already part of this control.');
if (!(tab instanceof Tab))
@@ -160,7 +161,7 @@ cr.define('gpu', function() {
* Removes a tab from the tab control.
* changing the selected tab if needed.
*/
- removeTab : function(tab) {
+ removeTab: function(tab) {
if (tab.parentNode != this.tabs_)
throw new Error('Tab is not attached to this control.');
@@ -176,7 +177,7 @@ cr.define('gpu', function() {
this.tabs_.removeChild(tab);
tab.tabStripButton_.parentNode.removeChild(
- tab.tabStripButton_);
+ tab.tabStripButton_);
},
/**
@@ -191,7 +192,7 @@ cr.define('gpu', function() {
*/
set selectedTab(tab) {
if (tab.parentNode != this.tabs_)
- throw Error("Tab is not part of this TabControl.");
+ throw Error('Tab is not part of this TabControl.');
tab.selected = true;
},
@@ -243,7 +244,7 @@ cr.define('gpu', function() {
};
return {
- Tab : Tab,
+ Tab: Tab,
TabControl: TabControl
};
-}); \ No newline at end of file
+});
diff --git a/chrome/browser/resources/gpu_internals/timeline.css b/chrome/browser/resources/gpu_internals/timeline.css
new file mode 100644
index 0000000..3de191b
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline.css
@@ -0,0 +1,51 @@
+/*
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+*/
+.timeline {
+ -webkit-user-select: none;
+}
+
+.timeline-track {
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ background-color: white;
+ padding-right: 5px;
+ margin: 0;
+ padding: 0;
+ height: 18px;
+}
+
+.timeline-drag-box-hidden {
+ display: none;
+}
+
+.timeline-drag-box {
+ position: fixed;
+ background-color: rgba(0, 0, 255, 0.25);
+ border: 1px solid rgb(0, 0, 96);
+}
+
+.timeline-track:not(:first-child) {
+ border-top: 1px solid #D0D0D0
+}
+
+.timeline-track-title {
+ text-align: right;
+ overflow: visible;
+ width: 150px;
+ padding-right: 5px;
+}
+
+.timeline-track-canvas-container {
+ -webkit-box-flex: 1;
+ width: 100%;
+}
+
+.timeline-track-canvas {
+ -webkit-box-flex: 1;
+ width: 100%;
+ height: 100%;
+}
diff --git a/chrome/browser/resources/gpu_internals/timeline.js b/chrome/browser/resources/gpu_internals/timeline.js
new file mode 100644
index 0000000..997cb9e
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline.js
@@ -0,0 +1,421 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview Interactive visualizaiton of TimelineModel objects
+ * based loosely on gantt charts. Each thread in the TimelineModel is given a
+ * set of TimelineTracks, one per subrow in the thread. The Timeline class
+ * acts as a controller, creating the individual tracks, while TimelineTracks
+ * do actual drawing.
+ *
+ * Visually, the Timeline produces (prettier) visualizations like the following:
+ * Thread1: AAAAAAAAAA AAAAA
+ * BBBB BB
+ * Thread2: CCCCCC CCCCC
+ *
+ */
+cr.define('gpu', function() {
+
+ /**
+ * The TimelineViewport manages the transform used for navigating
+ * within the timeline. It is a simple transform:
+ * x' = (x+pan) * scale
+ *
+ * The timeline code tries to avoid directly accessing this transform,
+ * instead using this class to do conversion between world and view space,
+ * as well as the math for centering the viewport in various interesting
+ * ways.
+ *
+ * @constructor
+ * @extends {cr.EventTarget}
+ */
+ function TimelineViewport() {
+ this.scaleX_ = 1;
+ this.panX_ = 0;
+ }
+
+ TimelineViewport.prototype = {
+ __proto__: cr.EventTarget.prototype,
+
+ get scaleX() {
+ return this.scaleX_;
+ },
+ set scaleX(s) {
+ var changed = this.scaleX_ != s;
+ if (changed) {
+ this.scaleX_ = s;
+ cr.dispatchSimpleEvent(this, 'change');
+ }
+ },
+
+ get panX() {
+ return this.panX_;
+ },
+ set panX(p) {
+ var changed = this.panX_ != p;
+ if (changed) {
+ this.panX_ = p;
+ cr.dispatchSimpleEvent(this, 'change');
+ }
+ },
+
+ setPanAndScale: function(p, s) {
+ var changed = this.scaleX_ != s || this.panX_ != p;
+ if (changed) {
+ this.scaleX_ = s;
+ this.panX_ = p;
+ cr.dispatchSimpleEvent(this, 'change');
+ }
+ },
+
+ xWorldToView: function(x) {
+ return (x + this.panX_) * this.scaleX_;
+ },
+
+ xWorldVectorToView: function(x) {
+ return x * this.scaleX_;
+ },
+
+ xViewToWorld: function(x) {
+ return (x / this.scaleX_) - this.panX_;
+ },
+
+ xViewVectorToWorld: function(x) {
+ return x / this.scaleX_;
+ },
+
+ xPanWorldPosToViewPos: function(worldX, viewX, viewWidth) {
+ if (typeof viewX == 'string') {
+ if (viewX == 'left') {
+ viewX = 0;
+ } else if (viewX == 'center') {
+ viewX = viewWidth / 2;
+ } else if (viewX == 'right') {
+ viewX = viewWidth - 1;
+ } else {
+ throw Error('unrecognized string for viewPos. left|center|right');
+ }
+ }
+ this.panX = (viewX / this.scaleX_) - worldX;
+ },
+
+ applyTransformToCanavs: function(ctx) {
+ ctx.transform(this.scaleX_, 0, 0, 1, this.panX_ * this.scaleX_, 0);
+ }
+ };
+
+ /**
+ * Renders a TimelineModel into a div element, making one
+ * TimelineTrack for each subrow in each thread of the model, managing
+ * overall track layout, and handling user interaction with the
+ * viewport.
+ *
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+ Timeline = cr.ui.define('div');
+
+ Timeline.prototype = {
+ __proto__: HTMLDivElement.prototype,
+
+ model_: null,
+
+ decorate: function() {
+ this.classList.add('timeline');
+ this.needsViewportReset_ = false;
+
+ this.viewport_ = new TimelineViewport();
+ this.viewport_.addEventListener('change', this.invalidate.bind(this));
+
+ this.invalidatePending_ = false;
+
+ this.tracks_ = this.ownerDocument.createElement('div');
+ this.tracks_.invalidate = this.invalidate.bind(this);
+ this.appendChild(this.tracks_);
+
+ this.dragBox_ = this.ownerDocument.createElement('div');
+ this.dragBox_.className = 'timeline-drag-box timeline-drag-box-hidden';
+ this.appendChild(this.dragBox_);
+
+ // The following code uses a setInterval to monitor the timeline control
+ // for size changes. This is so that we can keep the canvas' bitmap size
+ // correctly synchronized with its presentation size.
+ // TODO(nduca): detect this in a more efficient way, e.g. iframe hack.
+ this.lastSize_ = this.clientWidth + 'x' + this.clientHeight;
+ this.ownerDocument.defaultView.setInterval(function() {
+ var curSize = this.clientWidth + 'x' + this.clientHeight;
+ if (this.clientWidth && curSize != this.lastSize_) {
+ this.lastSize_ = curSize;
+ this.onResize();
+ }
+ }.bind(this), 250);
+
+ document.addEventListener('keypress', this.onKeypress_.bind(this));
+ this.addEventListener('mousedown', this.onMouseDown_.bind(this));
+ this.addEventListener('mousemove', this.onMouseMove_.bind(this));
+ this.addEventListener('mouseup', this.onMouseUp_.bind(this));
+ this.lastMouseViewPos_ = {x: 0, y: 0};
+
+ this.selection_ = [];
+ },
+
+ get model() {
+ return this.model_;
+ },
+
+ set model(model) {
+ if (!model)
+ throw Error('Model cannot be null');
+ if (this.model) {
+ throw Error('Cannot set model twice.');
+ }
+ this.model_ = model;
+
+ // Create tracks.
+ this.tracks_.textContent = '';
+ var threads = model.getAllThreads();
+ for (var tI = 0; tI < threads.length; tI++) {
+ var thread = threads[tI];
+ for (var srI = 0; srI < thread.subRows.length; ++srI) {
+ var track = document.createElement('div');
+ cr.ui.decorate(track, gpu.TimelineTrack);
+ track.viewport = this.viewport_;
+ if (srI == 0)
+ track.heading = thread.parent.pid + ': ' + thread.tid + ': ';
+ else
+ track.heading = '';
+ track.slices = thread.subRows[srI];
+ track.thread = thread;
+ this.tracks_.appendChild(track);
+ }
+ }
+
+ this.needsViewportReset_ = true;
+ },
+
+ invalidate: function() {
+ if (this.invalidatePending_)
+ return;
+ this.invalidatePending_ = true;
+ window.setTimeout(function() {
+ this.invalidatePending_ = false;
+ this.redrawAllTracks_();
+ }.bind(this), 0);
+ },
+
+ onResize: function() {
+ for (var i = 0; i < this.tracks_.children.length; ++i) {
+ var track = this.tracks_.children[i];
+ track.onResize();
+ }
+ },
+
+ redrawAllTracks_: function() {
+ if (this.needsViewportReset_ && this.clientWidth != 0) {
+ this.needsViewportReset_ = false;
+ console.log('viewport was reset.');
+ /* update viewport */
+ var rangeTimestamp = this.model_.maxTimestamp -
+ this.model_.minTimestamp;
+ var w = this.tracks_.firstChild.getCanvasWidth();
+ var scaleX = w / rangeTimestamp;
+ var panX = -this.model_.minTimestamp;
+ this.viewport_.setPanAndScale(panX, scaleX);
+ }
+ for (var i = 0; i < this.tracks_.children.length; ++i) {
+ this.tracks_.children[i].redraw();
+ }
+ },
+
+ updateChildViewports_: function() {
+ for (var cI = 0; cI < this.tracks_.children.length; ++cI) {
+ var child = this.tracks_.children[cI];
+ child.setViewport(this.panX, this.scaleX);
+ }
+ },
+
+ onKeypress_: function(e) {
+ var vp = this.viewport_;
+ if (this.firstCanvas) {
+ var viewWidth = this.firstCanvas.clientWidth;
+ var curMouseV, curCenterW;
+ switch (event.keyCode) {
+ case 101: // e
+ var vX = this.lastMouseViewPos_.x;
+ var wX = vp.xViewToWorld(this.lastMouseViewPos_.x);
+ var distFromCenter = vX - (viewWidth / 2);
+ var percFromCenter = distFromCenter / viewWidth;
+ var percFromCenterSq = percFromCenter * percFromCenter;
+ vp.xPanWorldPosToViewPos(wX, 'center', viewWidth);
+ break;
+ case 119: // w
+ curMouseV = this.lastMouseViewPos_.x;
+ curCenterW = vp.xViewToWorld(curMouseV);
+ vp.scaleX = vp.scaleX * 1.5;
+ vp.xPanWorldPosToViewPos(curCenterW, curMouseV, viewWidth);
+ break;
+ case 115: // s
+ curMouseV = this.lastMouseViewPos_.x;
+ curCenterW = vp.xViewToWorld(curMouseV);
+ vp.scaleX = vp.scaleX / 1.5;
+ vp.xPanWorldPosToViewPos(curCenterW, curMouseV, viewWidth);
+ break;
+ case 87: // W
+ curMouseV = this.lastMouseViewPos_.x;
+ curCenterW = vp.xViewToWorld(curMouseV);
+ vp.scaleX = vp.scaleX * 10;
+ vp.xPanWorldPosToViewPos(curCenterW, curMouseV, viewWidth);
+ break;
+ case 83: // S
+ curMouseV = this.lastMouseViewPos_.x;
+ curCenterW = vp.xViewToWorld(curMouseV);
+ vp.scaleX = vp.scaleX / 10;
+ vp.xPanWorldPosToViewPos(curCenterW, curMouseV, viewWidth);
+ break;
+ case 97: // a
+ vp.panX += vp.xViewVectorToWorld(viewWidth * 0.1);
+ break;
+ case 100: // d
+ vp.panX -= vp.xViewVectorToWorld(viewWidth * 0.1);
+ break;
+ case 65: // A
+ vp.panX += vp.xViewVectorToWorld(viewWidth * 0.5);
+ break;
+ case 68: // D
+ vp.panX -= vp.xViewVectorToWorld(viewWidth * 0.5);
+ break;
+ }
+ }
+ },
+
+ get selection() {
+ return this.selection_;
+ },
+
+ get firstCanvas() {
+ if (this.tracks_.firstChild)
+ return this.tracks_.firstChild.canvas;
+ },
+
+ showDragBox_: function() {
+ this.dragBox_.classList.remove('timeline-drag-box-hidden');
+ },
+
+ hideDragBox_: function() {
+ this.dragBox_.classList.add('timeline-drag-box-hidden');
+ },
+
+ setDragBoxPosition_: function(eDown, eCur) {
+ var loX = Math.min(eDown.clientX, eCur.clientX);
+ var hiX = Math.max(eDown.clientX, eCur.clientX);
+ var loY = Math.min(eDown.clientY, eCur.clientY);
+ var hiY = Math.max(eDown.clientY, eCur.clientY);
+
+ this.dragBox_.style.left = loX + 'px';
+ this.dragBox_.style.top = loY + 'px';
+ this.dragBox_.style.width = hiX - loX + 'px';
+ this.dragBox_.style.height = hiY - loY + 'px';
+
+ var canv = this.firstCanvas;
+ var loWX = this.viewport_.xViewToWorld(loX - canv.offsetLeft);
+ var hiWX = this.viewport_.xViewToWorld(hiX - canv.offsetLeft);
+ var e = new cr.Event('selectionChanging');
+ e.loWX = loWX;
+ e.hiWX = hiWX;
+ this.dispatchEvent(e);
+ },
+
+ onMouseDown_: function(e) {
+ var canv = this.firstCanvas;
+ var pos = {
+ x: e.clientX - canv.offsetLeft,
+ y: e.clientY - canv.offsetTop
+ };
+ var wX = this.viewport_.xViewToWorld(pos.x);
+
+ // Update the drag box position
+ this.showDragBox_();
+ this.setDragBoxPosition_(e, e);
+ this.dragBeginEvent_ = e;
+ e.preventDefault();
+ },
+
+ onMouseMove_: function(e) {
+ if (!this.firstCanvas)
+ return;
+ var canv = this.firstCanvas;
+ var pos = {
+ x: e.clientX - canv.offsetLeft,
+ y: e.clientY - canv.offsetTop
+ };
+
+ // Remember position. Used during keyboard zooming.
+ this.lastMouseViewPos_ = pos;
+
+ // Update the drag box
+ if (this.dragBeginEvent_) {
+ this.setDragBoxPosition_(this.dragBeginEvent_, e);
+ }
+ },
+
+ onMouseUp_: function(e) {
+ var i;
+ if (this.dragBeginEvent_) {
+ // Stop the dragging.
+ this.hideDragBox_();
+ var eDown = this.dragBeginEvent_;
+ this.dragBeginEvent_ = null;
+
+ // Figure out extents of the drag.
+ var loX = Math.min(eDown.clientX, e.clientX);
+ var hiX = Math.max(eDown.clientX, e.clientX);
+ var loY = Math.min(eDown.clientY, e.clientY);
+ var hiY = Math.max(eDown.clientY, e.clientY);
+
+ // Convert to worldspace.
+ var canv = this.firstCanvas;
+ var loWX = this.viewport_.xViewToWorld(loX - canv.offsetLeft);
+ var hiWX = this.viewport_.xViewToWorld(hiX - canv.offsetLeft);
+
+ // Clear old selection.
+ for (i = 0; i < this.selection_.length; ++i) {
+ this.selection_[i].slice.selected = false;
+ }
+ // Figure out what has been hit.
+ var selection = [];
+ function addHit(type, track, slice) {
+ selection.push({track: track, slice: slice});
+ }
+ for (i = 0; i < this.tracks_.children.length; ++i) {
+ var track = this.tracks_.children[i];
+
+ // Only check tracks that insersect the rect.
+ var a = Math.max(loY, track.offsetTop);
+ var b = Math.min(hiY, track.offsetTop + track.offsetHeight);
+ if (a <= b) {
+ track.pickRange(loWX, hiWX, addHit);
+ }
+ }
+ // Activate the new selection.
+ this.selection_ = selection;
+ cr.dispatchSimpleEvent(this, 'selectionChange');
+ for (i = 0; i < this.selection_.length; ++i) {
+ this.selection_[i].slice.selected = true;
+ }
+ this.invalidate(); // Cause tracks to redraw.
+ }
+ }
+ };
+
+ /**
+ * The TimelineModel being viewed by the timeline
+ * @type {TimelineModel}
+ */
+ cr.defineProperty(Timeline, 'model', cr.PropertyKind.JS);
+
+ return {
+ Timeline: Timeline
+ };
+});
diff --git a/chrome/browser/resources/gpu_internals/timeline_model.js b/chrome/browser/resources/gpu_internals/timeline_model.js
new file mode 100644
index 0000000..2196c11
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline_model.js
@@ -0,0 +1,249 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview TimelineModel is a parsed representation of the
+ * TraceEvents obtained from base/trace_event in which the begin-end
+ * tokens are converted into a hierarchy of processes, threads,
+ * subrows, and slices.
+ *
+ * The building block of the model is a slice. A slice is roughly
+ * equivalent to function call executing on a specific thread. As a
+ * result, slices may have one or more subslices.
+ *
+ * A thread contains one or more subrows of slices. Row 0 corresponds to
+ * the "root" slices, e.g. the topmost slices. Row 1 contains slices that
+ * are nested 1 deep in the stack, and so on. We use these subrows to draw
+ * nesting tasks.
+ *
+ */
+cr.define('gpu', function() {
+ /**
+ * A TimelineSlice represents an interval of time on a given thread
+ * associated with a specific trace event. For example,
+ * TRACE_EVENT_BEGIN1("x","myArg", 7) at time=0.1ms
+ * TRACE_EVENT_END() at time=0.3ms
+ * Results in a single timeline slice from 0.1 with duration 0.2.
+ *
+ * All time units are stored in milliseconds.
+ * @constructor
+ */
+ function TimelineSlice(title, colorId, start, args) {
+ this.title = title;
+ this.start = start;
+ this.colorId = colorId;
+ this.args = args;
+ this.subSlices = [];
+ }
+
+ TimelineSlice.prototype = {
+ selected: false,
+
+ duration: undefined,
+
+ get end() {
+ return this.start + this.duration;
+ }
+ };
+
+ /**
+ * A TimelineThread stores all the trace events collected for a particular
+ * thread. We organize the slices on a thread by "subrows," where subrow 0
+ * has all the root slices, subrow 1 those nested 1 deep, and so on.
+ *
+ * @constructor
+ */
+ function TimelineThread(parent, tid) {
+ this.parent = parent;
+ this.tid = tid;
+ this.subRows = [[]];
+ }
+
+ TimelineThread.prototype = {
+ getSubrow: function(i) {
+ while (i >= this.subRows.length)
+ this.subRows.push([]);
+ return this.subRows[i];
+ },
+
+ updateBounds: function() {
+ var slices = this.subRows[0];
+ if (slices.length != 0) {
+ this.minTimestamp = slices[0].start;
+ this.maxTimestamp = slices[slices.length - 1].end;
+ } else {
+ this.minTimestamp = undefined;
+ this.maxTimestamp = undefined;
+ }
+ }
+
+ };
+
+ /**
+ * The TimelineProcess represents a single process in the
+ * trace. Right now, we keep this around purely for bookkeeping
+ * reasons.
+ * @constructor
+ */
+ function TimelineProcess(pid) {
+ this.pid = pid;
+ this.threads = {};
+ };
+
+ TimelineProcess.prototype = {
+ getThread: function(tid) {
+ if (!this.threads[tid])
+ this.threads[tid] = new TimelineThread(this, tid);
+ return this.threads[tid];
+ }
+ };
+
+ /**
+ * Builds a model from an array of TraceEvent objects.
+ * @param {Array} events An array of TraceEvents created by
+ * TraceEvent.ToJSON().
+ * @constructor
+ */
+ function TimelineModel(events) {
+ this.processes = {};
+
+ this.importEvents(events);
+ }
+
+ TimelineModel.prototype = {
+ __proto__: cr.EventTarget.prototype,
+
+ getProcess: function(pid) {
+ if (!this.processes[pid])
+ this.processes[pid] = new TimelineProcess(pid);
+ return this.processes[pid];
+ },
+
+ /**
+ * The import takes an array of json-ified TraceEvents and adds them into
+ * the TimelineModel as processes, threads, and slices.
+ */
+ importEvents: function(events) {
+ // A ptid is a pid and tid joined together x:y fashion, eg 1024:130
+ // The ptid is a unique key for a thread in the trace.
+
+
+ // Threadstate
+ const numColorIds = 12;
+ function ThreadState(tid) {
+ this.openSlices = [];
+ }
+ var threadStateByPTID = {};
+
+ var nameToColorMap = {};
+ var nextColorId = 0;
+ function getColor(name) {
+ if (!(name in nameToColorMap)) {
+ nameToColorMap[name] = nextColorId;
+ nextColorId = (nextColorId + 1) % numColorIds;
+ }
+ return nameToColorMap[name];
+ }
+
+ // Walk through events
+ for (var eI = 0; eI < events.length; eI++) {
+ var event = events[eI];
+ var ptid = event.pid + ':' + event.tid;
+ if (!(ptid in threadStateByPTID)) {
+ threadStateByPTID[ptid] = new ThreadState();
+ }
+ var state = threadStateByPTID[ptid];
+ if (event.ph == 'B') {
+ var colorId = getColor(event.name);
+ var slice = new TimelineSlice(event.name, colorId, event.ts,
+ event.args);
+ state.openSlices.push(slice);
+ } else if (event.ph == 'E') {
+ if (state.openSlices.length == 0) {
+ // Ignore E events that that are unmatched.
+ continue;
+ }
+ var slice = state.openSlices.pop();
+ slice.duration = event.ts - slice.start;
+
+ // Store the slice on the right subrow.
+ var thread = this.getProcess(event.pid).getThread(event.tid);
+ var subRowIndex = state.openSlices.length;
+ thread.getSubrow(subRowIndex).push(slice);
+
+ // Add the slice to the subSlices array of its parent.
+ if (state.openSlices.length) {
+ var parentSlice = state.openSlices[state.openSlices.length - 1];
+ parentSlice.subSlices.push(slice);
+ }
+ } else if (event.ph == 'I') {
+ // TODO(nduca): Implement parsing of immediate events.
+ console.log('Parsing of I-type events not implemented.');
+ } else {
+ throw new Error('Unrecognized event phase: ' + event.ph +
+ '(' + event.name + ')');
+ }
+ }
+ this.updateBounds();
+
+ this.shiftWorldToMicroseconds();
+
+ var boost = (this.maxTimestamp - this.minTimestamp) * 0.15;
+ this.minTimestamp = this.minTimestamp - boost;
+ this.maxTimestamp = this.maxTimestamp + boost;
+ },
+
+ updateBounds: function() {
+ var wmin = Infinity;
+ var wmax = -wmin;
+ var threads = this.getAllThreads();
+ for (var tI = 0; tI < threads.length; tI++) {
+ var thread = threads[tI];
+ thread.updateBounds();
+ wmin = Math.min(wmin, thread.minTimestamp);
+ wmax = Math.max(wmax, thread.maxTimestamp);
+ }
+ this.minTimestamp = wmin;
+ this.maxTimestamp = wmax;
+ },
+
+ shiftWorldToMicroseconds: function() {
+ var timeBase = this.minTimestamp;
+ var threads = this.getAllThreads();
+ for (var tI = 0; tI < threads.length; tI++) {
+ var thread = threads[tI];
+ for (var tSR = 0; tSR < thread.subRows.length; tSR++) {
+ var subRow = thread.subRows[tSR];
+ for (var tS = 0; tS < subRow.length; tS++) {
+ var slice = subRow[tS];
+ slice.start = (slice.start - timeBase) / 1000;
+ slice.duration /= 1000;
+ }
+ }
+ }
+
+ this.updateBounds();
+ },
+
+ getAllThreads: function() {
+ var threads = [];
+ for (var pid in this.processes) {
+ var process = this.processes[pid];
+ for (var tid in process.threads) {
+ threads.push(process.threads[tid]);
+ }
+ }
+ return threads;
+ }
+
+ };
+
+ return {
+ TimelineSlice: TimelineSlice,
+ TimelineThread: TimelineThread,
+ TimelineProcess: TimelineProcess,
+ TimelineModel: TimelineModel
+ };
+});
diff --git a/chrome/browser/resources/gpu_internals/timeline_track.js b/chrome/browser/resources/gpu_internals/timeline_track.js
new file mode 100644
index 0000000..3a4c737
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline_track.js
@@ -0,0 +1,186 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview Renders an array of slices into the provided div,
+ * using a child canvas element. Uses a FastRectRenderer to draw only
+ * the visible slices.
+ */
+cr.define('gpu', function() {
+
+ const palletteBase = [
+ {r: 0x45, g: 0x85, b: 0xaa},
+ {r: 0xdc, g: 0x73, b: 0xa8},
+ {r: 0x77, g: 0xb6, b: 0x94},
+ {r: 0x23, g: 0xae, b: 0x6e},
+ {r: 0x76, g: 0x5d, b: 0x9e},
+ {r: 0x48, g: 0xd8, b: 0xfb},
+ {r: 0xa9, g: 0xd7, b: 0x93},
+ {r: 0x7c, g: 0x2d, b: 0x52},
+ {r: 0x69, g: 0xc2, b: 0x75},
+ {r: 0x76, g: 0xcf, b: 0xee},
+ {r: 0x3d, g: 0x85, b: 0xd1},
+ {r: 0x71, g: 0x0b, b: 0x54}];
+
+ function brighten(c) {
+ return {r: Math.min(255, c.r + Math.floor(c.r * 0.45)),
+ g: Math.min(255, c.g + Math.floor(c.g * 0.45)),
+ b: Math.min(255, c.b + Math.floor(c.b * 0.45))};
+ }
+ function colorToString(c) {
+ return 'rgb(' + c.r + ',' + c.g + ',' + c.b + ')';
+ }
+
+ const selectedIdBoost = palletteBase.length;
+
+ const pallette = palletteBase.concat(palletteBase.map(brighten)).
+ map(colorToString);
+
+ /**
+ * Creates a new timeline track div element
+ * @constructor
+ * @extends {HTMLDivElement}
+ */
+ TimelineTrack = cr.ui.define('div');
+
+ TimelineTrack.prototype = {
+ __proto__: HTMLDivElement.prototype,
+
+ decorate: function() {
+ this.classList.add('timeline-track');
+ this.slices_ = null;
+
+ this.titleDiv_ = document.createElement('div');
+ this.titleDiv_.className = 'timeline-track-title';
+ this.appendChild(this.titleDiv_);
+
+ this.canvasContainer_ = document.createElement('div');
+ this.canvasContainer_.className = 'timeline-track-canvas-container';
+ this.appendChild(this.canvasContainer_);
+ this.canvas_ = document.createElement('canvas');
+ this.canvas_.className = 'timeline-track-canvas';
+ this.canvasContainer_.appendChild(this.canvas_);
+
+ this.ctx_ = this.canvas_.getContext('2d');
+ },
+
+ set heading(text) {
+ this.titleDiv_.textContent = text;
+ },
+
+ set slices(slices) {
+ this.slices_ = slices;
+ this.invalidate();
+ },
+ get canvas() {
+ return this.canvas_;
+ },
+
+ onResize: function() {
+ this.canvas_.width = this.canvasContainer_.clientWidth;
+ this.canvas_.height = this.canvasContainer_.clientHeight;
+ this.invalidate();
+ },
+
+ invalidate: function() {
+ if (this.parentNode)
+ this.parentNode.invalidate();
+ },
+
+ set viewport(v) {
+ this.viewport_ = v;
+ this.invalidate();
+ },
+
+ getCanvasWidth: function() {
+ return this.canvas_.width;
+ },
+
+ redraw: function() {
+ if (!this.viewport_)
+ return;
+ var ctx = this.ctx_;
+ var canvasW = this.canvas_.width;
+ var canvasH = this.canvas_.height;
+
+ ctx.clearRect(0, 0, canvasW, canvasH);
+
+ // culling...
+ var vp = this.viewport_;
+ var pixWidth = vp.xViewVectorToWorld(1);
+ var viewLWorld = vp.xViewToWorld(0);
+ var viewRWorld = vp.xViewToWorld(this.width);
+
+ // begin rendering in world space
+ ctx.save();
+ vp.applyTransformToCanavs(ctx);
+
+ // tracks
+ var tr = new gpu.FastRectRenderer(ctx, viewLWorld, 2 * pixWidth,
+ 2 * pixWidth, viewRWorld, pallette);
+ tr.setYandH(0, canvasH);
+ var slices = this.slices_;
+ for (var i = 0; i < slices.length; ++i) {
+ var slice = slices[i];
+ var x = slice.start;
+ var w = slice.duration;
+ var colorId;
+ colorId = slice.selected ?
+ slice.colorId + selectedIdBoost :
+ slice.colorId;
+
+ if (w < pixWidth)
+ w = pixWidth;
+ tr.fillRect(x, w, colorId);
+ }
+ tr.flush();
+ ctx.restore();
+ },
+
+ /**
+ * Picks a slice, if any, at a given location.
+ * @param {number} wX Location to search at, in worldspace.
+ * @param {function():*} onHitCallback Callback to call with the slice,
+ * if one is found.
+ * @return {boolean} true if a slice was found, otherwise false.
+ */
+ pick: function(wX, onHitCallback) {
+ var x = gpu.findLowIndexInSortedIntervals(this.slices_,
+ function(x) { return x.start; },
+ function(x) { return x.duration; },
+ wX);
+ if (x >= 0 && x < this.slices_.length) {
+ onHitCallback('slice', this, this.slices_[x]);
+ return true;
+ }
+ return false;
+ },
+
+ /**
+ * Finds slices intersecting the given interval.
+ * @param {number} loWX Lower bound of the interval to search, in
+ * worldspace.
+ * @param {number} hiWX Upper bound of the interval to search, in
+ * worldspace.
+ * @param {function():*} onHitCallback Function to call for each slice
+ * intersecting the interval.
+ */
+ pickRange: function(loWX, hiWX, onHitCallback) {
+ function onPickHit(slice) {
+ onHitCallback('slice', this, slice);
+ }
+ gpu.iterateOverIntersectingIntervals(this.slices_,
+ function(x) { return x.start; },
+ function(x) { return x.duration; },
+ loWX, hiWX,
+ onPickHit);
+ }
+
+ };
+
+ return {
+ TimelineTrack: TimelineTrack
+ };
+});
diff --git a/chrome/browser/resources/gpu_internals/timeline_view.css b/chrome/browser/resources/gpu_internals/timeline_view.css
new file mode 100644
index 0000000..90d3a4a
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline_view.css
@@ -0,0 +1,35 @@
+/*
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+*/
+#timeline-view {
+ padding: 0px;
+ -webkit-box-orient: vertical;
+ -webkit-box-flex: 1;
+}
+
+#timeline-view[selected] {
+ display: -webkit-box;
+}
+
+#timeline-view-timeline-container {
+ display: -webkit-box;
+ -webkit-box-flex: 1;
+ overflow: auto;
+}
+
+#timeline-view-timeline-container > .timeline {
+ -webkit-box-flex: 1;
+}
+
+#timeline-selection-summary {
+ border-top: 1px solid black;
+ max-height: 300px;
+ min-height: 100px;
+ font-family: monospace;
+}
+
+#timeline-selection-summary ul {
+ margin: 0px;
+} \ No newline at end of file
diff --git a/chrome/browser/resources/gpu_internals/timeline_view.html b/chrome/browser/resources/gpu_internals/timeline_view.html
new file mode 100644
index 0000000..e908dca
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline_view.html
@@ -0,0 +1,11 @@
+<!--
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+<div id="timeline-view" label="Timeline">
+ <div id="timeline-view-timeline-container">
+ </div>
+ <pre id="timeline-selection-summary">
+ </pre>
+</div>
diff --git a/chrome/browser/resources/gpu_internals/timeline_view.js b/chrome/browser/resources/gpu_internals/timeline_view.js
new file mode 100644
index 0000000..d0a3a4f
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/timeline_view.js
@@ -0,0 +1,131 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview TimelineView visualizes GPU_TRACE events using the
+ * gpu.Timeline component.
+ */
+cr.define('gpu', function() {
+ function tsRound(ts) {
+ return Math.round(ts * 100.0) / 100.0;
+ }
+
+ /**
+ * TimelineView
+ * @constructor
+ * @extends {gpu.Tab}
+ */
+ TimelineView = cr.ui.define(gpu.Tab);
+
+ TimelineView.prototype = {
+ __proto__: gpu.Tab.prototype,
+
+ decorate: function() {
+ tracingController.addEventListener('traceBegun', this.refresh.bind(this));
+ tracingController.addEventListener('traceEnded', this.refresh.bind(this));
+ this.addEventListener('selectedChange', this.onViewSelectedChange_);
+
+ this.refresh();
+ },
+
+ onViewSelectedChange_: function() {
+ if (this.selected) {
+ if (tracingController.traceEvents.length == 0) {
+ tracingController.beginTracing();
+ }
+ if (this.needsRefreshOnShow_) {
+ this.needsRefreshOnShow_ = false;
+ this.refresh();
+ }
+ }
+ },
+
+ /**
+ * Updates the view based on its currently known data
+ */
+ refresh: function() {
+ if (this.parentNode.selectedTab != this) {
+ this.needsRefreshOnShow_ = true;
+ }
+
+ console.log('TimelineView.refresh');
+ var events = tracingController.traceEvents;
+ this.timelineModel_ = new gpu.TimelineModel(events);
+
+ // remove old timeline
+ var timelineContainer = $('timeline-view-timeline-container');
+ timelineContainer.textContent = '';
+
+ // create new timeline if needed
+ if (events.length) {
+ this.timeline_ = new gpu.Timeline();
+ this.timeline_.model = this.timelineModel_;
+ timelineContainer.appendChild(this.timeline_);
+ this.timeline_.onResize();
+ this.timeline_.addEventListener('selectionChanging',
+ this.onSelectionChanging_.bind(this));
+ this.timeline_.addEventListener('selectionChange',
+ this.onSelectionChanged_.bind(this));
+ } else {
+ this.timeline_ = null;
+ }
+ },
+ onSelectionChanging_: function(e) {
+ var text =
+ 'Start: ' + tsRound(e.loWX) + 'ms\n' +
+ 'End: ' + tsRound(e.hiWX) + 'ms\n' +
+ 'Duration: ' + tsRound(e.hiWX - e.loWX) + 'ms\n';
+ var outputElem = $('timeline-selection-summary');
+ outputElem.textContent = text;
+ },
+
+ onSelectionChanged_: function(e) {
+ var timeline = this.timeline_;
+ var selection = timeline.selection;
+ if (!selection.length) {
+ var outputDiv = $('timeline-selection-summary');
+ outputDiv.textContent = '';
+ return;
+ }
+
+ var text = '';
+ var tsLo = Math.min.apply(Math, selection.map(
+ function(s) {return s.slice.start;}));
+ var tsHi = Math.max.apply(Math, selection.map(
+ function(s) {return s.slice.end;}));
+
+ text += 'Start: ' + tsRound(tsLo) + 'ms<br>';
+ text += 'Duration: ' + tsRound(tsHi - tsLo) + 'ms<br>';
+
+ // compute total selection duration
+ var titles = selection.map(function(i) { return i.slice.title; });
+ text += '<ul>';
+ var slicesByTitle = {};
+ for (var i = 0; i < selection.length; i++) {
+ var slice = selection[i].slice;
+ if (!slicesByTitle[slice.title])
+ slicesByTitle[slice.title] = {
+ slices: []
+ };
+ slicesByTitle[slice.title].slices.push(slice);
+ }
+ for (var sliceGroupTitle in slicesByTitle) {
+ var sliceGroup = slicesByTitle[sliceGroupTitle];
+ text += '<li>' +
+ sliceGroupTitle + ': ' + sliceGroup.slices.length +
+ '</li>';
+ }
+ text += '</ul>';
+
+ // done
+ var outputDiv = $('timeline-selection-summary');
+ outputDiv.innerHTML = text;
+ }
+ };
+
+ return {
+ TimelineView: TimelineView
+ };
+});
diff --git a/chrome/browser/resources/gpu_internals/tracing_controller.css b/chrome/browser/resources/gpu_internals/tracing_controller.css
new file mode 100644
index 0000000..331fe85
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/tracing_controller.css
@@ -0,0 +1,33 @@
+/*
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+*/
+.gpu-tracing-overlay {
+ text-align: center;
+ display: -webkit-box;
+ width: 200px;
+ height: 80px;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+ -webkit-box-align: center;
+}
+
+.gpu-tracing-start-button {
+ position: fixed;
+ right: 3px;
+ top: -1px;
+ -webkit-margin-start: 5px;
+ text-decoration: none;
+ text-align: center;
+ display: inline-block;
+ margin-top: 4px;
+ padding: 5px 10px 3px 10px;
+ border-top-right-radius: 8px;
+ border-top-left-radius: 8px;
+ background-clip: border-box;
+ background: rgb(255,0,0);
+ border-left: 1px solid black;
+ border-top: 1px solid black;
+ border-right: 1px solid black;
+}
diff --git a/chrome/browser/resources/gpu_internals/tracing_controller.html b/chrome/browser/resources/gpu_internals/tracing_controller.html
new file mode 100644
index 0000000..7db2635
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/tracing_controller.html
@@ -0,0 +1,14 @@
+<!--
+Copyright (c) 2011 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+<div hidden>
+ <div id="gpu-tracing-start-button-template" class="gpu-tracing-start-button">
+ Record new data
+ </div>
+ <div id="gpu-tracing-overlay-template" class="gpu-tracing-overlay">
+ <div class="gpu-tracing-status">Tracing active.</div>
+ <button class="gpu-tracing-stop-button">Stop tracing</button>
+ </div>
+</div>
diff --git a/chrome/browser/resources/gpu_internals/tracing_controller.js b/chrome/browser/resources/gpu_internals/tracing_controller.js
new file mode 100644
index 0000000..f46e417
--- /dev/null
+++ b/chrome/browser/resources/gpu_internals/tracing_controller.js
@@ -0,0 +1,127 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @fileoverview State and UI for trace data collection.
+ */
+cr.define('gpu', function() {
+ function TracingController() {
+ this.overlay_ = $('gpu-tracing-overlay-template').cloneNode(true);
+ this.overlay_.removeAttribute('id');
+ cr.ui.decorate(this.overlay_, gpu.Overlay);
+
+ this.traceEvents_ = [];
+
+ var startButton = $('gpu-tracing-start-button-template').cloneNode(true);
+ startButton.removeAttribute('id');
+ document.body.appendChild(startButton);
+ startButton.onclick = this.beginTracing.bind(this);
+
+ var stopButton = this.overlay_.querySelector('.gpu-tracing-stop-button');
+ stopButton.onclick = this.endTracing.bind(this);
+ }
+
+ TracingController.prototype = {
+ __proto__: cr.EventTarget.prototype,
+
+ tracingEnabled_: false,
+
+ /**
+ * Called by info_view to empty the trace buffer
+ */
+ beginTracing: function() {
+ if (this.tracingEnabled_)
+ throw Error('Tracing already begun.');
+
+ this.overlay_.visible = true;
+
+ this.tracingEnabled_ = true;
+ console.log('Beginning to trace...');
+
+ this.traceEvents_ = [];
+ if (!browserBridge.debugMode)
+ chrome.send('beginTracing');
+
+ this.tracingEnabled_ = true;
+
+ var e = new cr.Event('traceBegun');
+ e.events = this.traceEvents_;
+ this.dispatchEvent(e);
+
+ e = new cr.Event('traceEventsChanged');
+ e.numEvents = this.traceEvents_.length;
+ this.dispatchEvent(e);
+
+ var self = this;
+ window.addEventListener('keypress', function f(e) {
+ if (e.keyIdentifier == 'Enter') {
+ window.removeEventListener('keypress', f);
+ self.endTracing();
+ }
+ });
+ },
+
+ /**
+ * Checks whether tracing is enabled
+ */
+ get isTracingEnabled() {
+ return this.tracingEnabled_;
+ },
+
+ /**
+ * Gets the currently traced events. If tracing is active, then
+ * this can change on the fly.
+ */
+ get traceEvents() {
+ return this.traceEvents_;
+ },
+
+ /**
+ * Callbed by gpu c++ code when new GPU trace data arrives.
+ */
+ onTraceDataCollected: function(events) {
+ this.traceEvents_.push.apply(this.traceEvents_, events);
+ },
+
+ /**
+ * Called by info_view to finish tracing and update all views.
+ */
+ endTracing: function() {
+ if (!this.tracingEnabled_) throw new Error('Tracing not begun.');
+
+ console.log('Finishing trace');
+ if (!browserBridge.debugMode) {
+ chrome.send('beginToEndTracing');
+ } else {
+ var events = getTimelineTestData1();
+ this.onTraceDataCollected(events);
+ window.setTimeout(this.onEndTracingComplete.bind(this), 250);
+ }
+ },
+
+ /**
+ * Called by the browser when all processes ack tracing
+ * having completed.
+ */
+ onEndTracingComplete: function() {
+ this.overlay_.visible = false;
+ this.tracingEnabled_ = false;
+ console.log('onEndTracingComplete p1 with ' +
+ this.traceEvents_.length + ' events.');
+ var e = new cr.Event('traceEnded');
+ e.events = this.traceEvents_;
+ this.dispatchEvent(e);
+ },
+
+ selfTest: function() {
+ this.beginTracing();
+ window.setTimeout(this.endTracing.bind(This), 500);
+ }
+ };
+ return {
+ TracingController: TracingController
+ };
+});
+