Index: tools/perf/page_sets/tough_scheduling_cases.json |
diff --git a/tools/perf/page_sets/tough_scheduling_cases.json b/tools/perf/page_sets/tough_scheduling_cases.json |
new file mode 100644 |
index 0000000000000000000000000000000000000000..418e0f1324f1dccb74af28875f3edc5920d6ad17 |
--- /dev/null |
+++ b/tools/perf/page_sets/tough_scheduling_cases.json |
@@ -0,0 +1,266 @@ |
+{ |
+ "description": "Tough scheduler latency test cases", |
+ "smoothness": { |
+ "action": "scroll" |
+ }, |
+ "pages": [ |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html", |
+ "why": "Simple scrolling baseline", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays" } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?main_busy", |
+ "why": "Simulate oversubscribed main thread", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.008 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?main_very_busy", |
+ "why": "Simulate oversubscribed main thread", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.024 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?medium_layers", |
+ "why": "Simulate a page with a a few graphics layers", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.004 }, |
+ "cc.DrawAndSwap": { "target_duration": 0.004 }, |
+ "gpu.SwapBuffers": { "target_duration": 0.004 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?many_layers", |
+ "why": "Simulate a page with many graphics layers", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.012 }, |
+ "cc.DrawAndSwap": { "target_duration": 0.012 }, |
+ "gpu.SwapBuffers": { "target_duration": 0.012 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?medium_raster", |
+ "why": "Simulate a page with expensive recording and rasterization", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.004 }, |
+ "cc.RasterRequiredForActivation": { "target_duration": 0.004 }, |
+ "gpu.AsyncTexImage": { "target_duration": 0.004 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html?heavy_raster", |
+ "why": "Simulate a page with expensive recording and rasterization", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.024 }, |
+ "cc.RasterRequiredForActivation": { "target_duration": 0.024 }, |
+ "gpu.AsyncTexImage": { "target_duration": 0.024 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html", |
+ "why": "Touch handler scrolling baseline", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays" } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?medium_handler", |
+ "why": "Medium cost touch handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.008 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?slow_handler", |
+ "why": "Slow touch handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.024 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?janky_handler", |
+ "why": "Touch handler that often takes a long time", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "alternating" } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?occasionally_janky_handler", |
+ "why": "Touch handler that occasionally takes a long time", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.024, "mode": "oneshot" } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html?super_slow_handler", |
+ "why": "Super expensive touch handler causes browser to scroll after a timeout", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.2 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/div_touch_handler.html", |
+ "why": "Super expensive touch handler that only occupies a part of the page", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "blink.HandleInputEvent": { "target_duration": 0.2 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html", |
+ "why": "requestAnimationFrame scrolling baseline", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays" } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_canvas.html", |
+ "why": "Test canvas blocking behavior", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays" } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html?medium_handler", |
+ "why": "Test a moderately heavy requestAnimationFrame handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.004 }, |
+ "cc.RasterRequiredForActivation": { "target_duration": 0.004 }, |
+ "gpu.AsyncTexImage": { "target_duration": 0.004 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html?heavy_handler", |
+ "why": "Test a moderately heavy requestAnimationFrame handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.024 }, |
+ "cc.RasterRequiredForActivation": { "target_duration": 0.024 }, |
+ "gpu.AsyncTexImage": { "target_duration": 0.024 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html?gpu_bound", |
+ "why": "Simulate a heavily GPU bound page", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "gpu.SwapBuffers": { "target_duration": 0.1 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_touch_animation.html", |
+ "why": "Stress test for the scheduler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays" } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_touch_animation.html?medium", |
+ "why": "Medium stress test for the scheduler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.004 }, |
+ "cc.DrawAndSwap": { "target_duration": 0.004 } |
+ } |
+ } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_touch_animation.html?heavy", |
+ "why": "Heavy stress test for the scheduler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "set_synthetic_delays", |
+ "delays": { |
+ "cc.BeginMainFrame": { "target_duration": 0.012 }, |
+ "cc.DrawAndSwap": { "target_duration": 0.012 } |
+ } |
+ } |
+ ] |
+ } |
+ ] |
+} |