1syntax = "proto2";
2option optimize_for = LITE_RUNTIME;
3package android.surfaceflinger;
4
5message Trace {
6    repeated Increment increment = 1;
7}
8
9message Increment {
10    required int64 time_stamp = 1;
11
12    oneof increment {
13        Transaction        transaction          = 2;
14        SurfaceCreation    surface_creation     = 3;
15        SurfaceDeletion    surface_deletion     = 4;
16        BufferUpdate       buffer_update        = 5;
17        VSyncEvent         vsync_event          = 6;
18        DisplayCreation    display_creation     = 7;
19        DisplayDeletion    display_deletion     = 8;
20        PowerModeUpdate    power_mode_update    = 9;
21    }
22}
23
24message Transaction {
25    repeated SurfaceChange surface_change = 1;
26    repeated DisplayChange display_change = 2;
27
28    required bool   synchronous      = 3;
29    required bool   animation        = 4;
30    optional Origin origin           = 5;
31    optional uint64 id               = 6;
32}
33
34message SurfaceChange {
35    required int32 id = 1;
36    reserved 7;
37    oneof SurfaceChange {
38        PositionChange              position                = 2;
39        SizeChange                  size                    = 3;
40        AlphaChange                 alpha                   = 4;
41        LayerChange                 layer                   = 5;
42        CropChange                  crop                    = 6;
43        MatrixChange                matrix                  = 8;
44        TransparentRegionHintChange transparent_region_hint = 10;
45        LayerStackChange            layer_stack             = 11;
46        HiddenFlagChange            hidden_flag             = 12;
47        OpaqueFlagChange            opaque_flag             = 13;
48        SecureFlagChange            secure_flag             = 14;
49        CornerRadiusChange          corner_radius           = 16;
50        ReparentChange              reparent                = 17;
51        RelativeParentChange        relative_parent         = 18;
52        BackgroundBlurRadiusChange  background_blur_radius  = 20;
53        ShadowRadiusChange          shadow_radius           = 21;
54        BlurRegionsChange           blur_regions            = 22;
55        TrustedOverlayChange        trusted_overlay         = 23;
56    }
57}
58
59message PositionChange {
60    required float x = 1;
61    required float y = 2;
62}
63
64message SizeChange {
65    required uint32 w = 1;
66    required uint32 h = 2;
67}
68
69message AlphaChange {
70    required float alpha = 1;
71}
72
73message CornerRadiusChange {
74    required float corner_radius = 1;
75}
76
77message BackgroundBlurRadiusChange {
78    required float background_blur_radius = 1;
79}
80
81message LayerChange {
82    required uint32 layer = 1;
83}
84
85message CropChange {
86    required Rectangle rectangle = 1;
87}
88
89message MatrixChange {
90    required float dsdx = 1;
91    required float dtdx = 2;
92    required float dsdy = 3;
93    required float dtdy = 4;
94}
95
96message TransparentRegionHintChange {
97    repeated Rectangle region = 1;
98}
99
100message LayerStackChange {
101    required uint32 layer_stack = 1;
102}
103
104message DisplayFlagsChange {
105    required uint32 flags = 1;
106}
107
108message HiddenFlagChange {
109    required bool hidden_flag = 1;
110}
111
112message OpaqueFlagChange {
113    required bool opaque_flag = 1;
114}
115
116message SecureFlagChange {
117    required bool secure_flag = 1;
118}
119
120message DisplayChange {
121    required int32 id = 1;
122
123    oneof DisplayChange {
124        DispSurfaceChange surface     = 2;
125        LayerStackChange  layer_stack = 3;
126        SizeChange        size        = 4;
127        ProjectionChange  projection  = 5;
128        DisplayFlagsChange flags      = 6;
129    }
130}
131
132message DispSurfaceChange {
133    required uint64 buffer_queue_id   = 1;
134    required string buffer_queue_name = 2;
135}
136
137message ProjectionChange {
138    required int32     orientation = 1;
139    required Rectangle viewport    = 2;
140    required Rectangle frame       = 3;
141}
142
143message Rectangle {
144    required int32 left   = 1;
145    required int32 top    = 2;
146    required int32 right  = 3;
147    required int32 bottom = 4;
148}
149
150message SurfaceCreation {
151    required int32  id   = 1;
152    required string name = 2;
153    required uint32 w    = 3;
154    required uint32 h    = 4;
155}
156
157message SurfaceDeletion {
158    required int32 id = 1;
159}
160
161message BufferUpdate {
162    required int32  id           = 1;
163    required uint32 w            = 2;
164    required uint32 h            = 3;
165    required uint64 frame_number = 4;
166}
167
168message VSyncEvent {
169    required int64 when = 1;
170}
171
172message DisplayCreation {
173    required int32     id                = 1;
174    required string    name              = 2;
175    optional uint64    display_id        = 3;
176    required bool      is_secure         = 4;
177}
178
179message DisplayDeletion {
180    required int32 id = 1;
181}
182
183message PowerModeUpdate {
184    required int32  id   = 1;
185    required int32  mode = 2;
186}
187
188message ReparentChange {
189    required int32 parent_id = 1;
190}
191
192message RelativeParentChange {
193    required int32 relative_parent_id = 1;
194    required int32 z = 2;
195}
196
197message ShadowRadiusChange {
198    required float radius = 1;
199}
200
201message TrustedOverlayChange {
202    required float is_trusted_overlay = 1;
203}
204
205message BlurRegionsChange {
206    repeated BlurRegionChange blur_regions = 1;
207}
208
209message BlurRegionChange {
210    required uint32 blur_radius = 1;
211    required float corner_radius_tl = 2;
212    required float corner_radius_tr = 3;
213    required float corner_radius_bl = 4;
214    required float corner_radius_br = 5;
215    required float alpha = 6;
216    required int32 left = 7;
217    required int32 top = 8;
218    required int32 right = 9;
219    required int32 bottom = 10;
220}
221
222message Origin {
223    required int32 pid = 1;
224    required int32 uid = 2;
225}
226