| /* |
| * Copyright (C) 2019 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| package perfetto.protos; |
| |
| // next id: 13 |
| message GpuRenderStageEvent { |
| // required. Unique ID for the event. |
| optional uint64 event_id = 1; |
| |
| // optional. Duration of the event. This should be in the same clock domain as |
| // the timestamp of the packet. If unset, this is a single time point event. |
| optional uint64 duration = 2; |
| |
| // required. ID to a hardware queue description in the specifications. |
| optional int32 hw_queue_id = 3; |
| |
| // required. ID to a render stage description in the specifications. |
| optional int32 stage_id = 4; |
| |
| // required. GL context/VK device. |
| optional uint64 context = 5; |
| |
| // optional. The render target for this event. |
| optional uint64 render_target_handle = 8; |
| |
| // optional. The Vulkan render pass handle. |
| optional uint64 render_pass_handle = 9; |
| |
| // optional. The Vulkan command buffer handle. |
| optional uint64 command_buffer_handle = 12; |
| |
| // optional. Submission ID generated by the UMD. Should map 1:1 with a |
| // vkQueueSubmit. |
| optional uint32 submission_id = 10; |
| |
| // optional. Additional data for the user. This may include attribs for |
| // the event like resource ids, shaders etc |
| message ExtraData { |
| optional string name = 1; |
| optional string value = 2; |
| } |
| repeated ExtraData extra_data = 6; |
| |
| // The first trace packet of each session should include a Specifications |
| // to enumerate *all* IDs that will be used. The timestamp of this packet |
| // must be earlier than all other packets. Only one packet with Specifications |
| // is expected. |
| message Specifications { |
| message ContextSpec { |
| optional uint64 context = 1; |
| optional int32 pid = 2; |
| } |
| optional ContextSpec context_spec = 1; |
| |
| message Description { |
| optional string name = 1; |
| optional string description = 2; |
| } |
| |
| // Labels to categorize the hw Queue this event goes on. |
| repeated Description hw_queue = 2; |
| |
| // Labels to categorize render stage(binning, render, compute etc). |
| repeated Description stage = 3; |
| } |
| optional Specifications specifications = 7; |
| |
| // optional. Identifier for GPU in a multi-gpu device. |
| optional int32 gpu_id = 11; |
| |
| // Extension for vendor's custom proto. |
| extensions 100; |
| } |