• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2022 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file
4
5syntax = "proto2";
6package gpu.cmdbuf.fuzzing;
7
8message TransferBuffer {
9  required int32 shm_id = 1;
10  required uint32 size = 2;
11}
12
13message InProcessCommandBuffer_GetLastState {}
14
15message InProcessCommandBuffer_Flush {
16  required int32 put_offset = 1;
17}
18
19message InProcessCommandBuffer_OrderingBarrier {
20  required int32 put_offset = 1;
21}
22
23message InProcessCommandBuffer_WaitForTokenInRange {
24  required int32 start = 1;
25  required int32 end = 2;
26}
27
28message InProcessCommandBuffer_WaitForGetOffsetInRange {
29  required int32 set_get_buffer_count = 1;
30  required int32 start = 2;
31  required int32 end = 3;
32}
33
34message InProcessCommandBuffer_SetGetBuffer {
35  required int32 shm_id = 1;
36}
37
38enum TransferBufferAllocationOption {
39  kLoseContextOnOOM = 0;
40  kReturnNullOnOOM = 1;
41}
42
43message InProcessCommandBuffer_CreateTransferBuffer {
44  required uint32 size = 1;
45  required int32 id = 2;
46  optional TransferBufferAllocationOption option = 3;
47}
48
49message InProcessCommandBuffer_DestroyTransferBuffer {
50  required int32 id = 1;
51}
52
53message InProcessCommandBuffer_ForceLostContext {
54  required int32 reason = 1;
55}
56
57message InProcessCommandBuffer_SetGpuControlClient {
58  // TODO: GpuControlClient *
59}
60
61message InProcessCommandBuffer_GetCapabilities {}
62
63message InProcessCommandBuffer_SignalQuery {
64  required uint32 query_id = 1;
65  // signal_query_callback
66}
67
68message InProcessCommandBuffer_CreateGpuFence {
69  required uint32 gpu_fence_id = 1;
70  // TODO: ClientGpuFence source = 2;
71}
72
73message InProcessCommandBuffer_GetGpuFence {
74  required uint32 gpu_fence_id = 1;
75  // TODO: get_gpu_fence_callback
76}
77
78message InProcessCommandBuffer_SetLock {
79  required bool lock = 1;
80}
81
82message InProcessCommandBuffer_EnsureWorkVisible {}
83
84message InProcessCommandBuffer_GetNamespaceID {}
85
86message InProcessCommandBuffer_GetCommandBufferID {}
87
88message InProcessCommandBuffer_FlushPendingWork {}
89
90message InProcessCommandBuffer_GenerateFenceSyncRelease {}
91
92message InProcessCommandBuffer_IsFenceSyncReleased {
93  required uint64 release = 1;
94}
95
96enum CommandBufferNamespaceIds {
97  BIG_NEGATIVE = -128;
98  INVALID = -1;
99  GPU_IO = 0;
100  IN_PROCESS = 1;
101  VIZ_SKIA_OUTPUT_SURFACE = 2;
102  VIZ_SKIA_OUTPUT_SURFACE_NON_DDL = 3;
103  MAX_VALID = 4;
104  BIG = 127;
105}
106
107message SyncToken {
108  required CommandBufferNamespaceIds namespace_id = 1;
109  required uint64 command_buffer_id = 2;
110  required uint64 release_count = 3;
111}
112
113message InProcessCommandBuffer_SignalSyncToken {
114  required SyncToken sync_token = 1;
115  // sync_token_callback
116}
117
118message InProcessCommandBuffer_WaitSyncToken {
119  required SyncToken sync_token = 1;
120}
121
122message InProcessCommandBuffer_CanWaitUnverifiedSyncToken {
123  required SyncToken sync_token = 1;
124}
125
126message InProcessCommandBuffer_OnCommandBatchProcessed {}
127
128message InProcessCommandBuffer_OnParseError {}
129
130message InProcessCommandBuffer_OnConsoleMessage {
131  required int32 id = 1;
132  required string message = 2;
133}
134
135enum GpuDiskCacheType {
136  kGlShaders = 0;
137  kDawnWebGPU = 1;
138}
139
140message InProcessCommandBuffer_CacheBlob {
141  required GpuDiskCacheType type = 1;
142  required string key = 2;
143  required string shader = 3;
144}
145
146message InProcessCommandBuffer_OnFenceSyncRelease {
147  required uint64 release = 1;
148}
149
150message InProcessCommandBuffer_OnDescheduleUntilFinished {}
151
152message InProcessCommandBuffer_OnRescheduleAfterFinished {}
153
154message InProcessCommandBuffer_OnSwapBuffers {
155  required uint64 swap_id = 1;
156  required uint32 flags = 2;
157}
158
159message InProcessCommandBuffer_ScheduleGrContextCleanup {}
160
161message InProcessCommandBuffer_HandleReturnData {
162  repeated uint32 data = 1 [packed = true];
163}
164
165message InProcessCommandBuffer_GetFeatureInfo {}
166
167message InProcessCommandBuffer_GetGpuFeatureInfo {}
168
169message InProcessCommandBuffer_GetTransferCacheForTest {}
170
171message InProcessCommandBuffer_GetRasterDecoderIdForTest {}
172
173message InProcessCommandBuffer_GetWebGPUDecoderForTest {}
174
175message InProcessCommandBuffer_service_for_testing {}
176
177message InProcessCommandBuffer_GetSharedImageInterface {}
178
179message InProcessCommandBufferOp {
180  oneof cmd_buf_ops {
181    InProcessCommandBuffer_GetLastState GetLastState = 1;
182    InProcessCommandBuffer_Flush Flush = 2;
183    InProcessCommandBuffer_OrderingBarrier OrderingBarrier = 3;
184    InProcessCommandBuffer_WaitForTokenInRange WaitForTokenInRange = 4;
185    InProcessCommandBuffer_WaitForGetOffsetInRange WaitForGetOffsetInRange = 5;
186    InProcessCommandBuffer_SetGetBuffer SetGetBuffer = 6;
187    InProcessCommandBuffer_CreateTransferBuffer CreateTransferBuffer = 7;
188    InProcessCommandBuffer_DestroyTransferBuffer DestroyTransferBuffer = 8;
189    InProcessCommandBuffer_ForceLostContext ForceLostContet = 9;
190    InProcessCommandBuffer_SetGpuControlClient SetGpuControlClient = 10;
191    InProcessCommandBuffer_GetCapabilities GetCapabilities = 11;
192    InProcessCommandBuffer_SignalQuery SignalQuery = 12;
193    InProcessCommandBuffer_CreateGpuFence CreateGpuFence = 13;
194    InProcessCommandBuffer_GetGpuFence GetGpuFence = 14;
195    InProcessCommandBuffer_SetLock SetLock = 15;
196    InProcessCommandBuffer_EnsureWorkVisible EnsureWorkVisible = 16;
197    InProcessCommandBuffer_GetNamespaceID GetNamespaceID = 17;
198    InProcessCommandBuffer_GetCommandBufferID GetCommandBufferID = 18;
199    InProcessCommandBuffer_FlushPendingWork FlushPendingWork = 19;
200    InProcessCommandBuffer_GenerateFenceSyncRelease GenerateFenceSyncRelease =
201        20;
202    InProcessCommandBuffer_IsFenceSyncReleased IsFenceSyncReleased = 21;
203    InProcessCommandBuffer_SignalSyncToken SignalSyncToken = 22;
204    InProcessCommandBuffer_WaitSyncToken WaitSyncToken = 23;
205    InProcessCommandBuffer_CanWaitUnverifiedSyncToken
206        CanWaitUnverifiedSyncToken = 24;
207    InProcessCommandBuffer_OnCommandBatchProcessed OnCommandBatchProcessed = 25;
208    InProcessCommandBuffer_OnParseError OnParseError = 26;
209    InProcessCommandBuffer_OnConsoleMessage OnConsoleMessage = 27;
210    InProcessCommandBuffer_CacheBlob CacheBlob = 28;
211    InProcessCommandBuffer_OnFenceSyncRelease OnFenceSyncRelease = 29;
212    InProcessCommandBuffer_OnDescheduleUntilFinished OnDescheduleUntilFinished =
213        30;
214    InProcessCommandBuffer_OnRescheduleAfterFinished OnRescheduleAfterFinished =
215        31;
216    InProcessCommandBuffer_OnSwapBuffers OnSwapBuffers = 32;
217    InProcessCommandBuffer_ScheduleGrContextCleanup ScheduleGrContextCleanup =
218        33;
219    InProcessCommandBuffer_HandleReturnData HandleReturnData = 34;
220    InProcessCommandBuffer_GetFeatureInfo GetFeatureInfo = 35;
221    InProcessCommandBuffer_GetGpuFeatureInfo GetGpuFeatureInfo = 36;
222    InProcessCommandBuffer_GetTransferCacheForTest GetTransferCacheForTest = 37;
223    InProcessCommandBuffer_GetRasterDecoderIdForTest GetRasterDecoderIdForTest =
224        38;
225    InProcessCommandBuffer_GetWebGPUDecoderForTest GetWebGPUDecoderForTest = 39;
226    InProcessCommandBuffer_service_for_testing service_for_testing = 40;
227    InProcessCommandBuffer_GetSharedImageInterface GetSharedImageInterface = 41;
228  }
229}
230
231message Action {
232  oneof action {
233    InProcessCommandBufferOp CmdBufOp = 1;
234  }
235}
236
237message CmdBufSession {
238  repeated Action actions = 1;
239}
240