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