• Bas Nieuwenhuizen's avatar
    Revert "drm/amd/display: ignore modifiers when checking for format support" · 366e817e
    Bas Nieuwenhuizen authored
    This reverts commit 5089c4a8
    
    .
    
    This breaks validation and enumeration of display capable modifiers.
    
    The early return true means the rest of the validation code never gets
    executed, and we need that to enumerate the right modifiers to userspace
    for the format.
    
    The modifiers that are in the initial list generated for a plane are the
    superset for all formats and we need the proper checks in this function
    to filter some of them out for formats with which they're invalid to be
    used.
    
    Furthermore, the safety contract here is that we validate the incoming
    modifiers to ensure the kernel can handle them and the display hardware
    can handle them. This includes e.g. rejecting multi-plane images with DCC.
    
    Note that the legacy swizzle mechanism allows encoding more swizzles, and
    at fb creation time we convert them to modifiers and reject those with
    no corresponding modifiers. If we are seeing rejections I'm happy to
    help define modifiers that correspond to those, or if absolutely needed
    implement a fallback path to allow for less strict validation of the
    legacy path.
    
    However, I'd like to revert this patch, since any of these is going to
    be a significant rework of the patch, and I'd rather not the regression
    gets into a release or forgotten in the meantime.
    Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: default avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    366e817e
amdgpu_dm.c 346 KB