Linux Media Controller development
 help / color / mirror / Atom feed
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: Tomasz Figa <tfiga@chromium.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Daniel Almeida <daniel.almeida@collabora.com>,
	 Hidenori Kobayashi <hidenorik@chromium.org>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Sean Young <sean@mess.org>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Sebastian Fricke <sebastian.fricke@collabora.com>,
	Ricardo Ribalda <ribalda@chromium.org>
Subject: Re: [ANN] Request for Topics and registration for a Media Summit September 16th
Date: Wed, 12 Jun 2024 16:09:53 -0400	[thread overview]
Message-ID: <478a8ea7c62b5a17ca645fdd3d06e677bb5d8572.camel@collabora.com> (raw)
In-Reply-To: <CAAFQd5ApRq4WL_PcGKp+58u64yKfvyxgfCxXxiZjqzSugzV1FA@mail.gmail.com>

Hi Tomasz,

Le mercredi 12 juin 2024 à 18:01 +0900, Tomasz Figa a écrit :
> >   I would like to
> > deprecate MMAP too and only focus on DMABUF. I believe Linux needs a
> > centralized buffer allocator, instead of having multiple allocation APIs
> > scattered in different places. There are design ideas in gralloc that we
> > could benefit from.
> > 
> 
> Given that we now have DMA-buf heaps in mainline, it sounds much more
> realistic. It would certainly help eliminate some issues in the vb2
> layer, such as vb2-dma-sg having its own open coded page allocation
> that can't handle DMA addressing limitations (which can be fixed with
> some additions to the DMA API, but eliminating the problem altogether
> is way better than any other solution.)
> 
> That said, as we already use a centralized DMA-buf allocator in
> ChromeOS and don't really care about the MMAP mode, I'm definitely
> biased here. We would need to hear from people working on userspace
> which still uses it (if there is any).

This aspect is what makes the V4L2 support in chromium really sad to non
ChromeOS users. ChromeOS makes arbitrary decisions like that codec video node
must be named video-dec0/enc0 (there is solutions to that using udev and
topologies btw), and decided that minigbm is the only way allocate memory for
these codecs on Linux. In practice, in every project where we need Chromium V4L2
codecs, we endup having to patch it to do MMAP/dmabuf export support and EGL
import support (the other way around).

I'm not bashing against ChromeOS, I just want to underline that this is far from
a solve problem, and no one is actively working on it. I don't see minigbm
becoming an acceptable goto library, since EOL (in Chromebook term) hardware get
removed and you need a CLA to contribute. I also strongly disagree that the
calculation of auxiliary buffer needed for codecs reference frame should be done
in a third party library. The driver must validate these sizes, and is the
logical place to have this logic, not a third party system allocator. On that
front though, its a bit like the video-decX dev node naming, there is a generic
solution, since the size is exposed through TRY/S_FMT calls already.

I'll repeat that as often as needed, there is a lot of gaps toward removing mmap
(dmabuf exportation) in CODEC drivers which ChromeOS only have hacks around and
no generic solution suitable for generic linux community. In FFMPEG and
GStreamer, we use mmap + dmabuf export because that is actually usable in a
generic manner today.

Nicolas

  parent reply	other threads:[~2024-06-12 20:09 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-06 11:33 [ANN] Request for Topics and registration for a Media Summit September 16th Hans Verkuil
2024-05-06 11:40 ` Ricardo Ribalda
2024-05-06 12:31 ` Laurent Pinchart
2024-05-06 13:32 ` Sean Young
2024-05-07  6:40 ` Tommaso Merciai
2024-05-08  7:16   ` Hans Verkuil
2024-05-08 12:19     ` Tommaso Merciai
2024-05-14 16:16 ` Daniel Almeida
2024-06-12  4:12   ` Tomasz Figa
2024-06-12  6:46     ` Hans Verkuil
2024-06-12  7:10       ` Steve Cho
2024-06-12  7:54       ` Mauro Carvalho Chehab
2024-06-12  8:22         ` Tomasz Figa
2024-06-12  8:34           ` Laurent Pinchart
2024-06-12  9:01             ` Tomasz Figa
2024-06-12  9:20               ` Laurent Pinchart
2024-06-12  9:33                 ` Tomasz Figa
2024-06-12  9:40                   ` Laurent Pinchart
2024-06-12 20:09               ` Nicolas Dufresne [this message]
2024-06-12 20:19                 ` Laurent Pinchart
2024-06-13  7:17               ` Chen-Yu Tsai
2024-06-12 20:44             ` Mauro Carvalho Chehab
2024-06-12 20:52               ` Laurent Pinchart
2024-06-13  7:08                 ` Hans Verkuil
2024-06-13  9:12                   ` Laurent Pinchart
2024-06-13  9:38                     ` Hans Verkuil
2024-06-13  9:59                       ` Laurent Pinchart
2024-06-12 20:35           ` Mauro Carvalho Chehab
2024-06-13  7:38             ` Hans Verkuil
2024-06-13  8:14               ` Tomasz Figa
2024-06-13  8:35                 ` Hans Verkuil
2024-06-13 10:08                 ` Laurent Pinchart
2024-06-12  8:06       ` Tomasz Figa
2024-06-12  7:46     ` Laurent Pinchart
2024-05-15  9:32 ` Hans Verkuil
2024-06-04 21:48   ` Steve Cho
2024-06-17 12:43 ` Hans Verkuil
2024-06-19  9:28 ` Tomasz Figa
2024-06-28 11:59 ` Sakari Ailus
2024-07-16 13:11   ` Sakari Ailus

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=478a8ea7c62b5a17ca645fdd3d06e677bb5d8572.camel@collabora.com \
    --to=nicolas.dufresne@collabora.com \
    --cc=daniel.almeida@collabora.com \
    --cc=hidenorik@chromium.org \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=ribalda@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sean@mess.org \
    --cc=sebastian.fricke@collabora.com \
    --cc=tfiga@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox