From: Boris Brezillon <boris.brezillon@collabora.com>
To: Caterina Shablia <caterina.shablia@collabora.com>
Cc: David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
kernel@collabora.com, "Steven Price" <steven.price@arm.com>,
"Liviu Dudau" <liviu.dudau@arm.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] drm: add ARM interleaved 64k modifier
Date: Tue, 27 Jan 2026 13:13:34 +0100 [thread overview]
Message-ID: <20260127131334.4e5a6226@fedora> (raw)
In-Reply-To: <20260127110740.473562-1-caterina.shablia@collabora.com>
On Tue, 27 Jan 2026 11:07:39 +0000
Caterina Shablia <caterina.shablia@collabora.com> wrote:
> This modifier is primarily intended to be used by panvk to implement
> sparse partially-resident images with better map and unmap
> performance, and no worse access performance, compared to
> implementing them in terms of U-interleaved.
>
> With this modifier, the plane is divided into 64k byte 1:1 or 2:1
> -sided tiles. The 64k tiles are laid out linearly. Each 64k tile
> is divided into blocks of 16x16 texel blocks each, which themselves
> are laid out linearly within a 64k tile. Then within each such
> 16x16 block, texel blocks are laid out according to U order,
> similar to 16X16_BLOCK_U_INTERLEAVED.
>
> Unlike 16X16_BLOCK_U_INTERLEAVED, the layout does not depend on
> whether a format is compressed or not.
>
> The hardware features corresponding to this modifier are available
> starting with v10 (second gen Valhall.)
>
> The corresponding panvk MR can be found at:
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38986
>
> Previous patch:
> https://lists.freedesktop.org/archives/dri-devel/2026-January/546655.html
>
> Changes since v1:
>
> * Rewrite the description of the modifier to be hopefully unambiguous.
>
> Signed-off-by: Caterina Shablia <caterina.shablia@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
> ---
> include/uapi/drm/drm_fourcc.h | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
> index e527b24bd824..452f901513ad 100644
> --- a/include/uapi/drm/drm_fourcc.h
> +++ b/include/uapi/drm/drm_fourcc.h
> @@ -1422,6 +1422,22 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
> #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
> DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
>
> +/*
> + * ARM 64k interleaved modifier
> + *
> + * This is used by ARM Mali v10+ GPUs. With this modifier, the plane is divided
> + * into 64k byte 1:1 or 2:1 -sided tiles. The 64k tiles are laid out linearly.
> + * Each 64k tile is divided into blocks of 16x16 texel blocks, which are
> + * themselves laid out linearly within a 64k tile. Then within each 16x16
> + * block, texel blocks are laid out according to U order, similar to
> + * 16X16_BLOCK_U_INTERLEAVED.
> + *
> + * Note that unlike 16X16_BLOCK_U_INTERLEAVED, the layout does not change
> + * depending on whether a format is compressed or not.
> + */
> +#define DRM_FORMAT_MOD_ARM_INTERLEAVED_64K \
> + DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 2ULL)
> +
> /*
> * Allwinner tiled modifier
> *
>
> base-commit: f08f665f8cda9520d98ee24545d306a92f386616
next prev parent reply other threads:[~2026-01-27 12:13 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-27 11:07 [PATCH v2] drm: add ARM interleaved 64k modifier Caterina Shablia
2026-01-27 12:13 ` Boris Brezillon [this message]
2026-01-28 13:39 ` Liviu Dudau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260127131334.4e5a6226@fedora \
--to=boris.brezillon@collabora.com \
--cc=airlied@gmail.com \
--cc=caterina.shablia@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liviu.dudau@arm.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=steven.price@arm.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.