rasterizerThreshold property

int rasterizerThreshold

The rasterizer threshold is an integer specifying the number of frame intervals that the rasterizer must miss before it decides that the frame is suitable for capturing an SkPicture trace for further analysis.

For example, if you want a trace of all pictures that could not be rendered by the rasterizer within the frame boundary (and hence caused jank), specify 1. Specifying 2 will trace all pictures that took more than 2 frame intervals to render. Adjust this value to only capture the particularly expensive pictures while skipping the others. Specifying 0 disables all capture.

Captured traces are placed on your device in the application documents directory in this form "trace_<collection_time>.skp". These can be viewed in the Skia debugger.

Notes: The rasterizer only takes into account the time it took to render the already constructed picture. This include the Skia calls (which is also why an SkPicture trace is generated) but not any of the time spent in dart to construct that picture. To profile that part of your code, use the instrumentation available in observatory.

To decide what threshold interval to use, count the number of horizontal lines displayed in the performance overlay for the rasterizer (not the engine). That should give an idea of how often frames are skipped (and by how many frame intervals).


final int rasterizerThreshold;