1*35238bceSAndroid Build Coastguard Worker# Manual for bottleneck_report.py script 2*35238bceSAndroid Build Coastguard Worker 3*35238bceSAndroid Build Coastguard Worker## Script name and location 4*35238bceSAndroid Build Coastguard Worker 5*35238bceSAndroid Build Coastguard Worker| name | bottleneck_report.py | 6*35238bceSAndroid Build Coastguard Worker| location | VKGLCTS_ROOT/scripts/log | 7*35238bceSAndroid Build Coastguard Worker 8*35238bceSAndroid Build Coastguard Worker## Description 9*35238bceSAndroid Build Coastguard Worker 10*35238bceSAndroid Build Coastguard WorkerThe script parses qpa report file and produces an output containing three lists: 11*35238bceSAndroid Build Coastguard Worker 12*35238bceSAndroid Build Coastguard Worker1. A list of single tests sorted descending by the duration of execution. On this list one can 13*35238bceSAndroid Build Coastguard Workerfind exceptionally lenghty tests. 14*35238bceSAndroid Build Coastguard Worker 15*35238bceSAndroid Build Coastguard Worker2. A list of groups of tests sorted descending by their total duration of execution. This list 16*35238bceSAndroid Build Coastguard Workercan be used to spot a groups that either contain a large amount of tests or multiple slow tests. 17*35238bceSAndroid Build Coastguard Worker 18*35238bceSAndroid Build Coastguard Worker3. A list of groups of tests sorted descending by an average duration of the test in this group 19*35238bceSAndroid Build Coastguard Worker(a total duration of group divided by number of tests in the group). Presents groups containing 20*35238bceSAndroid Build Coastguard Workerslow tests. 21*35238bceSAndroid Build Coastguard Worker 22*35238bceSAndroid Build Coastguard WorkerThis script requires that qpa file contains tests timing data (one created with sufficiently new 23*35238bceSAndroid Build Coastguard Workerversion of cts framework). 24*35238bceSAndroid Build Coastguard Worker 25*35238bceSAndroid Build Coastguard Worker## Usage 26*35238bceSAndroid Build Coastguard Worker 27*35238bceSAndroid Build Coastguard Worker`python path/to/bottleneck_report.py TESTLOG COUNT` 28*35238bceSAndroid Build Coastguard Worker 29*35238bceSAndroid Build Coastguard Worker`TESTLOG` - a fully qualified path to read-accessible qpa report file. 30*35238bceSAndroid Build Coastguard Worker`COUNT` - number of entries output in each section. 31*35238bceSAndroid Build Coastguard Worker 32*35238bceSAndroid Build Coastguard Worker## Example 33*35238bceSAndroid Build Coastguard Worker 34*35238bceSAndroid Build Coastguard Worker`python bottleneck_report.py c:\khronos\build\external\vulkancts\modules\vulkan\TestResults.qpa 5` 35*35238bceSAndroid Build Coastguard Worker 36*35238bceSAndroid Build Coastguard WorkerProduces following output: 37*35238bceSAndroid Build Coastguard Worker 38*35238bceSAndroid Build Coastguard Worker``` 39*35238bceSAndroid Build Coastguard WorkerThe biggest tests time of execution 40*35238bceSAndroid Build Coastguard WorkerIndex Time Full name 41*35238bceSAndroid Build Coastguard Worker1 624010 dEQP-VK.subgroups.ballot_other.subgroupballotfindmsb_tess_control 42*35238bceSAndroid Build Coastguard Worker2 614621 dEQP-VK.subgroups.shuffle.subgroupshuffle_int_tess_control 43*35238bceSAndroid Build Coastguard Worker3 549420 dEQP-VK.subgroups.quad.subgroupquadbroadcast_1_int_tess_control 44*35238bceSAndroid Build Coastguard Worker4 532983 dEQP-VK.subgroups.ballot_other.subgroupballotinclusivebitcount_tess_control 45*35238bceSAndroid Build Coastguard Worker5 524019 dEQP-VK.subgroups.quad.subgroupquadbroadcast_0_int_tess_control 46*35238bceSAndroid Build Coastguard Worker 47*35238bceSAndroid Build Coastguard WorkerGroups Statistics 48*35238bceSAndroid Build Coastguard WorkerTotal time of execution: 758611214 49*35238bceSAndroid Build Coastguard WorkerNumber of executed tests: 4935 50*35238bceSAndroid Build Coastguard Worker 51*35238bceSAndroid Build Coastguard WorkerThe biggest total time of execution 52*35238bceSAndroid Build Coastguard WorkerIndex Time Test count Full name 53*35238bceSAndroid Build Coastguard Worker1 324242753 2100 dEQP-VK.subgroups.arithmetic 54*35238bceSAndroid Build Coastguard Worker2 137952758 980 dEQP-VK.subgroups.quad 55*35238bceSAndroid Build Coastguard Worker3 124482580 700 dEQP-VK.subgroups.clustered 56*35238bceSAndroid Build Coastguard Worker4 82749504 560 dEQP-VK.subgroups.shuffle 57*35238bceSAndroid Build Coastguard Worker5 49100267 287 dEQP-VK.subgroups.ballot_broadcast 58*35238bceSAndroid Build Coastguard Worker 59*35238bceSAndroid Build Coastguard WorkerThe biggest time of execution per test 60*35238bceSAndroid Build Coastguard WorkerIndex Time Test count Avg. test time Full name 61*35238bceSAndroid Build Coastguard Worker1 124482580 700 177832 dEQP-VK.subgroups.clustered 62*35238bceSAndroid Build Coastguard Worker2 49100267 287 171081 dEQP-VK.subgroups.ballot_broadcast 63*35238bceSAndroid Build Coastguard Worker3 324242753 2100 154401 dEQP-VK.subgroups.arithmetic 64*35238bceSAndroid Build Coastguard Worker4 82749504 560 147766 dEQP-VK.subgroups.shuffle 65*35238bceSAndroid Build Coastguard Worker5 1992289 14 142306 dEQP-VK.subgroups.shape 66*35238bceSAndroid Build Coastguard Worker``` 67