From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Daniel Stone <daniel@fooishbar.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, simona@ffwll.ch,
dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org,
freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
spice-devel@lists.freedesktop.org,
linux-renesas-soc@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
Andy Yan <andyshrk@163.com>
Subject: Re: [PATCH v2 25/25] drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Sun, 19 Jan 2025 19:08:59 +0200 [thread overview]
Message-ID: <20250119170859.GA2467@pendragon.ideasonboard.com> (raw)
In-Reply-To: <e8125edc-928a-47b4-80a3-224c945f6d68@ideasonboard.com>
On Thu, Jan 16, 2025 at 12:07:49PM +0200, Tomi Valkeinen wrote:
> On 16/01/2025 11:38, Laurent Pinchart wrote:
> > On Thu, Jan 16, 2025 at 10:43:40AM +0200, Laurent Pinchart wrote:
> >> On Wed, Jan 15, 2025 at 02:34:26PM +0000, Daniel Stone wrote:
> >>> On Wed, 15 Jan 2025 at 14:20, Tomi Valkeinen wrote:
> >>>> No disagreement there, we need CREATE_DUMB2.
> >>>>
> >>>> My point is that we have the current UAPI, and we have userspace using
> >>>> it, but we don't have clear rules what the ioctl does with specific
> >>>> parameters, and we don't document how it has to be used.
> >>>>
> >>>> Perhaps the situation is bad, and all we can really say is that
> >>>> CREATE_DUMB only works for use with simple RGB formats, and the behavior
> >>>> for all other formats is platform specific. But I think even that would
> >>>> be valuable in the UAPI docs.
> >>>
> >>> Yeah, CREATE_DUMB only works for use with simple RGB formats in a
> >>> linear layout. Not monochrome or YUV or tiled or displayed rotated or
> >>> whatever.
> >>>
> >>> If it happens to accidentally work for other uses, that's fine, but
> >>> it's not generically reliable for anything other than simple linear
> >>> RGB. It's intended to let you do splash screens, consoles, recovery
> >>> password entries, and software-rendered compositors if you really
> >>> want. Anything more than that isn't 'dumb'.
> >>
> >> We have lots of software out there that rely on CREATE_DUMB supporting
> >> YUV linear formats, and lots of drivers (mostly on Arm I suppose) that
> >> implement YUV support in CREATE_DUMB. I'm fine replacing it with
> >> something better, but I think we need a standard ioctl that can create
> >> linear YUV buffers. I've been told many times that DRM doesn't want to
> >> standardize buffer allocation further than what CREATE_DUMB is made for.
> >> Can we reconsider this rule then ?
> >
> > Actually... Instead of adding a CREATE_DUMB2, it would be best on trying
> > to leverage DMA heaps and deprecate allocating from the KMS device.
>
> If we allocate from DMA heaps, I think we then need a DRM ioctl which
> will tell you how big buffer(s) you need, based on the size and format.
We will at least a kernel API to expose constraints to userspace.
Whether that should calculate the buffer size for a given format, or
expose information to userspace to enable that calculation, I'm not
sure. But regardless of which option we pick, I agree we likely need a
new API to enable usage of DMA heaps as allocators.
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Daniel Stone <daniel@fooishbar.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, simona@ffwll.ch,
dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org,
freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
spice-devel@lists.freedesktop.org,
linux-renesas-soc@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
Andy Yan <andyshrk@163.com>
Subject: Re: [PATCH v2 25/25] drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Sun, 19 Jan 2025 19:08:59 +0200 [thread overview]
Message-ID: <20250119170859.GA2467@pendragon.ideasonboard.com> (raw)
In-Reply-To: <e8125edc-928a-47b4-80a3-224c945f6d68@ideasonboard.com>
On Thu, Jan 16, 2025 at 12:07:49PM +0200, Tomi Valkeinen wrote:
> On 16/01/2025 11:38, Laurent Pinchart wrote:
> > On Thu, Jan 16, 2025 at 10:43:40AM +0200, Laurent Pinchart wrote:
> >> On Wed, Jan 15, 2025 at 02:34:26PM +0000, Daniel Stone wrote:
> >>> On Wed, 15 Jan 2025 at 14:20, Tomi Valkeinen wrote:
> >>>> No disagreement there, we need CREATE_DUMB2.
> >>>>
> >>>> My point is that we have the current UAPI, and we have userspace using
> >>>> it, but we don't have clear rules what the ioctl does with specific
> >>>> parameters, and we don't document how it has to be used.
> >>>>
> >>>> Perhaps the situation is bad, and all we can really say is that
> >>>> CREATE_DUMB only works for use with simple RGB formats, and the behavior
> >>>> for all other formats is platform specific. But I think even that would
> >>>> be valuable in the UAPI docs.
> >>>
> >>> Yeah, CREATE_DUMB only works for use with simple RGB formats in a
> >>> linear layout. Not monochrome or YUV or tiled or displayed rotated or
> >>> whatever.
> >>>
> >>> If it happens to accidentally work for other uses, that's fine, but
> >>> it's not generically reliable for anything other than simple linear
> >>> RGB. It's intended to let you do splash screens, consoles, recovery
> >>> password entries, and software-rendered compositors if you really
> >>> want. Anything more than that isn't 'dumb'.
> >>
> >> We have lots of software out there that rely on CREATE_DUMB supporting
> >> YUV linear formats, and lots of drivers (mostly on Arm I suppose) that
> >> implement YUV support in CREATE_DUMB. I'm fine replacing it with
> >> something better, but I think we need a standard ioctl that can create
> >> linear YUV buffers. I've been told many times that DRM doesn't want to
> >> standardize buffer allocation further than what CREATE_DUMB is made for.
> >> Can we reconsider this rule then ?
> >
> > Actually... Instead of adding a CREATE_DUMB2, it would be best on trying
> > to leverage DMA heaps and deprecate allocating from the KMS device.
>
> If we allocate from DMA heaps, I think we then need a DRM ioctl which
> will tell you how big buffer(s) you need, based on the size and format.
We will at least a kernel API to expose constraints to userspace.
Whether that should calculate the buffer size for a given format, or
expose information to userspace to enable that calculation, I'm not
sure. But regardless of which option we pick, I agree we likely need a
new API to enable usage of DMA heaps as allocators.
--
Regards,
Laurent Pinchart
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2025-01-19 17:09 UTC|newest]
Thread overview: 153+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-09 14:56 [PATCH v2 00/25] drm/dumb-buffers: Fix and improve buffer-size calculation Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-09 14:56 ` [PATCH v2 01/25] drm/dumb-buffers: Sanitize output on errors Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-09 14:56 ` [PATCH v2 02/25] drm/dumb-buffers: Provide helper to set pitch and size Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-10 1:49 ` Andy Yan
2025-01-10 1:49 ` Andy Yan
2025-01-10 13:23 ` [PATCH " Thomas Zimmermann
2025-01-10 13:23 ` Thomas Zimmermann
2025-01-13 3:53 ` Andy Yan
2025-01-13 3:53 ` Andy Yan
2025-01-13 7:52 ` Thomas Zimmermann
2025-01-13 7:52 ` Thomas Zimmermann
2025-01-09 14:56 ` [PATCH v2 03/25] drm/gem-dma: Compute dumb-buffer sizes with drm_mode_size_dumb() Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-09 14:56 ` [PATCH v2 04/25] drm/gem-shmem: " Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-09 14:56 ` [PATCH v2 05/25] drm/gem-vram: " Thomas Zimmermann
2025-01-09 14:56 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 06/25] drm/armada: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 07/25] drm/exynos: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 08/25] drm/gma500: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 09/25] drm/hibmc: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 10/25] drm/imx/ipuv3: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-10 8:06 ` Philipp Zabel
2025-01-10 8:06 ` Philipp Zabel
2025-01-09 14:57 ` [PATCH v2 11/25] drm/loongson: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-15 3:50 ` Sui Jingfeng
2025-01-15 3:50 ` Sui Jingfeng
2025-01-09 14:57 ` [PATCH v2 12/25] drm/mediatek: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 13/25] drm/msm: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-13 8:25 ` Dmitry Baryshkov
2025-01-13 8:25 ` Dmitry Baryshkov
2025-01-09 14:57 ` [PATCH v2 14/25] drm/nouveau: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 15/25] drm/omapdrm: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-14 14:04 ` Tomi Valkeinen
2025-01-14 14:04 ` Tomi Valkeinen
2025-01-09 14:57 ` [PATCH v2 16/25] drm/qxl: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 17/25] drm/renesas/rcar-du: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 18/25] drm/renesas/rz-du: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 19/25] drm/rockchip: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 22:59 ` Heiko Stübner
2025-01-09 22:59 ` Heiko Stübner
2025-01-09 14:57 ` [PATCH v2 20/25] drm/tegra: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 21/25] drm/virtio: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-02-20 16:10 ` Dmitry Osipenko
2025-02-20 16:10 ` Dmitry Osipenko
2025-01-09 14:57 ` [PATCH v2 22/25] drm/vmwgfx: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-10 18:18 ` Zack Rusin
2025-01-10 18:18 ` Zack Rusin
2025-01-09 14:57 ` [PATCH v2 23/25] drm/xe: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 16:05 ` Matthew Auld
2025-01-09 16:05 ` Matthew Auld
2025-01-09 16:26 ` Thomas Zimmermann
2025-01-09 16:26 ` Thomas Zimmermann
2025-01-09 17:15 ` Matthew Auld
2025-01-09 17:15 ` Matthew Auld
2025-01-09 14:57 ` [PATCH v2 24/25] drm/xen: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-09 14:57 ` [PATCH v2 25/25] drm/xlnx: " Thomas Zimmermann
2025-01-09 14:57 ` Thomas Zimmermann
2025-01-15 10:13 ` Tomi Valkeinen
2025-01-15 10:13 ` Tomi Valkeinen
2025-01-15 10:26 ` Thomas Zimmermann
2025-01-15 10:26 ` Thomas Zimmermann
2025-01-15 10:58 ` Tomi Valkeinen
2025-01-15 10:58 ` Tomi Valkeinen
2025-01-15 11:37 ` Thomas Zimmermann
2025-01-15 11:37 ` Thomas Zimmermann
2025-01-15 12:06 ` Tomi Valkeinen
2025-01-15 12:06 ` Tomi Valkeinen
2025-01-15 12:34 ` Thomas Zimmermann
2025-01-15 12:34 ` Thomas Zimmermann
2025-01-15 13:33 ` Tomi Valkeinen
2025-01-15 13:33 ` Tomi Valkeinen
2025-01-15 13:45 ` Thomas Zimmermann
2025-01-15 13:45 ` Thomas Zimmermann
2025-01-15 14:20 ` Tomi Valkeinen
2025-01-15 14:20 ` Tomi Valkeinen
2025-01-15 14:34 ` Daniel Stone
2025-01-15 14:34 ` Daniel Stone
2025-01-16 8:43 ` Laurent Pinchart
2025-01-16 8:43 ` Laurent Pinchart
2025-01-16 9:38 ` Laurent Pinchart
2025-01-16 9:38 ` Laurent Pinchart
2025-01-16 10:07 ` Tomi Valkeinen
2025-01-16 10:07 ` Tomi Valkeinen
2025-01-19 17:08 ` Laurent Pinchart [this message]
2025-01-19 17:08 ` Laurent Pinchart
2025-01-16 8:09 ` Thomas Zimmermann
2025-01-16 8:09 ` Thomas Zimmermann
2025-01-16 10:03 ` Tomi Valkeinen
2025-01-16 10:03 ` Tomi Valkeinen
2025-01-16 10:17 ` Geert Uytterhoeven
2025-01-16 10:17 ` Geert Uytterhoeven
2025-01-16 10:26 ` Tomi Valkeinen
2025-01-16 10:26 ` Tomi Valkeinen
2025-01-16 10:35 ` Dmitry Baryshkov
2025-01-16 10:35 ` Dmitry Baryshkov
2025-01-16 12:24 ` Daniel Stone
2025-01-16 12:24 ` Daniel Stone
2025-01-19 11:29 ` Sui Jingfeng
2025-01-19 11:29 ` Sui Jingfeng
2025-01-19 12:18 ` Tomi Valkeinen
2025-01-19 12:18 ` Tomi Valkeinen
2025-01-19 14:59 ` Sui Jingfeng
2025-01-19 14:59 ` Sui Jingfeng
2025-01-19 15:22 ` Tomi Valkeinen
2025-01-19 15:22 ` Tomi Valkeinen
2025-01-19 16:26 ` Sui Jingfeng
2025-01-19 16:26 ` Sui Jingfeng
2025-01-19 20:14 ` Laurent Pinchart
2025-01-19 20:14 ` Laurent Pinchart
2025-01-20 7:04 ` Sui Jingfeng
2025-01-20 7:04 ` Sui Jingfeng
2025-01-20 3:34 ` Sui Jingfeng
2025-01-20 3:34 ` Sui Jingfeng
2025-01-20 7:49 ` Thomas Zimmermann
2025-01-20 7:49 ` Thomas Zimmermann
2025-01-20 8:51 ` Tomi Valkeinen
2025-01-20 8:51 ` Tomi Valkeinen
2025-01-20 8:57 ` Thomas Zimmermann
2025-01-20 8:57 ` Thomas Zimmermann
2025-01-20 7:54 ` Thomas Zimmermann
2025-01-20 7:54 ` Thomas Zimmermann
2025-01-09 16:36 ` ✓ CI.Patch_applied: success for drm/dumb-buffers: Fix and improve buffer-size calculation Patchwork
2025-01-09 16:36 ` ✗ CI.checkpatch: warning " Patchwork
2025-01-09 16:39 ` ✓ CI.KUnit: success " Patchwork
2025-01-09 17:01 ` ✓ CI.Build: " Patchwork
2025-01-09 17:03 ` ✓ CI.Hooks: " Patchwork
2025-01-09 17:05 ` ✓ CI.checksparse: " Patchwork
2025-01-09 17:33 ` ✓ Xe.CI.BAT: " Patchwork
2025-01-10 13:29 ` ✗ CI.Patch_applied: failure for drm/dumb-buffers: Fix and improve buffer-size calculation (rev2) Patchwork
2025-01-12 1:54 ` ✗ Xe.CI.Full: failure for drm/dumb-buffers: Fix and improve buffer-size calculation Patchwork
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=20250119170859.GA2467@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andyshrk@163.com \
--cc=daniel@fooishbar.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=imx@lists.linux.dev \
--cc=intel-xe@lists.freedesktop.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=simona@ffwll.ch \
--cc=spice-devel@lists.freedesktop.org \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux.dev \
--cc=xen-devel@lists.xenproject.org \
/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.