Can now set the buffer sizes for these two traces, as well as set
tracing level and type for WM. Tested for multiple combinations of
config settings, as well as if settings are left as
placeholders/selected as the name of the config.
Bug: b/200159899
Test: Run a SF/WM trace with arbitrary config settings and check that all loads as normal.
Merged-In: I50ccc271bd2f90dba1d22c3e8c568490c4bf831f
Change-Id: I50ccc271bd2f90dba1d22c3e8c568490c4bf831f
(cherry picked from commit 9d3f674027)
Tool for visualizing window manager traces
Developing WinScope
When the trace is enabled, Window Manager and Surface Flinger capture and
save current state to a file at each point of interest.
frameworks/base/core/proto/android/server/windowmanagertrace.proto
and frameworks/native/services/surfaceflinger/layerproto/layerstrace.proto
contain the proto definitions for their internal states.
Checking out code and setting up environment
- Install Yarn, a JS package manager
- Download Android source
- Navigate to
development/tools/winscope - Run
yarn install
Building & testing changes
- Navigate to
development/tools/winscope - Run
yarn run dev
Update IntDefMapping
- Build
framework-minus-apex-intdefsmodule and a preprocessor will generate the latest IntDefMapping. From theANDROID_ROOTrun:
. build/envsetup.sh
m framework-minus-apex-intdefs
- Copy the generated
intDefMapping.jsonfiles to theprebuiltsrepo.
python3 -c 'import sys,json,collections; print(json.dumps(collections.OrderedDict(sorted(collections.ChainMap(*map(lambda x:json.load(open(x)), sys.argv[1:])).items())), indent=2))' $(find out/soong/.intermediates/frameworks/base -iname intDefMapping.json) > ./prebuilts/misc/common/winscope/intDefMapping.json
- Upload the changes.
cd ./prebuilts/misc/common/winscope
repo start intdef-update
git commit -am "Update intdef mapping" "Test: N/A"
repo upload --cbr .
Building with internal extensions
Internal paths in vendor/ which are not available in AOSP must be replaced by stub files. See getWaylandSafePath for an example