• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# Copyright (C) 2019 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16from os import sys, path
17
18import synth_common
19
20
21class BufferEvent:
22  UNSPECIFIED = 0
23  DEQUEUE = 1
24  QUEUE = 2
25  POST = 3
26  ACQUIRE_FENCE = 4
27  LATCH = 5
28  HWC_COMPOSITION_QUEUED = 6
29  FALLBACK_COMPOSITION = 7
30  PRESENT_FENCE = 8
31  RELEASE_FENCE = 9
32  MODIFY = 10
33  DETACH = 11
34  ATTACH = 12
35  CANCEL = 13
36
37
38trace = synth_common.create_trace()
39# Layer 1
40trace.add_buffer_event_packet(
41    ts=1,
42    buffer_id=1,
43    layer_name="layer1",
44    frame_number=11,
45    event_type=BufferEvent.DEQUEUE,
46    duration=0)
47trace.add_buffer_event_packet(
48    ts=4,
49    buffer_id=1,
50    layer_name="layer1",
51    frame_number=11,
52    event_type=BufferEvent.QUEUE,
53    duration=0)
54trace.add_buffer_event_packet(
55    ts=6,
56    buffer_id=1,
57    layer_name="layer1",
58    frame_number=11,
59    event_type=BufferEvent.ACQUIRE_FENCE,
60    duration=0)
61trace.add_buffer_event_packet(
62    ts=8,
63    buffer_id=1,
64    layer_name="layer1",
65    frame_number=11,
66    event_type=BufferEvent.LATCH,
67    duration=0)
68trace.add_buffer_event_packet(
69    ts=14,
70    buffer_id=1,
71    layer_name="layer1",
72    frame_number=11,
73    event_type=BufferEvent.PRESENT_FENCE,
74    duration=0)
75# Layer 2
76trace.add_buffer_event_packet(
77    ts=6,
78    buffer_id=2,
79    layer_name="layer2",
80    frame_number=12,
81    event_type=BufferEvent.DEQUEUE,
82    duration=0)
83trace.add_buffer_event_packet(
84    ts=8,
85    buffer_id=2,
86    layer_name="layer2",
87    frame_number=12,
88    event_type=BufferEvent.ACQUIRE_FENCE,
89    duration=0)
90trace.add_buffer_event_packet(
91    ts=9,
92    buffer_id=2,
93    layer_name="layer2",
94    frame_number=12,
95    event_type=BufferEvent.QUEUE,
96    duration=0)
97trace.add_buffer_event_packet(
98    ts=11,
99    buffer_id=2,
100    layer_name="layer2",
101    frame_number=12,
102    event_type=BufferEvent.LATCH,
103    duration=0)
104trace.add_buffer_event_packet(
105    ts=16,
106    buffer_id=2,
107    layer_name="layer2",
108    frame_number=12,
109    event_type=BufferEvent.PRESENT_FENCE,
110    duration=0)
111# Next Present of layer 1
112trace.add_buffer_event_packet(
113    ts=24,
114    buffer_id=1,
115    layer_name="layer1",
116    frame_number=13,
117    event_type=BufferEvent.PRESENT_FENCE,
118    duration=0)
119# Missing id.
120trace.add_buffer_event_packet(
121    ts=6,
122    buffer_id=-1,
123    layer_name="layer6",
124    frame_number=14,
125    event_type=BufferEvent.HWC_COMPOSITION_QUEUED,
126    duration=0)
127# Missing type.
128trace.add_buffer_event_packet(
129    ts=7,
130    buffer_id=7,
131    layer_name="layer7",
132    frame_number=15,
133    event_type=-1,
134    duration=0)
135# Missing Acquire
136trace.add_buffer_event_packet(
137    ts=31,
138    buffer_id=1,
139    layer_name="layer1",
140    frame_number=21,
141    event_type=BufferEvent.DEQUEUE,
142    duration=0)
143trace.add_buffer_event_packet(
144    ts=34,
145    buffer_id=1,
146    layer_name="layer1",
147    frame_number=21,
148    event_type=BufferEvent.QUEUE,
149    duration=0)
150trace.add_buffer_event_packet(
151    ts=37,
152    buffer_id=1,
153    layer_name="layer1",
154    frame_number=22,
155    event_type=BufferEvent.DEQUEUE,
156    duration=0)
157trace.add_buffer_event_packet(
158    ts=41,
159    buffer_id=1,
160    layer_name="layer1",
161    frame_number=22,
162    event_type=BufferEvent.QUEUE,
163    duration=0)
164trace.add_buffer_event_packet(
165    ts=46,
166    buffer_id=1,
167    layer_name="layer1",
168    frame_number=22,
169    event_type=BufferEvent.ACQUIRE_FENCE,
170    duration=0)
171# Missing queue with acquire
172trace.add_buffer_event_packet(
173    ts=53,
174    buffer_id=2,
175    layer_name="layer2",
176    frame_number=24,
177    event_type=BufferEvent.DEQUEUE,
178    duration=0)
179trace.add_buffer_event_packet(
180    ts=59,
181    buffer_id=2,
182    layer_name="layer2",
183    frame_number=24,
184    event_type=BufferEvent.ACQUIRE_FENCE,
185    duration=0)
186trace.add_buffer_event_packet(
187    ts=61,
188    buffer_id=2,
189    layer_name="layer2",
190    frame_number=24,
191    event_type=BufferEvent.LATCH,
192    duration=0)
193# Missing queue without acquire
194trace.add_buffer_event_packet(
195    ts=63,
196    buffer_id=1,
197    layer_name="layer1",
198    frame_number=25,
199    event_type=BufferEvent.DEQUEUE,
200    duration=0)
201trace.add_buffer_event_packet(
202    ts=73,
203    buffer_id=1,
204    layer_name="layer1",
205    frame_number=26,
206    event_type=BufferEvent.DEQUEUE,
207    duration=0)
208trace.add_buffer_event_packet(
209    ts=75,
210    buffer_id=1,
211    layer_name="layer1",
212    frame_number=26,
213    event_type=BufferEvent.QUEUE,
214    duration=0)
215trace.add_buffer_event_packet(
216    ts=79,
217    buffer_id=1,
218    layer_name="layer1",
219    frame_number=26,
220    event_type=BufferEvent.ACQUIRE_FENCE,
221    duration=0)
222# Same buffer in multiple layers
223trace.add_buffer_event_packet(
224    ts=81,
225    buffer_id=1,
226    layer_name="layer1",
227    frame_number=30,
228    event_type=BufferEvent.DEQUEUE,
229    duration=0)
230trace.add_buffer_event_packet(
231    ts=83,
232    buffer_id=1,
233    layer_name="layer1",
234    frame_number=30,
235    event_type=BufferEvent.QUEUE,
236    duration=0)
237trace.add_buffer_event_packet(
238    ts=90,
239    buffer_id=1,
240    layer_name="layer2",
241    frame_number=35,
242    event_type=BufferEvent.DEQUEUE,
243    duration=0)
244trace.add_buffer_event_packet(
245    ts=92,
246    buffer_id=1,
247    layer_name="layer2",
248    frame_number=35,
249    event_type=BufferEvent.QUEUE,
250    duration=0)
251sys.stdout.buffer.write(trace.trace.SerializeToString())
252