Thread (23 messages) 23 messages, 7 authors, 2021-06-25

Re: [PATH 0/4] [RFC] Support virtual DRM

From: Pekka Paalanen <ppaalanen@gmail.com>
Date: 2021-06-23 11:41:26
Also in: dri-devel, linux-doc, linux-renesas-soc, lkml

On Wed, 23 Jun 2021 18:22:47 +0900
Esaki Tomohito [off-list ref] wrote:
On 2021/06/23 17:39, Pekka Paalanen wrote:
quoted
On Wed, 23 Jun 2021 15:56:05 +0900
Esaki Tomohito [off-list ref] wrote:
  
quoted
Hi,
Thank you all for your comments.

On 2021/06/22 17:12, Pekka Paalanen wrote:  
quoted
On Tue, 22 Jun 2021 13:03:39 +0900
Esaki Tomohito [off-list ref] wrote:
    
quoted
Hi, Enrico Weigelt
Thank you for reply.

On 2021/06/22 1:05, Enrico Weigelt, metux IT consult wrote:    
quoted
On 21.06.21 08:27, Tomohito Esaki wrote:

Hi,
      
quoted
Virtual DRM splits the overlay planes of a display controller into multiple
virtual devices to allow each plane to be accessed by each process.

This makes it possible to overlay images output from multiple processes on a
display. For example, one process displays the camera image without compositor
while another process overlays the UI.      
Are you attempting to create an simple in-kernel compositor ?      
I think the basic idea is the same as DRMlease.    
Hi,

indeed. Why not use DRM leases instead?
    
In this use case, I understand that this is not possible with DRM lease,
am I wrong?
I understand that it’s not possible to lease a plane and update planes
on the same output independently from different processes in current DRM
lease.

If this is correct, what do you think of adding support for plane leases
to the DRM lease to handle this case?  
Hi,

I would love to see support added for leasing individual planes,
especially to replace the virtual DRM proposal which seems to be
eradicating everything that atomic modesetting and nuclear pageflip
have built over the many years.

However, please note that "on the same output independently" is
physically impossible. Semantically, the planes define what a CRTC
scans out, and the CRTC defines the scanout timings. Therefore it is not
possible to update individual planes independently, they will all
always share the timings of the CRTC.

That combined with KMS not allowing multiple updates to be queued at
the same time for the same CRTC (atomic commits and legacy pageflips
returning EBUSY) makes the plane updates very much inter-dependent.

If you want to avoid EBUSY and have planes update on the vblank you
intended, you really need a userspace compositor to pull everything
together *before* submitting anything to the kernel.  
Hi,

Thank you for your comments and advice.
I will consider leasing a plane.
Hi,

I wish you considered a userspace compositor first, once more, with
passion.

It does not need to be Weston, and it does not need to use Wayland.
Just a userspace daemon that owns the whole display device and somehow
talks to whatever else wants stuff on screen.

I have not seen any evidence that leasing individual planes would do
you any good. I can easily see it doing you harm. I'm only saying that
it would be better than the virtual DRM proposal if you absolutely have
to go there. Please, consider not going there at all.

"On the same output independently" is not possible for the very simple
reason that the pixel data needs to be streamed serially to a monitor.


Thanks,
pq

Attachments

  • (unnamed) [application/pgp-signature] 833 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help