1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-21 20:38:57 +00:00

Instrumentation/FPS: Fixes attribute checking

Previously only the requirements for using SurfaceFlinger were checked,
regardless of the FPS method being used.
This commit now only ensure that a `View` attribute is present when
using SurfaceFlinge and a `package` name is available if using gfxinfo
otherwise falling back to SurfaceFlinger.
This commit is contained in:
Marc Bonnici 2017-08-14 15:39:40 +01:00
parent 12230da959
commit 58a8ea9051

View File

@ -158,11 +158,20 @@ class FpsInstrument(Instrument):
def setup(self, context):
workload = context.workload
if hasattr(workload, 'view'):
use_gfxinfo = not self.force_surfaceflinger and (self.device.get_sdk_version() >= 23)
if use_gfxinfo and not hasattr(workload, 'package'):
self.logger.debug('Workload does not contain a package; falling back to SurfaceFlinger...')
use_gfxinfo = False
if not use_gfxinfo and not hasattr(workload, 'view'):
self.logger.debug('Workload does not contain a view; disabling...')
self.is_enabled = False
return
self.fps_outfile = os.path.join(context.output_directory, 'fps.csv')
self.outfile = os.path.join(context.output_directory, 'frames.csv')
# Android M brings a new method of collecting FPS data
if not self.force_surfaceflinger and (self.device.get_sdk_version() >= 23):
if use_gfxinfo:
# gfxinfo takes in the package name rather than a single view/activity
# so there is no 'list_command' to run and compare against a list of
# views/activities. Additionally, clearing the stats requires the package
@ -186,9 +195,6 @@ class FpsInstrument(Instrument):
self.collector = LatencyCollector(self.outfile, self.device, params or '',
self.keep_raw, self.logger, self.dumpsys_period,
runcmd, lstcmd, self.fps_method)
else:
self.logger.debug('Workload does not contain a view; disabling...')
self.is_enabled = False
def start(self, context):
if self.is_enabled: