AMD GFX12 modifiers

Simon Ser contact at emersion.fr
Tue Jul 2 16:38:58 UTC 2024


On Tuesday, July 2nd, 2024 at 15:22, Olsak, Marek <Marek.Olsak at amd.com> wrote:

> The code you are looking at seems out of date. The latest code is on
> amd-gfx.

Could you point me where? I searched for drm_fourcc.h and only found [1]
which I guess at least answers my question about
AMD_FMT_MOD_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK.

[1]: https://lore.kernel.org/amd-gfx/20240626183135.8606-5-marek.olsak@amd.com/

> That doesn't matter though. This seems to be a general
> question about modifiers. Here's the answer.
> 
> Modifier definitions don't describe compatibility between chips and generations. They only identify the memory layout. Because of that, hw support can't be inferred from modifiers. There could be multiple GFX definitions, tile numbers, and even modifiers from other vendors describing exactly the same layout, and all such equivalent modifiers can be exposed by the same hw.
> 
> The gfx12 modifiers work in exactly the same way as any other modifiers.

Thanks, I know how modifiers work, I'm a WSI person. :)

My questions were not generic questions about modifiers though. My
questions are about the technical detail of how GFX12 buffer tiling
properties are encoded in the modifier u64.

This is something I need to know for libdrm modifier pretty-printing,
as well as drm_info and drmdb. And in general, I think it's important to
audit changes to drm_fourcc.h, rules around modifiers are a bit
complicated and easy to get wrong.

> From: Alex Deucher <alexdeucher at gmail.com>
> Sent: July 1, 2024 13:09
> To: Simon Ser <contact at emersion.fr>; Olsak, Marek <Marek.Olsak at amd.com>
> Cc: Pillai, Aurabindo <Aurabindo.Pillai at amd.com>; DRI Development <dri-devel at lists.freedesktop.org>; Siqueira, Rodrigo <Rodrigo.Siqueira at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>; Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
> Subject: Re: AMD GFX12 modifiers
> 
> + Marek
> 
> On Sat, Jun 29, 2024 at 1:15 PM Simon Ser <contact at emersion.fr> wrote:
> >
> > Hi all!
> >
> > In 7ceb94e87bff ("drm/amd: Add gfx12 swizzle mode defs"), some
> > definitions were added for GFX12 modifiers. However I'm not quite sure
> > I understand how these work.
> >
> > Tile values seem to not be in the same namespace as GFX9 through GFX11,
> > is that correct? In other words, can GFX9 ~ GFX11 modifiers be used with
> > GFX12, or are these mutually exclusive?
> >
> > AMD_FMT_MOD_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK has a comment explaining
> > the 3 possible values, is there a reason why #defines are missing for
> > these values?
> >
> > The comment lists a lot more swizzle modes than just 64K_2D and 256K_2D,
> > any reason why the rest are missing (at least for the 2D ones)?
> >
> > Could you explain how the new GFX12 modifiers work?
> >
> > Would it be possible to update the comment on top of #define AMD_FMT_MOD
> > to reflect the GFX12 updates?
> >
> > Thanks,
> >
> > Simon


More information about the dri-devel mailing list