blob: b790d61a142f289af3742ccd8be741643214f33b [file]
# Copyright (C) 2026 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/perfetto_cpp_blob_header.gni")
assert(enable_perfetto_trace_processor_sqlite)
# Per (device, curve_type) CSVs. Each curve_type's compressed blob is the
# union of the rows in every device folder for that curve type.
_cpu_1d_csvs = [
"data/MT6897/cpu_1d.csv",
"data/SM8750/cpu_1d.csv",
"data/SXR2230P/cpu_1d.csv",
"data/Tensor/cpu_1d.csv",
"data/Tensor_G4/cpu_1d.csv",
"data/Tensor_G5/cpu_1d.csv",
"data/monaco/cpu_1d.csv",
"data/neo/cpu_1d.csv",
]
_cpu_2d_csvs = [
"data/MT6897/cpu_2d.csv",
"data/SXR2230P/cpu_2d.csv",
"data/Tensor/cpu_2d.csv",
"data/Tensor_G4/cpu_2d.csv",
"data/Tensor_G5/cpu_2d.csv",
]
_gpu_csvs = [
"data/Tensor/gpu.csv",
"data/Tensor_G5/gpu.csv",
]
_l3_csvs = [
"data/Tensor/l3.csv",
"data/Tensor_G4/l3.csv",
"data/Tensor_G5/l3.csv",
]
_tpu_csvs = [ "data/Tensor_G5/tpu.csv" ]
_curve_blob_targets = []
template("_wattson_curve_blob") {
perfetto_cpp_blob_header(target_name) {
script = "gen_wattson_curves.py"
sources = invoker.sources
generated_header = "${target_gen_dir}/${invoker.curve_type}_curves.h"
pass_gen_dir = true
extra_args = [
"--namespace",
"perfetto::trace_processor::wattson",
"--curve-type",
invoker.curve_type,
]
}
}
_wattson_curve_blob("gen_cpu_1d_curves") {
curve_type = "cpu_1d"
sources = _cpu_1d_csvs
}
_wattson_curve_blob("gen_cpu_2d_curves") {
curve_type = "cpu_2d"
sources = _cpu_2d_csvs
}
_wattson_curve_blob("gen_gpu_curves") {
curve_type = "gpu"
sources = _gpu_csvs
}
_wattson_curve_blob("gen_l3_curves") {
curve_type = "l3"
sources = _l3_csvs
}
_wattson_curve_blob("gen_tpu_curves") {
curve_type = "tpu"
sources = _tpu_csvs
}
source_set("wattson") {
sources = [
"plugin.cc",
"table_function.cc",
"table_function.h",
"wattson.h",
]
deps = [
":gen_cpu_1d_curves",
":gen_cpu_2d_curves",
":gen_gpu_curves",
":gen_l3_curves",
":gen_tpu_curves",
"../../../../gn:default_deps",
"../../../../include/perfetto/trace_processor:basic_types",
"../../../base",
"../../containers",
"../../core/dataframe",
"../../core/plugin",
"../../storage",
"../../types",
"../../util:gzip",
]
}