mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This will run the blur passes on a subset of the texture passed into it that will actually be blurred. This is an optimization for backdrop filters. issue: https://github.com/flutter/flutter/issues/131580 test coverage: devicelab `backdrop_filter_perf_ios__timeline_summary` ## performance results This results in a 50% reduction in average GPU time in our benchmark, 79% reduction in the "99% percentile". ``` BEFORE "average_vsync_transitions_missed": 3.889423076923077, "90th_percentile_vsync_transitions_missed": 4.0, "99th_percentile_vsync_transitions_missed": 4.0, "average_vsync_frame_lag": 0.0, "90th_percentile_vsync_frame_lag": 0.0, "99th_percentile_vsync_frame_lag": 0.0, "average_layer_cache_count": 0.0, "90th_percentile_layer_cache_count": 0.0, "99th_percentile_layer_cache_count": 0.0, "average_frame_request_pending_latency": 16654.368333333332, "90th_percentile_frame_request_pending_latency": 16692.0, "99th_percentile_frame_request_pending_latency": 16749.0, "worst_layer_cache_count": 0.0, "average_layer_cache_memory": 0.0, "90th_percentile_layer_cache_memory": 0.0, "99th_percentile_layer_cache_memory": 0.0, "worst_layer_cache_memory": 0.0, "average_picture_cache_count": 0.0, "90th_percentile_picture_cache_count": 0.0, "99th_percentile_picture_cache_count": 0.0, "worst_picture_cache_count": 0.0, "average_picture_cache_memory": 0.0, "90th_percentile_picture_cache_memory": 0.0, "99th_percentile_picture_cache_memory": 0.0, "worst_picture_cache_memory": 0.0, "total_ui_gc_time": 0.659, "30hz_frame_percentage": 0.0, "60hz_frame_percentage": 100.0, "80hz_frame_percentage": 0.0, "90hz_frame_percentage": 0.0, "120hz_frame_percentage": 0.0, "illegal_refresh_rate_frame_count": 0, "average_gpu_frame_time": 52.13341346153846, "90th_percentile_gpu_frame_time": 62.5, "99th_percentile_gpu_frame_time": 62.5, "worst_gpu_frame_time": 62.5, "average_cpu_usage": 69.08979595918369, "90th_percentile_cpu_usage": 70.4, "99th_percentile_cpu_usage": 71.699999, "average_gpu_usage": 100.0, "90th_percentile_gpu_usage": 100.0, "99th_percentile_gpu_usage": 100.0, "average_memory_usage": 118.79942602040816, "90th_percentile_memory_usage": 138.125, "99th_percentile_memory_usage": 143.65625 AFTER "average_vsync_transitions_missed": 2.0, "90th_percentile_vsync_transitions_missed": 2.0, "99th_percentile_vsync_transitions_missed": 2.0, "average_vsync_frame_lag": 0.0, "90th_percentile_vsync_frame_lag": 0.0, "99th_percentile_vsync_frame_lag": 0.0, "average_layer_cache_count": 0.0, "90th_percentile_layer_cache_count": 0.0, "99th_percentile_layer_cache_count": 0.0, "average_frame_request_pending_latency": 16635.025, "90th_percentile_frame_request_pending_latency": 16715.0, "99th_percentile_frame_request_pending_latency": 16802.0, "worst_layer_cache_count": 0.0, "average_layer_cache_memory": 0.0, "90th_percentile_layer_cache_memory": 0.0, "99th_percentile_layer_cache_memory": 0.0, "worst_layer_cache_memory": 0.0, "average_picture_cache_count": 0.0, "90th_percentile_picture_cache_count": 0.0, "99th_percentile_picture_cache_count": 0.0, "worst_picture_cache_count": 0.0, "average_picture_cache_memory": 0.0, "90th_percentile_picture_cache_memory": 0.0, "99th_percentile_picture_cache_memory": 0.0, "worst_picture_cache_memory": 0.0, "total_ui_gc_time": 1.732, "30hz_frame_percentage": 0.0, "60hz_frame_percentage": 100.0, "80hz_frame_percentage": 0.0, "90hz_frame_percentage": 0.0, "120hz_frame_percentage": 0.0, "illegal_refresh_rate_frame_count": 0, "average_gpu_frame_time": 25.01558603491272, "90th_percentile_gpu_frame_time": 31.25, "99th_percentile_gpu_frame_time": 31.25, ``` [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style