1#!/usr/bin/env python3 2# Copyright (C) 2024 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License a 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16from python.generators.diff_tests.testing import Path, DataPath, Metric, Systrace 17from python.generators.diff_tests.testing import Csv, Json, TextProto, BinaryProto 18from python.generators.diff_tests.testing import DiffTestBlueprint 19from python.generators.diff_tests.testing import TestSuite 20from python.generators.diff_tests.testing import PrintProfileProto 21 22 23class AndroidGpu(TestSuite): 24 25 def test_memory_gpu_per_process(self): 26 return DiffTestBlueprint( 27 trace=Path('../../metrics/graphics/gpu_metric.py'), 28 query=""" 29 INCLUDE PERFETTO MODULE android.gpu.memory; 30 SELECT * 31 FROM android_gpu_memory_per_process; 32 """, 33 out=Csv(""" 34 "ts","dur","upid","gpu_memory" 35 2,2,2,6 36 4,6,2,8 37 4,5,1,2 38 9,1,1,8 39 6,1,3,7 40 7,3,3,10 41 """)) 42 43 def test_gpu_frequency(self): 44 return DiffTestBlueprint( 45 trace=Path('../../metrics/graphics/gpu_frequency_metric.textproto'), 46 query=""" 47 INCLUDE PERFETTO MODULE android.gpu.frequency; 48 SELECT * 49 FROM android_gpu_frequency; 50 """, 51 out=Csv(""" 52 "ts","dur","gpu_id","gpu_freq" 53 200001000000,2000000,0,585000 54 200003000000,1000000,0,0 55 200004000000,2000000,0,603000 56 200002000000,3000000,1,400000 57 200005000000,1000000,1,758000 58 """)) 59