• Ville Syrjälä's avatar
    drm/i915/fbc: Use the correct plane stride · e5ec1f95
    Ville Syrjälä authored
    Consult the actual plane stride instead of the fb stride. The two
    will disagree when we remap the gtt. The plane stride is what the
    hw will be fed so that's what we should look at for the FBC
    retrictions/cfb allocation.
    
    Since we no longer require a fence we are going to attempt using
    FBC with remapping, and so we should look at correct stride.
    
    With 90/270 degree rotation the plane stride is stored in units
    of pixels, so we need to conver it to bytes for the purposes
    of calculating the cfb stride. Not entirely sure if this matches
    the hw behaviour though. Need to reverse engineer that at some
    point...
    
    We also need to reorder the pixel format check vs. stride check
    to avoid triggering a spurious WARN(stride & 63) with cpp==1 and
    plane stride==32.
    
    v2: Try to deal with rotated stride and related WARN
    
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Fixes: 691f7ba5 ("drm/i915/display/fbc: Make fences a nice-to-have for GEN9+")
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200702153723.24327-2-ville.syrjala@linux.intel.comReviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
    e5ec1f95
intel_fbc.c 40.3 KB