On Tue, Feb 10, 2026 at 3:57 PM Alex Deucher <[email protected]> wrote:
>
> On Tue, Feb 10, 2026 at 3:36 PM Erik Kurzinger <[email protected]> wrote:
> >
> > amdgpu_dm_plane_get_plane_modifiers always adds DRM_FORMAT_MOD_LINEAR to
> > the list of modifiers. However, with gfx12,
> > amdgpu_dm_plane_add_gfx12_modifiers also adds that modifier to the list.
> > So we end up with two copies. Most apps just ignore this but some (like
> > Weston) don't like it.
> >
> > As a fix, we modify amdgpu_dm_plane_add_gfx12_modifiers to not add
> > DRM_FORMAT_MOD_LINEAR to the list, matching the behavior of similar
> > functions for other chips.
> >
> > Signed-off-by: Erik Kurzinger <[email protected]>
>
> Acked-by: Alex Deucher <[email protected]>
>

Whoops, sorry, I've realized this is not correct. The logic later in the
function assumes linear will be at the end of the array. I'll send a
revised patch shortly.

> > ---
> >  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c 
> > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > index d3e62f511c8f..12bd0c908d09 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
> > @@ -704,7 +704,7 @@ static void amdgpu_dm_plane_add_gfx12_modifiers(struct 
> > amdgpu_device *adev,
> >         uint8_t max_comp_block[] = {2, 1, 0};
> >         uint64_t max_comp_block_mod[ARRAY_SIZE(max_comp_block)] = {0};
> >         uint8_t i = 0, j = 0;
> > -       uint64_t gfx12_modifiers[] = {mod_256k, mod_64k, mod_4k, mod_256b, 
> > DRM_FORMAT_MOD_LINEAR};
> > +       uint64_t gfx12_modifiers[] = {mod_256k, mod_64k, mod_4k, mod_256b};
> >
> >         for (i = 0; i < ARRAY_SIZE(max_comp_block); i++)
> >                 max_comp_block_mod[i] = 
> > AMD_FMT_MOD_SET(DCC_MAX_COMPRESSED_BLOCK, max_comp_block[i]);
> > --
> > 2.53.0
> >

Reply via email to