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..89224cfbd5cff6988276457b6110f52e6e7c0a04 |
--- /dev/null |
+++ b/tools/perf/page_sets/tough_scheduling_cases.json |
@@ -0,0 +1,170 @@ |
+{ |
+ "description": "Tough scheduler latency test cases", |
+ "smoothness": { |
+ "action": "scroll" |
+ }, |
+ "pages": [ |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html", |
+ "why": "Simple scrolling baseline" |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/simple_text_page.html#main_busy", |
+ "why": "Simulate oversubscribed main thread", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "cc.DrawAndSwap", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.012 }, |
+ { "action": "synthetic_delay", "name": "cc.DrawAndSwap", "target_duration": 0.012 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "cc.RasterRequiredForActivation", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.024 }, |
+ { "action": "synthetic_delay", "name": "cc.RasterRequiredForActivation", "target_duration": 0.024 }, |
+ { "action": "synthetic_delay", "name": "gpu.AsyncTexImage", "target_duration": 0.024 } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html", |
+ "why": "Touch handler scrolling baseline" |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/touch_handler_scrolling.html#medium_handler", |
+ "why": "Medium cost touch handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "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": "synthetic_delay", "name": "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": "synthetic_delay", "name": "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": "synthetic_delay", "name": "blink.HandleInputEvent", "target_duration": 0.2 } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html", |
+ "why": "requestAnimationFrame scrolling baseline" |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_canvas.html", |
+ "why": "Test canvas blocking behavior" |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf.html#medium_handler", |
+ "why": "Test a moderately heavy requestAnimationFrame handler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "cc.RasterRequiredForActivation", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.024 }, |
+ { "action": "synthetic_delay", "name": "cc.RasterRequiredForActivation", "target_duration": 0.024 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "gpu.SwapBuffers", "target_duration": 0.1 } |
+ ] |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_touch_animation.html", |
+ "why": "Stress test for the scheduler" |
+ }, |
+ { |
+ "url": "file://tough_scheduling_cases/raf_touch_animation.html#medium", |
+ "why": "Medium stress test for the scheduler", |
+ "navigate_steps": [ |
+ { "action": "navigate" }, |
+ { "action": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.004 }, |
+ { "action": "synthetic_delay", "name": "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": "synthetic_delay", "name": "cc.BeginMainFrame", "target_duration": 0.012 }, |
+ { "action": "synthetic_delay", "name": "cc.DrawAndSwap", "target_duration": 0.012 } |
+ ] |
+ } |
+ ] |
+} |