• Gil Dekel's avatar
    ui/display: Submit modeset requests individually during fallback · 36b941dd
    Gil Dekel authored
    This CL changes the fallback strategy in ConfigureDisplaysTask to submit
    requests individually when an atomic modeset test fails. More
    particularly, it groups displays by the physical connectors they are
    attached to and submit these request groups for atomic modesetting.
    
    For example, if the request {internal display, MST1-1, MST1-2, HDMI}
    fails as a whole, the next configuration attempt would repeatedly try
    each of the following groups until a modeset succeeds: {internal
    display}, {MST1-1, MST1-2} and {HDMI}. When a request group fails
    modeset, the request with the highest bandwidth requirement is
    downgraded first.
    
    Finally, if any of the request groups exhausts all its alternative
    modes, the entire configuration attempt terminates and signals back an
    ERROR status.
    
    In addition, this CL adds extensive testing for multiple display
    configurations, including multiple MST hubs, nested MST structures,
    MST and non-MST (i.e. independent) external displays, bad MST hubs, and
    configurations with no internal displays, such as a Chromebox.
    
    Bug: b:176819129, b:177356832
    Test: display_unittests && ozone_unittests
    Change-Id: Iac2b7f0330a74396c72f8d3867552dde593800e6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2621674
    Commit-Queue: Gil Dekel <gildekel@chromium.org>
    Reviewed-by: default avatarDaniel Nicoara <dnicoara@chromium.org>
    Reviewed-by: default avatarGil Dekel <gildekel@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#846418}
    36b941dd
configure_displays_task_unittest.cc 70.7 KB