blob: 16f8b003d6eaa57e965f4bdf718c8bbfff7291ca [file] [log] [blame]
/*
* 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;
}