Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drm/vc4: Allow option to transpose the output on the writeback connector #6312

Merged
merged 9 commits into from
Nov 7, 2024

Commits on Nov 6, 2024

  1. drm/vc4: Correct condition for ignoring a plane to src rect =0, not <1.0

    The logic for dropping a plane less than zero didn't account for the
    possibility that a plane could be being upscaled with a src_rect with
    width/height < 1 pixel, but not 0 subpixels.
    
    Check for not 0 subpixels, not < 1, in both vc4 and vc6 paths.
    
    Fixes: dac6168 ("drm/vc4: Drop planes that have 0 destination size")
    Fixes: f73b18e ("drm/vc4: Drop planes that are completely off-screen")
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 6, 2024
    Configuration menu
    Copy the full SHA
    9c7c439 View commit details
    Browse the repository at this point in the history
  2. drm/vc4: Use the TPZ scaling filter for 1x1 source images

    The documentation says that the TPZ filter can not upscale,
    and requesting a scaling factor > 1:1 will output the original
    image in the top left, and repeat the right/bottom most pixels
    thereafter.
    That fits perfectly with upscaling a 1x1 image which is done
    a fair amount by some compositors to give solid colour, and it
    saves a large amount of LBM (TPZ is based on src size, whilst
    PPF is based on dest size).
    
    Select TPZ filter for images with source rectangle <=1.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 6, 2024
    Configuration menu
    Copy the full SHA
    fb62053 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2024

  1. drm: Set non-desktop property to true for writeback and virtual conne…

    …ctors
    
    The non-desktop property "Indicates the output should be ignored for
    purposes of displaying a standard desktop environment or console."
    
    That sounds like it should be true for all writeback and virtual
    connectors as you shouldn't render a desktop to them, so set it
    by default.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    3c8d2ee View commit details
    Browse the repository at this point in the history
  2. drm: Increase plane_mask to 64bit.

    The limit of 32 planes per DRM device is dictated by the use
    of planes_mask returning a u32.
    
    Change to a u64 such that 64 planes can be supported by a device.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    e00206c View commit details
    Browse the repository at this point in the history
  3. drm/vc4: Increase number of overlay planes from 16 to 48

    The HVS can accept an arbitrary number of planes, provided
    that the overall pixel read load is within limits, and
    the display list can fit into the dlist memory.
    
    Now that DRM will support 64 planes per device, increase
    the number of overlay planes from 16 to 48 so that the
    dlist complexity can be increased (eg 4x4 video wall on
    each of 3 displays).
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    c8ec538 View commit details
    Browse the repository at this point in the history
  4. drm/vc4: Assign 32 overlay planes to writeback only

    Instead of having 48 generic overlay planes, assign 32 to the
    writeback connector so that there is no ambiguity in wlroots
    when trying to find a plane for composition using the writeback
    connector vs display.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    2977d74 View commit details
    Browse the repository at this point in the history
  5. drm: Add a DRM_MODE_TRANSPOSE option to the DRM rotation property

    Some hardware will implement transpose as a rotation operation,
    which when combined with X and Y reflect can result in a rotation,
    but is a discrete operation in its own right.
    
    Add an option for transpose only.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    d481535 View commit details
    Browse the repository at this point in the history
  6. drm: Add a rotation parameter to connectors.

    Some connectors, particularly writeback, can implement flip
    or transpose operations as writing back to memory.
    
    Add a connector rotation property to control this.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    0cc8508 View commit details
    Browse the repository at this point in the history
  7. drm/vc4: txp: Add a rotation property to the writeback connector

    The txp block can implement transpose as it writes out the image
    data, so expose that through the new connector rotation property.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 committed Nov 7, 2024
    Configuration menu
    Copy the full SHA
    23efc1d View commit details
    Browse the repository at this point in the history