// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file
syntax = "proto2";
package gpu.cmdbuf.fuzzing;
message TransferBuffer {
required int32 shm_id = 1;
required uint32 size = 2;
}
message InProcessCommandBuffer_GetLastState {}
message InProcessCommandBuffer_Flush {
required int32 put_offset = 1;
}
message InProcessCommandBuffer_OrderingBarrier {
required int32 put_offset = 1;
}
message InProcessCommandBuffer_WaitForTokenInRange {
required int32 start = 1;
required int32 end = 2;
}
message InProcessCommandBuffer_WaitForGetOffsetInRange {
required int32 set_get_buffer_count = 1;
required int32 start = 2;
required int32 end = 3;
}
message InProcessCommandBuffer_SetGetBuffer {
required int32 shm_id = 1;
}
enum TransferBufferAllocationOption {
kLoseContextOnOOM = 0;
kReturnNullOnOOM = 1;
}
message InProcessCommandBuffer_CreateTransferBuffer {
required uint32 size = 1;
required int32 id = 2;
optional TransferBufferAllocationOption option = 3;
}
message InProcessCommandBuffer_DestroyTransferBuffer {
required int32 id = 1;
}
message InProcessCommandBuffer_ForceLostContext {
required int32 reason = 1;
}
message InProcessCommandBuffer_SetGpuControlClient {
// TODO: GpuControlClient *
}
message InProcessCommandBuffer_GetCapabilities {}
message InProcessCommandBuffer_SignalQuery {
required uint32 query_id = 1;
// signal_query_callback
}
message InProcessCommandBuffer_CreateGpuFence {
required uint32 gpu_fence_id = 1;
// TODO: ClientGpuFence source = 2;
}
message InProcessCommandBuffer_GetGpuFence {
required uint32 gpu_fence_id = 1;
// TODO: get_gpu_fence_callback
}
message InProcessCommandBuffer_SetLock {
required bool lock = 1;
}
message InProcessCommandBuffer_EnsureWorkVisible {}
message InProcessCommandBuffer_GetNamespaceID {}
message InProcessCommandBuffer_GetCommandBufferID {}
message InProcessCommandBuffer_FlushPendingWork {}
message InProcessCommandBuffer_GenerateFenceSyncRelease {}
message InProcessCommandBuffer_IsFenceSyncReleased {
required uint64 release = 1;
}
enum CommandBufferNamespaceIds {
BIG_NEGATIVE = -128;
INVALID = -1;
GPU_IO = 0;
IN_PROCESS = 1;
VIZ_SKIA_OUTPUT_SURFACE = 2;
VIZ_SKIA_OUTPUT_SURFACE_NON_DDL = 3;
MAX_VALID = 4;
BIG = 127;
}
message SyncToken {
required CommandBufferNamespaceIds namespace_id = 1;
required uint64 command_buffer_id = 2;
required uint64 release_count = 3;
}
message InProcessCommandBuffer_SignalSyncToken {
required SyncToken sync_token = 1;
// sync_token_callback
}
message InProcessCommandBuffer_WaitSyncToken {
required SyncToken sync_token = 1;
}
message InProcessCommandBuffer_CanWaitUnverifiedSyncToken {
required SyncToken sync_token = 1;
}
message InProcessCommandBuffer_OnCommandBatchProcessed {}
message InProcessCommandBuffer_OnParseError {}
message InProcessCommandBuffer_OnConsoleMessage {
required int32 id = 1;
required string message = 2;
}
enum GpuDiskCacheType {
kGlShaders = 0;
kDawnWebGPU = 1;
}
message InProcessCommandBuffer_CacheBlob {
required GpuDiskCacheType type = 1;
required string key = 2;
required string shader = 3;
}
message InProcessCommandBuffer_OnFenceSyncRelease {
required uint64 release = 1;
}
message InProcessCommandBuffer_OnDescheduleUntilFinished {}
message InProcessCommandBuffer_OnRescheduleAfterFinished {}
message InProcessCommandBuffer_OnSwapBuffers {
required uint64 swap_id = 1;
required uint32 flags = 2;
}
message InProcessCommandBuffer_ScheduleGrContextCleanup {}
message InProcessCommandBuffer_HandleReturnData {
repeated uint32 data = 1 [packed = true];
}
message InProcessCommandBuffer_GetFeatureInfo {}
message InProcessCommandBuffer_GetGpuFeatureInfo {}
message InProcessCommandBuffer_GetTransferCacheForTest {}
message InProcessCommandBuffer_GetRasterDecoderIdForTest {}
message InProcessCommandBuffer_GetWebGPUDecoderForTest {}
message InProcessCommandBuffer_service_for_testing {}
message InProcessCommandBuffer_GetSharedImageInterface {}
message InProcessCommandBufferOp {
oneof cmd_buf_ops {
InProcessCommandBuffer_GetLastState GetLastState = 1;
InProcessCommandBuffer_Flush Flush = 2;
InProcessCommandBuffer_OrderingBarrier OrderingBarrier = 3;
InProcessCommandBuffer_WaitForTokenInRange WaitForTokenInRange = 4;
InProcessCommandBuffer_WaitForGetOffsetInRange WaitForGetOffsetInRange = 5;
InProcessCommandBuffer_SetGetBuffer SetGetBuffer = 6;
InProcessCommandBuffer_CreateTransferBuffer CreateTransferBuffer = 7;
InProcessCommandBuffer_DestroyTransferBuffer DestroyTransferBuffer = 8;
InProcessCommandBuffer_ForceLostContext ForceLostContet = 9;
InProcessCommandBuffer_SetGpuControlClient SetGpuControlClient = 10;
InProcessCommandBuffer_GetCapabilities GetCapabilities = 11;
InProcessCommandBuffer_SignalQuery SignalQuery = 12;
InProcessCommandBuffer_CreateGpuFence CreateGpuFence = 13;
InProcessCommandBuffer_GetGpuFence GetGpuFence = 14;
InProcessCommandBuffer_SetLock SetLock = 15;
InProcessCommandBuffer_EnsureWorkVisible EnsureWorkVisible = 16;
InProcessCommandBuffer_GetNamespaceID GetNamespaceID = 17;
InProcessCommandBuffer_GetCommandBufferID GetCommandBufferID = 18;
InProcessCommandBuffer_FlushPendingWork FlushPendingWork = 19;
InProcessCommandBuffer_GenerateFenceSyncRelease GenerateFenceSyncRelease =
20;
InProcessCommandBuffer_IsFenceSyncReleased IsFenceSyncReleased = 21;
InProcessCommandBuffer_SignalSyncToken SignalSyncToken = 22;
InProcessCommandBuffer_WaitSyncToken WaitSyncToken = 23;
InProcessCommandBuffer_CanWaitUnverifiedSyncToken
CanWaitUnverifiedSyncToken = 24;
InProcessCommandBuffer_OnCommandBatchProcessed OnCommandBatchProcessed = 25;
InProcessCommandBuffer_OnParseError OnParseError = 26;
InProcessCommandBuffer_OnConsoleMessage OnConsoleMessage = 27;
InProcessCommandBuffer_CacheBlob CacheBlob = 28;
InProcessCommandBuffer_OnFenceSyncRelease OnFenceSyncRelease = 29;
InProcessCommandBuffer_OnDescheduleUntilFinished OnDescheduleUntilFinished =
30;
InProcessCommandBuffer_OnRescheduleAfterFinished OnRescheduleAfterFinished =
31;
InProcessCommandBuffer_OnSwapBuffers OnSwapBuffers = 32;
InProcessCommandBuffer_ScheduleGrContextCleanup ScheduleGrContextCleanup =
33;
InProcessCommandBuffer_HandleReturnData HandleReturnData = 34;
InProcessCommandBuffer_GetFeatureInfo GetFeatureInfo = 35;
InProcessCommandBuffer_GetGpuFeatureInfo GetGpuFeatureInfo = 36;
InProcessCommandBuffer_GetTransferCacheForTest GetTransferCacheForTest = 37;
InProcessCommandBuffer_GetRasterDecoderIdForTest GetRasterDecoderIdForTest =
38;
InProcessCommandBuffer_GetWebGPUDecoderForTest GetWebGPUDecoderForTest = 39;
InProcessCommandBuffer_service_for_testing service_for_testing = 40;
InProcessCommandBuffer_GetSharedImageInterface GetSharedImageInterface = 41;
}
}
message Action {
oneof action {
InProcessCommandBufferOp CmdBufOp = 1;
}
}
message CmdBufSession {
repeated Action actions = 1;
}