3 Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/importer/linux_perf/parser.html">
14 * @fileoverview Parses drm driver events in the Linux event trace format.
16 tv.exportTo('tracing.importer.linux_perf', function() {
18 var Parser = tracing.importer.linux_perf.Parser;
21 * Parses linux drm trace events.
24 function DrmParser(importer) {
25 Parser.call(this, importer);
27 importer.registerEventHandler('drm_vblank_event',
28 DrmParser.prototype.vblankEvent.bind(this));
31 DrmParser.prototype = {
32 __proto__: Parser.prototype,
34 drmVblankSlice: function(ts, eventName, args) {
35 var kthread = this.importer.getOrCreatePseudoThread('drm_vblank');
36 kthread.openSlice = eventName;
37 var slice = new tracing.trace_model.Slice('', kthread.openSlice,
38 tv.ui.getStringColorId(kthread.openSlice), ts, args, 0);
40 kthread.thread.sliceGroup.pushSlice(slice);
44 * Parses drm driver events and sets up state in the importer.
46 vblankEvent: function(eventName, cpuNumber, pid, ts, eventBase) {
47 var event = /crtc=(\d+), seq=(\d+)/.exec(eventBase.details);
51 var crtc = parseInt(event[1]);
52 var seq = parseInt(event[2]);
53 this.drmVblankSlice(ts, 'vblank:' + crtc,
62 Parser.registerSubtype(DrmParser);