Add proto for GPU events
Bug: 134775158
Change-Id: I29230724fec36614441664f9c7aab6078038d606
diff --git a/Android.bp b/Android.bp
index 6732d79..6e7f7d8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -50,6 +50,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -150,6 +151,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -232,6 +234,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -348,6 +351,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -422,6 +426,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -513,6 +518,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -535,6 +541,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -570,6 +577,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -665,6 +673,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -731,6 +740,8 @@
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_lite_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_lite_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_lite_gen",
@@ -893,6 +904,8 @@
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_lite_gen_headers",
@@ -1060,6 +1073,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/data_source_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
+ "protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/inode_file/inode_file_config.proto",
"protos/perfetto/config/power/android_power_config.proto",
"protos/perfetto/config/process_stats/process_stats_config.proto",
@@ -1077,6 +1091,7 @@
"external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.cc",
"external/perfetto/protos/perfetto/config/data_source_config.pb.cc",
"external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.cc",
+ "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.cc",
"external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.cc",
"external/perfetto/protos/perfetto/config/power/android_power_config.pb.cc",
"external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.cc",
@@ -1095,6 +1110,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/data_source_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
+ "protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/inode_file/inode_file_config.proto",
"protos/perfetto/config/power/android_power_config.proto",
"protos/perfetto/config/process_stats/process_stats_config.proto",
@@ -1112,6 +1128,7 @@
"external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.h",
"external/perfetto/protos/perfetto/config/data_source_config.pb.h",
"external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.h",
+ "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.h",
"external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.h",
"external/perfetto/protos/perfetto/config/power/android_power_config.pb.h",
"external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.h",
@@ -1133,6 +1150,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/data_source_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
+ "protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/inode_file/inode_file_config.proto",
"protos/perfetto/config/power/android_power_config.proto",
"protos/perfetto/config/process_stats/process_stats_config.proto",
@@ -1151,6 +1169,7 @@
"external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.cc",
"external/perfetto/protos/perfetto/config/data_source_config.pbzero.cc",
"external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.cc",
+ "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.cc",
"external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.cc",
"external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.cc",
"external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.cc",
@@ -1169,6 +1188,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/data_source_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
+ "protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/inode_file/inode_file_config.proto",
"protos/perfetto/config/power/android_power_config.proto",
"protos/perfetto/config/process_stats/process_stats_config.proto",
@@ -1187,6 +1207,7 @@
"external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.h",
"external/perfetto/protos/perfetto/config/data_source_config.pbzero.h",
"external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.h",
+ "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.h",
"external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.h",
"external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.h",
"external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.h",
@@ -1877,6 +1898,82 @@
],
}
+// GN target: //protos/perfetto/trace/gpu:lite_gen
+genrule {
+ name: "perfetto_protos_perfetto_trace_gpu_lite_gen",
+ srcs: [
+ "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+ "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos $(in)",
+ out: [
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.cc",
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.cc",
+ ],
+}
+
+// GN target: //protos/perfetto/trace/gpu:lite_gen
+genrule {
+ name: "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+ srcs: [
+ "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+ "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos $(in)",
+ out: [
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.h",
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.h",
+ ],
+ export_include_dirs: [
+ "protos",
+ ],
+}
+
+// GN target: //protos/perfetto/trace/gpu:zero_gen
+genrule {
+ name: "perfetto_protos_perfetto_trace_gpu_zero_gen",
+ srcs: [
+ "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+ "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ tools: [
+ "aprotoc",
+ "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+ out: [
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.cc",
+ ],
+}
+
+// GN target: //protos/perfetto/trace/gpu:zero_gen
+genrule {
+ name: "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+ srcs: [
+ "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+ "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ tools: [
+ "aprotoc",
+ "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+ out: [
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.h",
+ ],
+ export_include_dirs: [
+ "protos",
+ ],
+}
+
// GN target: //protos/perfetto/trace/interned_data:lite_gen
genrule {
name: "perfetto_protos_perfetto_trace_interned_data_lite_gen",
@@ -2975,6 +3072,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -3062,6 +3160,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -3084,6 +3183,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
@@ -3116,6 +3216,7 @@
":perfetto_protos_perfetto_trace_chrome_lite_gen",
":perfetto_protos_perfetto_trace_filesystem_lite_gen",
":perfetto_protos_perfetto_trace_ftrace_lite_gen",
+ ":perfetto_protos_perfetto_trace_gpu_lite_gen",
":perfetto_protos_perfetto_trace_interned_data_lite_gen",
":perfetto_protos_perfetto_trace_lite_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
@@ -3140,6 +3241,7 @@
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
"perfetto_protos_perfetto_trace_lite_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
@@ -3157,6 +3259,7 @@
"perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
"perfetto_protos_perfetto_trace_lite_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
@@ -3193,6 +3296,8 @@
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_lite_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_lite_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_lite_gen",
@@ -3451,6 +3556,8 @@
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_lite_gen_headers",
@@ -3511,6 +3618,8 @@
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_lite_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_lite_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_lite_gen",
@@ -3638,6 +3747,8 @@
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_lite_gen_headers",
@@ -3725,6 +3836,7 @@
":perfetto_protos_perfetto_trace_chrome_zero_gen",
":perfetto_protos_perfetto_trace_filesystem_zero_gen",
":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+ ":perfetto_protos_perfetto_trace_gpu_zero_gen",
":perfetto_protos_perfetto_trace_interned_data_zero_gen",
":perfetto_protos_perfetto_trace_minimal_lite_gen",
":perfetto_protos_perfetto_trace_perfetto_zero_gen",
@@ -3810,6 +3922,7 @@
"perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
"perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
"perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+ "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
"perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
"perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
"perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
diff --git a/BUILD b/BUILD
index a24b2a4..4ed9c7e 100644
--- a/BUILD
+++ b/BUILD
@@ -337,6 +337,7 @@
"//third_party/perfetto/protos:trace_chrome_zero_cc_proto",
"//third_party/perfetto/protos:trace_filesystem_zero_cc_proto",
"//third_party/perfetto/protos:trace_ftrace_zero_cc_proto",
+ "//third_party/perfetto/protos:trace_gpu_zero_cc_proto",
"//third_party/perfetto/protos:trace_interned_data_zero_cc_proto",
"//third_party/perfetto/protos:trace_perfetto_zero_cc_proto",
"//third_party/perfetto/protos:trace_power_zero_cc_proto",
@@ -573,6 +574,7 @@
"//third_party/perfetto/protos:trace_chrome_zero_cc_proto",
"//third_party/perfetto/protos:trace_filesystem_zero_cc_proto",
"//third_party/perfetto/protos:trace_ftrace_zero_cc_proto",
+ "//third_party/perfetto/protos:trace_gpu_zero_cc_proto",
"//third_party/perfetto/protos:trace_interned_data_zero_cc_proto",
"//third_party/perfetto/protos:trace_perfetto_zero_cc_proto",
"//third_party/perfetto/protos:trace_power_zero_cc_proto",
@@ -828,6 +830,8 @@
"//third_party/perfetto/protos:trace_filesystem_zero_cc_proto",
"//third_party/perfetto/protos:trace_ftrace_cc_proto",
"//third_party/perfetto/protos:trace_ftrace_zero_cc_proto",
+ "//third_party/perfetto/protos:trace_gpu_cc_proto",
+ "//third_party/perfetto/protos:trace_gpu_zero_cc_proto",
"//third_party/perfetto/protos:trace_interned_data_cc_proto",
"//third_party/perfetto/protos:trace_interned_data_zero_cc_proto",
"//third_party/perfetto/protos:trace_minimal_cc_proto",
diff --git a/protos/BUILD b/protos/BUILD
index a83ff57..719134b 100644
--- a/protos/BUILD
+++ b/protos/BUILD
@@ -99,6 +99,7 @@
"perfetto/config/chrome/chrome_config.proto",
"perfetto/config/data_source_config.proto",
"perfetto/config/ftrace/ftrace_config.proto",
+ "perfetto/config/gpu/gpu_counter_config.proto",
"perfetto/config/inode_file/inode_file_config.proto",
"perfetto/config/power/android_power_config.proto",
"perfetto/config/process_stats/process_stats_config.proto",
@@ -184,6 +185,7 @@
"perfetto/config/chrome/chrome_config.proto",
"perfetto/config/data_source_config.proto",
"perfetto/config/ftrace/ftrace_config.proto",
+ "perfetto/config/gpu/gpu_counter_config.proto",
"perfetto/config/inode_file/inode_file_config.proto",
"perfetto/config/power/android_power_config.proto",
"perfetto/config/process_stats/process_stats_config.proto",
@@ -381,6 +383,7 @@
"//third_party/perfetto/protos:trace_chrome",
"//third_party/perfetto/protos:trace_filesystem",
"//third_party/perfetto/protos:trace_ftrace",
+ "//third_party/perfetto/protos:trace_gpu",
"//third_party/perfetto/protos:trace_interned_data",
"//third_party/perfetto/protos:trace_minimal",
"//third_party/perfetto/protos:trace_perfetto",
@@ -696,6 +699,67 @@
],
)
+# GN target: //protos/perfetto/trace/gpu:lite_gen
+proto_library(
+ name = "trace_gpu",
+ srcs = [
+ "perfetto/trace/gpu/gpu_counter_event.proto",
+ "perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ has_services = 1,
+ cc_api_version = 2,
+ cc_generic_services = 1,
+ visibility = [
+ "//visibility:public",
+ ],
+ deps = [
+ "//third_party/perfetto/protos:common",
+ ],
+)
+
+# GN target: //protos/perfetto/trace/gpu:lite_gen
+cc_proto_library(
+ name = "trace_gpu_cc_proto",
+ visibility = [
+ "//visibility:public",
+ ],
+ deps = [
+ "//third_party/perfetto/protos:trace_gpu",
+ ],
+)
+
+# GN target: //protos/perfetto/trace/gpu:lite_gen
+java_proto_library(
+ name = "trace_gpu_java_proto",
+ visibility = [
+ "//visibility:public",
+ ],
+ deps = [
+ "//third_party/perfetto/protos:trace_gpu",
+ ],
+)
+
+# GN target: //protos/perfetto/trace/gpu:zero_gen
+proto_library(
+ name = "trace_gpu_zero",
+ srcs = [
+ "perfetto/trace/gpu/gpu_counter_event.proto",
+ "perfetto/trace/gpu/gpu_render_stage_event.proto",
+ ],
+ deps = [
+ "//third_party/perfetto/protos:common_zero",
+ ],
+)
+
+# GN target: //protos/perfetto/trace/gpu:zero_gen
+pbzero_cc_proto_library(
+ name = "trace_gpu_zero_cc_proto",
+ src_proto_library = "//third_party/perfetto/protos:trace_gpu_zero",
+ deps = [
+ "//third_party/perfetto:libprotozero",
+ ],
+)
+
# GN target: //protos/perfetto/trace/interned_data:lite_gen
proto_library(
name = "trace_interned_data",
@@ -1257,6 +1321,7 @@
"//third_party/perfetto/protos:trace_chrome_zero",
"//third_party/perfetto/protos:trace_filesystem_zero",
"//third_party/perfetto/protos:trace_ftrace_zero",
+ "//third_party/perfetto/protos:trace_gpu_zero",
"//third_party/perfetto/protos:trace_interned_data_zero",
"//third_party/perfetto/protos:trace_perfetto_zero",
"//third_party/perfetto/protos:trace_power_zero",
diff --git a/protos/perfetto/config/BUILD.gn b/protos/perfetto/config/BUILD.gn
index 966a5c3..745b49a 100644
--- a/protos/perfetto/config/BUILD.gn
+++ b/protos/perfetto/config/BUILD.gn
@@ -31,6 +31,7 @@
"chrome/chrome_config.proto",
"data_source_config.proto",
"ftrace/ftrace_config.proto",
+ "gpu/gpu_counter_config.proto",
"inode_file/inode_file_config.proto",
"power/android_power_config.proto",
"process_stats/process_stats_config.proto",
@@ -55,6 +56,7 @@
"chrome/chrome_config.proto",
"data_source_config.proto",
"ftrace/ftrace_config.proto",
+ "gpu/gpu_counter_config.proto",
"inode_file/inode_file_config.proto",
"power/android_power_config.proto",
"process_stats/process_stats_config.proto",
diff --git a/protos/perfetto/config/data_source_config.proto b/protos/perfetto/config/data_source_config.proto
index 9fde38a..2809273 100644
--- a/protos/perfetto/config/data_source_config.proto
+++ b/protos/perfetto/config/data_source_config.proto
@@ -22,6 +22,7 @@
import "perfetto/config/android/android_log_config.proto";
import "perfetto/config/chrome/chrome_config.proto";
import "perfetto/config/ftrace/ftrace_config.proto";
+import "perfetto/config/gpu/gpu_counter_config.proto";
import "perfetto/config/inode_file/inode_file_config.proto";
import "perfetto/config/power/android_power_config.proto";
import "perfetto/config/process_stats/process_stats_config.proto";
@@ -78,6 +79,7 @@
optional HeapprofdConfig heapprofd_config = 105 [lazy = true];
optional AndroidPowerConfig android_power_config = 106 [lazy = true];
optional AndroidLogConfig android_log_config = 107 [lazy = true];
+ optional GpuCounterConfig gpu_counter_config = 108 [lazy = true];
// Chrome is special as it doesn't use the perfetto IPC layer. We want to
// avoid proto serialization and de-serialization there because that would
diff --git a/protos/perfetto/config/gpu/gpu_counter_config.proto b/protos/perfetto/config/gpu/gpu_counter_config.proto
new file mode 100644
index 0000000..e87e358
--- /dev/null
+++ b/protos/perfetto/config/gpu/gpu_counter_config.proto
@@ -0,0 +1,34 @@
+/*
+ * 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";
+option optimize_for = LITE_RUNTIME;
+
+package perfetto.protos;
+
+// When editing this file run ./tools/gen_tracing_cpp_headers_from_protos.py
+// to reflect changes in the corresponding C++ headers.
+
+message GpuCounterConfig {
+
+ // Desired sampling interval for counters.
+ optional uint64 counter_period_ns = 1;
+
+ // List of counters to be sampled. Counter IDs correspond to the ones described in GpuCounterSpec
+ // in the data source descriptor.
+ repeated uint32 counter_ids = 2;
+}
+
diff --git a/protos/perfetto/trace/BUILD.gn b/protos/perfetto/trace/BUILD.gn
index 3a91d78..175e64a 100644
--- a/protos/perfetto/trace/BUILD.gn
+++ b/protos/perfetto/trace/BUILD.gn
@@ -41,6 +41,7 @@
"chrome:zero",
"filesystem:zero",
"ftrace:zero",
+ "gpu:zero",
"interned_data:zero",
"perfetto:zero",
"power:zero",
@@ -65,6 +66,7 @@
"chrome:lite",
"filesystem:lite",
"ftrace:lite",
+ "gpu:lite",
"interned_data:lite",
"perfetto:lite",
"power:lite",
diff --git a/protos/perfetto/trace/gpu/BUILD.gn b/protos/perfetto/trace/gpu/BUILD.gn
new file mode 100644
index 0000000..8041445
--- /dev/null
+++ b/protos/perfetto/trace/gpu/BUILD.gn
@@ -0,0 +1,41 @@
+# 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.
+
+import("../../../../gn/perfetto.gni")
+import("../../../../gn/protozero_library.gni")
+
+gpu_proto_names = [
+ "gpu_counter_event.proto",
+ "gpu_render_stage_event.proto",
+]
+
+proto_library("lite") {
+ generate_python = false
+ deps = [
+ "../../common:lite",
+ ]
+ sources = gpu_proto_names
+ proto_in_dir = "$perfetto_root_path/protos"
+ proto_out_dir = "$perfetto_root_path/protos"
+}
+
+protozero_library("zero") {
+ deps = [
+ "../../common:zero",
+ ]
+ sources = gpu_proto_names
+ proto_in_dir = "$perfetto_root_path/protos"
+ proto_out_dir = "$perfetto_root_path/protos"
+ generator_plugin_options = "wrapper_namespace=pbzero"
+}
diff --git a/protos/perfetto/trace/gpu/gpu_counter_event.proto b/protos/perfetto/trace/gpu/gpu_counter_event.proto
new file mode 100644
index 0000000..5edee29
--- /dev/null
+++ b/protos/perfetto/trace/gpu/gpu_counter_event.proto
@@ -0,0 +1,39 @@
+/*
+ * 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";
+option optimize_for = LITE_RUNTIME;
+
+package perfetto.protos;
+
+message GpuCounterEvent {
+
+ // The first trace packet of each session should include counter_spec.
+ message GpuCounterSpec {
+ optional uint32 counter_id = 1;
+ optional string name = 2;
+ optional string description = 3;
+ }
+ repeated GpuCounterSpec counter_specs = 1;
+
+ message GpuCounter {
+ // required. Identifier for counter.
+ optional uint32 counter_id = 1;
+ // required. Value of the counter.
+ optional int64 value = 2;
+ }
+ repeated GpuCounter counters = 2;
+}
diff --git a/protos/perfetto/trace/gpu/gpu_render_stage_event.proto b/protos/perfetto/trace/gpu/gpu_render_stage_event.proto
new file mode 100644
index 0000000..c497ffa
--- /dev/null
+++ b/protos/perfetto/trace/gpu/gpu_render_stage_event.proto
@@ -0,0 +1,75 @@
+/*
+ * 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";
+option optimize_for = LITE_RUNTIME;
+
+package perfetto.protos;
+
+message GpuRenderStageEvent {
+ // required. Unique ID for the event.
+ optional uint64 event_id = 1;
+
+ // required. Start time of event in GPU clock.
+ optional uint64 start_time = 2;
+
+ // optional. Duration in GPU clock. If unset, this is a single time point
+ // event.
+ optional uint64 duration = 3;
+
+ // required. ID to a hardware queue description in the specifications.
+ optional int32 hw_queue_id = 4;
+
+ // required. ID to a render stage description in the specifications.
+ optional int32 stage_id = 5;
+
+ // required. GL context/VK device.
+ optional uint64 context = 6;
+
+ // 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 = 7;
+
+ // The first trace packet of each session should include a Specifications
+ // to enumerate all IDs that will be used.
+ message Specifications {
+ message ContextSpec {
+ optional uint64 context = 1;
+ optional int32 pid = 2;
+ }
+ optional ContextSpec context_spec = 1;
+
+ message Description {
+ optional int32 id = 1;
+ optional string name = 2;
+ optional string description = 3;
+ }
+
+ // 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 = 8;
+
+ // Extension for vendor's custom proto.
+ extensions 100 to 200;
+}
diff --git a/protos/perfetto/trace/trace_packet.proto b/protos/perfetto/trace/trace_packet.proto
index 1bf5bd7..6775a45 100644
--- a/protos/perfetto/trace/trace_packet.proto
+++ b/protos/perfetto/trace/trace_packet.proto
@@ -28,6 +28,8 @@
import "perfetto/trace/filesystem/inode_file_map.proto";
import "perfetto/trace/ftrace/ftrace_event_bundle.proto";
import "perfetto/trace/ftrace/ftrace_stats.proto";
+import "perfetto/trace/gpu/gpu_counter_event.proto";
+import "perfetto/trace/gpu/gpu_render_stage_event.proto";
import "perfetto/trace/interned_data/interned_data.proto";
import "perfetto/trace/perfetto/perfetto_metatrace.proto";
import "perfetto/trace/power/battery_counters.proto";
@@ -49,7 +51,7 @@
// TracePacket(s).
//
// Next reserved id: 13 (up to 15).
-// Next id: 52.
+// Next id: 54.
message TracePacket {
// TODO(primiano): in future we should add a timestamp_clock_domain field to
// allow mixing timestamps from different clock domains.
@@ -81,6 +83,8 @@
ChromeBenchmarkMetadata chrome_benchmark_metadata = 48;
PerfettoMetatrace perfetto_metatrace = 49;
ChromeMetadataPacket chrome_metadata = 51;
+ GpuCounterEvent gpu_counter_event = 52;
+ GpuRenderStageEvent gpu_render_stage_event = 53;
// Only used by TrackEvent.
ProcessDescriptor process_descriptor = 43;