Gecko:DisplayListBasedInvalidation: Difference between revisions

Line 43: Line 43:
= Debugging Invalidations Problems =
= Debugging Invalidations Problems =
== Invalidation Logging ==
== Invalidation Logging ==
This requires an --enable-debug build. Enable logging by flipping the nglayout.debug.invalidation pref to true (or else, prior to v24, defining 'DEBUG_INVALIDATIONS' in view/src/nsViewManager.cpp and layout/base/FrameLayerBuilder.cpp and recompile/link these files).
* This requires an --enable-debug or --enable-dump-painting build.
Running with MOZ_DUMP_PAINT_LIST=1 (only works if you also built with --enable-dump-painting) in your environment is recommended to view the display list that is being analyzed by DLBI, but note that this adds a huge amount of extra log data.
* Enable invalidating logging by flipping the nglayout.debug.invalidation pref or setting env MOZ_DUMP_INVALIDATION (or else, prior to v24, defining 'DEBUG_INVALIDATIONS' in view/src/nsViewManager.cpp and layout/base/FrameLayerBuilder.cpp and recompile/link these files).
* Running with MOZ_DUMP_PAINT_LIST=1 (only works if you also built with --enable-dump-painting) in your environment is recommended to view the display list that is being analyzed by DLBI, but note that this adds a huge amount of extra log data.


This should then dump (to stdout) all invalidations generated by DLBI, along with the reason. Note that this doesn't include invalidations that come from the layers system (e.g. new layer creation, or layer backing store deleted due to inactivity).
This should then dump (to stderr) all invalidations generated by DLBI, along with the reason. Note that this doesn't include invalidations that come from the layers system (e.g. new layer creation, or layer backing store deleted due to inactivity).


There are five general reasons for invalidation:
There are five general reasons for invalidation:
Confirmed users
336

edits