Merge "Remove tasks blocking the End LatencyInfo slice from queuing."
diff --git a/tools/run_python_api_tests.py b/tools/run_python_api_tests.py
index 390c13d..f468896 100755
--- a/tools/run_python_api_tests.py
+++ b/tools/run_python_api_tests.py
@@ -47,6 +47,8 @@
runner = unittest.TextTestRunner(verbosity=3)
result = runner.run(suite)
+ return 0 if result.wasSuccessful() else 1
+
if __name__ == '__main__':
sys.exit(main())
diff --git a/tools/trace_processor b/tools/trace_processor
index 0ac3f19..516ee9d 100755
--- a/tools/trace_processor
+++ b/tools/trace_processor
@@ -31,8 +31,8 @@
import subprocess
TRACE_PROCESSOR_SHELL_SHAS = {
- 'linux': '4d8772482f49d3c34149e73fd7f4cd0c286652b0',
- 'mac': '69f34336ead727bea5f3db83daee5b5d5f88bf6a',
+ 'linux': 'ae000220a4697a9164cf79ffe02c875f81fa309a',
+ 'mac': '24f20496cd5fe4d2dc84544e13e367b730e5e55c',
}
TRACE_PROCESSOR_SHELL_PATH = tempfile.gettempdir()
TRACE_PROCESSOR_SHELL_BASE_URL = ('https://storage.googleapis.com/perfetto/')
diff --git a/tools/traceconv b/tools/traceconv
index 11c164d..718b145 100755
--- a/tools/traceconv
+++ b/tools/traceconv
@@ -32,8 +32,8 @@
TRACE_TO_TEXT_SHAS = {
- 'linux': '9e8dee1170a983a34ddeaf3d7c5045843df4c671',
- 'mac': 'ea93f3609e378168ef4b43744d6bbc99de6d1c47',
+ 'linux': 'bdbd589acc854a523747f80192ca008cb92a8ec3',
+ 'mac': '2f2c1b6304fcaaf536c219e667b96962f5c265db',
}
TRACE_TO_TEXT_PATH = tempfile.gettempdir()
TRACE_TO_TEXT_BASE_URL = ('https://storage.googleapis.com/perfetto/')
diff --git a/ui/BUILD.gn b/ui/BUILD.gn
index 28b53bd..0f8cc1f 100644
--- a/ui/BUILD.gn
+++ b/ui/BUILD.gn
@@ -384,6 +384,7 @@
"src/assets/rec_cpu_freq.png",
"src/assets/rec_cpu_voltage.png",
"src/assets/rec_ftrace.png",
+ "src/assets/rec_gpu_mem_total.png",
"src/assets/rec_java_heap_dump.png",
"src/assets/rec_lmk.png",
"src/assets/rec_logcat.png",
diff --git a/ui/src/assets/rec_gpu_mem_total.png b/ui/src/assets/rec_gpu_mem_total.png
new file mode 100644
index 0000000..4b5a44a
--- /dev/null
+++ b/ui/src/assets/rec_gpu_mem_total.png
Binary files differ
diff --git a/ui/src/common/state.ts b/ui/src/common/state.ts
index 24ae0e7..809e8f2 100644
--- a/ui/src/common/state.ts
+++ b/ui/src/common/state.ts
@@ -356,6 +356,7 @@
screenRecord: boolean;
gpuFreq: boolean;
+ gpuMemTotal: boolean;
ftrace: boolean;
atrace: boolean;
@@ -415,6 +416,7 @@
screenRecord: false,
gpuFreq: false,
+ gpuMemTotal: false,
ftrace: false,
atrace: false,
diff --git a/ui/src/controller/record_controller.ts b/ui/src/controller/record_controller.ts
index 69e9884..8a2e278 100644
--- a/ui/src/controller/record_controller.ts
+++ b/ui/src/controller/record_controller.ts
@@ -138,6 +138,10 @@
ftraceEvents.add('power/gpu_frequency');
}
+ if (uiCfg.gpuMemTotal) {
+ ftraceEvents.add('gpu_mem/gpu_mem_total');
+ }
+
if (uiCfg.cpuSyscall) {
ftraceEvents.add('raw_syscalls/sys_enter');
ftraceEvents.add('raw_syscalls/sys_exit');
diff --git a/ui/src/frontend/record_page.ts b/ui/src/frontend/record_page.ts
index 0019042..dc25082 100644
--- a/ui/src/frontend/record_page.ts
+++ b/ui/src/frontend/record_page.ts
@@ -214,13 +214,23 @@
}
function GpuSettings(cssClass: string) {
- return m(`.record-section${cssClass}`, m(Probe, {
- title: 'GPU frequency',
- img: 'rec_cpu_freq.png',
- descr: 'Records gpu frequency via ftrace',
- setEnabled: (cfg, val) => cfg.gpuFreq = val,
- isEnabled: (cfg) => cfg.gpuFreq
- } as ProbeAttrs));
+ return m(
+ `.record-section${cssClass}`,
+ m(Probe, {
+ title: 'GPU frequency',
+ img: 'rec_cpu_freq.png',
+ descr: 'Records gpu frequency via ftrace',
+ setEnabled: (cfg, val) => cfg.gpuFreq = val,
+ isEnabled: (cfg) => cfg.gpuFreq
+ } as ProbeAttrs),
+ m(Probe, {
+ title: 'GPU memory',
+ img: 'rec_gpu_mem_total.png',
+ descr: `Allows to track per process and global gpu memory total updates
+ via ftrace. (Available on recent Android 11+ kernels)`,
+ setEnabled: (cfg, val) => cfg.gpuMemTotal = val,
+ isEnabled: (cfg) => cfg.gpuMemTotal
+ } as ProbeAttrs));
}
function CpuSettings(cssClass: string) {