1syntax = "proto2";
2option optimize_for = LITE_RUNTIME;
3
4message Trace {
5    repeated Increment increment = 1;
6}
7
8message Increment {
9    required int64 time_stamp = 1;
10
11    oneof increment {
12        Transaction        transaction          = 2;
13        SurfaceCreation    surface_creation     = 3;
14        SurfaceDeletion    surface_deletion     = 4;
15        BufferUpdate       buffer_update        = 5;
16        VSyncEvent         vsync_event          = 6;
17        DisplayCreation    display_creation     = 7;
18        DisplayDeletion    display_deletion     = 8;
19        PowerModeUpdate    power_mode_update    = 9;
20    }
21}
22
23message Transaction {
24    repeated SurfaceChange surface_change = 1;
25    repeated DisplayChange display_change = 2;
26
27    required bool synchronous = 3;
28    required bool animation   = 4;
29}
30
31message SurfaceChange {
32    required int32 id = 1;
33    reserved 7;
34    oneof SurfaceChange {
35        PositionChange              position                = 2;
36        SizeChange                  size                    = 3;
37        AlphaChange                 alpha                   = 4;
38        LayerChange                 layer                   = 5;
39        CropChange                  crop                    = 6;
40        MatrixChange                matrix                  = 8;
41        OverrideScalingModeChange   override_scaling_mode   = 9;
42        TransparentRegionHintChange transparent_region_hint = 10;
43        LayerStackChange            layer_stack             = 11;
44        HiddenFlagChange            hidden_flag             = 12;
45        OpaqueFlagChange            opaque_flag             = 13;
46        SecureFlagChange            secure_flag             = 14;
47        DeferredTransactionChange   deferred_transaction    = 15;
48        CornerRadiusChange          corner_radius           = 16;
49    }
50}
51
52message PositionChange {
53    required float x = 1;
54    required float y = 2;
55}
56
57message SizeChange {
58    required uint32 w = 1;
59    required uint32 h = 2;
60}
61
62message AlphaChange {
63    required float alpha = 1;
64}
65
66message CornerRadiusChange {
67    required float corner_radius = 1;
68}
69
70message LayerChange {
71    required uint32 layer = 1;
72}
73
74message CropChange {
75    required Rectangle rectangle = 1;
76}
77
78message MatrixChange {
79    required float dsdx = 1;
80    required float dtdx = 2;
81    required float dsdy = 3;
82    required float dtdy = 4;
83}
84
85message OverrideScalingModeChange {
86    required int32 override_scaling_mode = 1;
87}
88
89message TransparentRegionHintChange {
90    repeated Rectangle region = 1;
91}
92
93message LayerStackChange {
94    required uint32 layer_stack = 1;
95}
96
97message HiddenFlagChange {
98    required bool hidden_flag = 1;
99}
100
101message OpaqueFlagChange {
102    required bool opaque_flag = 1;
103}
104
105message SecureFlagChange {
106    required bool secure_flag = 1;
107}
108
109message DeferredTransactionChange {
110    required int32  layer_id     = 1;
111    required uint64 frame_number = 2;
112}
113
114message DisplayChange {
115    required int32 id = 1;
116
117    oneof DisplayChange {
118        DispSurfaceChange surface     = 2;
119        LayerStackChange  layer_stack = 3;
120        SizeChange        size        = 4;
121        ProjectionChange  projection  = 5;
122    }
123}
124
125message DispSurfaceChange {
126    required uint64 buffer_queue_id   = 1;
127    required string buffer_queue_name = 2;
128}
129
130message ProjectionChange {
131    required int32     orientation = 1;
132    required Rectangle viewport    = 2;
133    required Rectangle frame       = 3;
134}
135
136message Rectangle {
137    required int32 left   = 1;
138    required int32 top    = 2;
139    required int32 right  = 3;
140    required int32 bottom = 4;
141}
142
143message SurfaceCreation {
144    required int32  id   = 1;
145    required string name = 2;
146    required uint32 w    = 3;
147    required uint32 h    = 4;
148}
149
150message SurfaceDeletion {
151    required int32 id = 1;
152}
153
154message BufferUpdate {
155    required int32  id           = 1;
156    required uint32 w            = 2;
157    required uint32 h            = 3;
158    required uint64 frame_number = 4;
159}
160
161message VSyncEvent {
162    required int64 when = 1;
163}
164
165message DisplayCreation {
166    required int32     id                = 1;
167    required string    name              = 2;
168    optional uint64    display_id        = 3;
169    required bool      is_secure         = 4;
170}
171
172message DisplayDeletion {
173    required int32 id = 1;
174}
175
176message PowerModeUpdate {
177    required int32  id   = 1;
178    required int32  mode = 2;
179}
180