Skip to content
  • Daniel Stone's avatar
    compositor-drm: Incrementally test plane states in mixed mode · a284d271
    Daniel Stone authored
    
    
    In the plane-only mode, we try to place every view on a hardware plane,
    and fail if we can't do this. This requires a full walk of the scene
    graph to come up with a complete configuration in order to be able to
    test.
    
    In mixed mode, we know at least some visible views will fail to be
    promoted to planes and must be composited via the renderer. In order to
    still use some planes where possible, we use atomic modesetting's
    test-only mode to incrementally test configurations.
    
    We know that the renderer output will always be visible, and because it
    is the renderer, that it will be occupying the scanout plane underneath
    everything else. The actual renderer buffer doesn't materialise until
    after assign_planes, because it cannot know what to render until then.
    
    However, in order to test whether a configuration is valid, we need the
    renderer buffer in the scanout plane. For testing, we fake this by
    temporarily stealing the old buffer - if it seems sufficiently
    compatible - and placing it in the state we construct. This is used to
    test whether or not a renderer buffer will work with the addition of
    overlay planes.
    
    Doing this incremental testing will allow us to enable plane usage for
    atomic by default, since we know ahead of time that our chosen plane
    configuration will work.
    
    Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
    Reviewed-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    a284d271