• liyuqian's avatar
    Shader warm up (#27660) · a44f174e
    liyuqian authored
    This patch adds a default shader warm up process which moves shader compilation from the animation time to the startup time. This also provides an extension for `runApp` so developers can customize the warm up process.
    
    This should reduce our worst_frame_rasterizer_time_millis from ~100ms to ~20-30ms for both flutter_gallery and complex_layout benchmarks. Besides, this should also have a significant improvement on 90th and 99th percentile time (50%-100% speedup in some cases, but I haven't tested them thoroughly; I'll let our device lab collect the data afterwards).
    
    The tradeoff the is the startup time (time to first frame). Our `flutter run --profile --trace-startup` seems to be a little noisy and I see about 100ms-200ms increase in that measurement for complex_layout and flutter_gallery. Note that this only happens on the first run after install or data wipe. Later the Skia persistent cache will remove the overhead.
    
    This also adds a cubic_bezier benchmark to test the custom shader warm up process.
    
    This should fix https://github.com/flutter/flutter/issues/813 (either by `defaultShaderWarmUp`, or a `customShaderWarmUp`).
    a44f174e
Name
Last commit
Last update
..
alignment.dart Loading commit data...
basic_types.dart Loading commit data...
beveled_rectangle_border.dart Loading commit data...
binding.dart Loading commit data...
border_radius.dart Loading commit data...
borders.dart Loading commit data...
box_border.dart Loading commit data...
box_decoration.dart Loading commit data...
box_fit.dart Loading commit data...
box_shadow.dart Loading commit data...
circle_border.dart Loading commit data...
clip.dart Loading commit data...
colors.dart Loading commit data...
continuous_rectangle_border.dart Loading commit data...
debug.dart Loading commit data...
decoration.dart Loading commit data...
decoration_image.dart Loading commit data...
edge_insets.dart Loading commit data...
flutter_logo.dart Loading commit data...
fractional_offset.dart Loading commit data...
geometry.dart Loading commit data...
gradient.dart Loading commit data...
image_cache.dart Loading commit data...
image_decoder.dart Loading commit data...
image_provider.dart Loading commit data...
image_resolution.dart Loading commit data...
image_stream.dart Loading commit data...
matrix_utils.dart Loading commit data...
notched_shapes.dart Loading commit data...
paint_utilities.dart Loading commit data...
rounded_rectangle_border.dart Loading commit data...
shader_warm_up.dart Loading commit data...
shape_decoration.dart Loading commit data...
stadium_border.dart Loading commit data...
strut_style.dart Loading commit data...
text_painter.dart Loading commit data...
text_span.dart Loading commit data...
text_style.dart Loading commit data...