From: Pekka Paalanen <ppaalanen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Gerd Hoffmann <kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Daniel Vetter <daniel-/w4YWyX8dFk@public.gmane.org>,
virtio-dev-sDuHXQ4OtrM4h7I2RyI4rWD2FQJk+8+b@public.gmane.org,
"Michael S. Tsirkin"
<mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"open list:ABI/API"
<linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>,
open list <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"open list:DRM DRIVERS"
<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
"open list:VIRTIO CORE,
NET..."
<virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Dave Airlie <airlied-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH] Add virtio gpu driver.
Date: Tue, 31 May 2016 10:00:41 +0300 [thread overview]
Message-ID: <20160531100041.22293fb1@eldfell> (raw)
In-Reply-To: <1464676160.5978.24.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1996 bytes --]
On Tue, 31 May 2016 08:29:20 +0200
Gerd Hoffmann <kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> Hi,
>
> > > Why attach the hotspot to the plane? Wouldn't it make more sense to
> > > make it a framebuffer property?
> >
> > We don't have properties on the framebuffer. I guess you /could/ just add
> > it internally to struct drm_framebuffer, and not bother exposing to
> > userspace. I guess that would be a lot simpler,
>
> Yes. I can simply stick the hotspot into drm_framebuffer in
> drm_mode_cursor_universal() and pick up the values in the driver's plane
> update function.
>
> > but it also means that
> > atomic userspace can't use hotspots before we add properties to fbs. And
> > doing that is a bit tricky since drm_framebuffer objects are meant to be
> > invariant - this assumption is deeply in-grained into the code all over
> > the place, everything just compares pointers when semantically it means to
> > compare the entire fb (including backing storage pointer/offsets and
> > everything).
>
> Hmm, the hotspot location for a given cursor image is invariant too, so
> I don't think that would be a big issue.
>
> I'd expect userspace define a bunch of cursors, then switch between them
> (instead of defining a single cursor, then constantly updating it).
Except updating a single cursor (well, two alternating buffers) is
exactly what Weston does, since there is no "set of cursors". On
Wayland, a cursor is just a regular surface like any other with
arbitrary content from a client, except it happens to be associated
with a pointer device.
Furthermore, in Weston a cursor plane is not special in any way. *Any*
client surface can go on the cursor plane if it fits. Universal planes,
and all that.
That's one existing userspace. I suppose that is sub-optimal for
virtual drivers, isn't it? But what else could Weston do without having
separate paths for "normal DRM" vs. "virtual DRM"?
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Daniel Vetter <daniel@ffwll.ch>,
virtio-dev@lists.oasis-open.org,
"Michael S. Tsirkin" <mst@redhat.com>,
"open list:ABI/API" <linux-api@vger.kernel.org>,
Rusty Russell <rusty@rustcorp.com.au>,
open list <linux-kernel@vger.kernel.org>,
"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
"open list:VIRTIO CORE,
NET..." <virtualization@lists.linux-foundation.org>,
Dave Airlie <airlied@redhat.com>
Subject: Re: [PATCH] Add virtio gpu driver.
Date: Tue, 31 May 2016 10:00:41 +0300 [thread overview]
Message-ID: <20160531100041.22293fb1@eldfell> (raw)
In-Reply-To: <1464676160.5978.24.camel@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1967 bytes --]
On Tue, 31 May 2016 08:29:20 +0200
Gerd Hoffmann <kraxel@redhat.com> wrote:
> Hi,
>
> > > Why attach the hotspot to the plane? Wouldn't it make more sense to
> > > make it a framebuffer property?
> >
> > We don't have properties on the framebuffer. I guess you /could/ just add
> > it internally to struct drm_framebuffer, and not bother exposing to
> > userspace. I guess that would be a lot simpler,
>
> Yes. I can simply stick the hotspot into drm_framebuffer in
> drm_mode_cursor_universal() and pick up the values in the driver's plane
> update function.
>
> > but it also means that
> > atomic userspace can't use hotspots before we add properties to fbs. And
> > doing that is a bit tricky since drm_framebuffer objects are meant to be
> > invariant - this assumption is deeply in-grained into the code all over
> > the place, everything just compares pointers when semantically it means to
> > compare the entire fb (including backing storage pointer/offsets and
> > everything).
>
> Hmm, the hotspot location for a given cursor image is invariant too, so
> I don't think that would be a big issue.
>
> I'd expect userspace define a bunch of cursors, then switch between them
> (instead of defining a single cursor, then constantly updating it).
Except updating a single cursor (well, two alternating buffers) is
exactly what Weston does, since there is no "set of cursors". On
Wayland, a cursor is just a regular surface like any other with
arbitrary content from a client, except it happens to be associated
with a pointer device.
Furthermore, in Weston a cursor plane is not special in any way. *Any*
client surface can go on the cursor plane if it fits. Universal planes,
and all that.
That's one existing userspace. I suppose that is sub-optimal for
virtual drivers, isn't it? But what else could Weston do without having
separate paths for "normal DRM" vs. "virtual DRM"?
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
next prev parent reply other threads:[~2016-05-31 7:00 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-24 16:07 [PATCH] Add virtio gpu driver Gerd Hoffmann
2015-03-24 16:07 ` Gerd Hoffmann
2015-03-24 16:15 ` Michael S. Tsirkin
2015-03-25 14:52 ` Gerd Hoffmann
2015-03-25 14:52 ` Gerd Hoffmann
[not found] ` <1427295121.23304.5.camel-3OfP5uLMi4C46o+2HkPkLj4oCIwMql/M@public.gmane.org>
2015-03-25 15:24 ` Michael S. Tsirkin
2015-03-25 15:24 ` Michael S. Tsirkin
2015-03-25 15:37 ` Gerd Hoffmann
2015-03-25 15:37 ` Gerd Hoffmann
2015-03-25 15:37 ` Gerd Hoffmann
2015-03-25 17:09 ` Michael S. Tsirkin
2015-03-25 17:09 ` Michael S. Tsirkin
2015-03-26 7:12 ` Gerd Hoffmann
2015-03-26 7:12 ` Gerd Hoffmann
[not found] ` <1427353959.9779.2.camel-3OfP5uLMi4C46o+2HkPkLj4oCIwMql/M@public.gmane.org>
2015-03-26 8:18 ` Michael S. Tsirkin
2015-03-26 8:18 ` Michael S. Tsirkin
2015-03-26 8:42 ` [virtio-dev] " Gerd Hoffmann
2015-03-26 8:42 ` Gerd Hoffmann
2015-03-26 8:42 ` Gerd Hoffmann
2015-03-26 9:04 ` Michael S. Tsirkin
2015-03-26 9:04 ` Michael S. Tsirkin
2015-03-26 11:38 ` Gerd Hoffmann
2015-03-26 11:38 ` Gerd Hoffmann
2015-03-26 11:53 ` Michael S. Tsirkin
[not found] ` <1427369923.9779.18.camel-3OfP5uLMi4C46o+2HkPkLj4oCIwMql/M@public.gmane.org>
2015-03-26 11:53 ` Michael S. Tsirkin
2015-03-26 11:53 ` Michael S. Tsirkin
2015-03-26 15:07 ` Gerd Hoffmann
2015-03-26 15:07 ` Gerd Hoffmann
2015-03-26 16:47 ` Michael S. Tsirkin
[not found] ` <1427382436.8786.15.camel-3OfP5uLMi4C46o+2HkPkLj4oCIwMql/M@public.gmane.org>
2015-03-26 16:47 ` Michael S. Tsirkin
2015-03-26 16:47 ` Michael S. Tsirkin
2015-03-26 22:49 ` Alex Elsayed
2015-03-27 8:08 ` Gerd Hoffmann
2015-03-27 8:08 ` Gerd Hoffmann
2015-03-26 15:07 ` Gerd Hoffmann
2015-03-26 16:52 ` One Thousand Gnomes
2015-03-26 16:52 ` One Thousand Gnomes
2015-03-26 11:38 ` Gerd Hoffmann
2015-03-26 9:04 ` Michael S. Tsirkin
2015-03-26 8:18 ` Michael S. Tsirkin
2015-03-26 7:12 ` Gerd Hoffmann
2015-03-25 15:24 ` Michael S. Tsirkin
2015-03-25 14:52 ` Gerd Hoffmann
2015-03-24 16:15 ` Michael S. Tsirkin
2015-03-24 16:50 ` Daniel Vetter
2015-03-24 17:04 ` Michael S. Tsirkin
2015-03-24 17:04 ` Michael S. Tsirkin
2015-03-24 17:04 ` Michael S. Tsirkin
2015-03-24 20:47 ` Paul Bolle
[not found] ` <1427213239-8775-1-git-send-email-kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-24 16:50 ` Daniel Vetter
2015-03-24 16:50 ` Daniel Vetter
2015-03-25 14:53 ` Gerd Hoffmann
2015-03-25 14:53 ` Gerd Hoffmann
[not found] ` <1427295189.23304.6.camel-3OfP5uLMi4C46o+2HkPkLj4oCIwMql/M@public.gmane.org>
2015-03-26 8:53 ` Daniel Vetter
2015-03-26 8:53 ` Daniel Vetter
2015-03-26 8:53 ` Daniel Vetter
2015-03-30 12:23 ` Gerd Hoffmann
2015-03-30 12:23 ` Gerd Hoffmann
2015-03-30 14:49 ` Daniel Vetter
2015-03-30 14:49 ` Daniel Vetter
2016-05-25 16:40 ` Daniel Vetter
2016-05-25 16:40 ` Daniel Vetter
2016-05-25 16:44 ` Emil Velikov
[not found] ` <CAKMK7uFUNT193f5djZD6T8cgRxxnZL73yrqbupPHOd2P-+Y=pQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-05-25 16:44 ` Emil Velikov
2016-05-25 16:44 ` Emil Velikov
2016-05-27 7:48 ` Gerd Hoffmann
2016-05-27 7:48 ` Gerd Hoffmann
2016-05-27 9:03 ` Daniel Vetter
2016-05-27 9:03 ` Daniel Vetter
2016-05-30 13:50 ` Gerd Hoffmann
2016-05-30 14:47 ` Daniel Vetter
2016-05-30 14:47 ` Daniel Vetter
2016-05-31 6:29 ` Gerd Hoffmann
2016-05-31 6:55 ` Daniel Vetter
[not found] ` <1464676160.5978.24.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-31 6:55 ` Daniel Vetter
2016-05-31 6:55 ` Daniel Vetter
2016-05-31 7:00 ` Pekka Paalanen [this message]
2016-05-31 7:00 ` Pekka Paalanen
2016-05-31 7:00 ` Pekka Paalanen
2016-05-31 6:29 ` Gerd Hoffmann
2016-05-30 14:47 ` Daniel Vetter
2016-05-30 13:50 ` Gerd Hoffmann
2016-05-27 9:03 ` Daniel Vetter
2016-05-27 7:48 ` Gerd Hoffmann
2015-03-30 12:23 ` Gerd Hoffmann
2015-03-24 20:47 ` Paul Bolle
2015-03-24 20:47 ` Paul Bolle
2015-03-24 22:50 ` Daniel Stone
2015-03-24 22:50 ` Daniel Stone
[not found] ` <CAPj87rN4pXHukDRD-e=ZrO1hcts04cSz1Hr9TNAgicGVWE5_-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-25 0:00 ` Dave Airlie
2015-03-25 0:00 ` Dave Airlie
2015-03-25 5:47 ` Daniel Stone
2015-03-25 5:47 ` Daniel Stone
2015-03-25 0:00 ` Dave Airlie
2015-03-25 15:19 ` Gerd Hoffmann
2015-03-25 15:19 ` Gerd Hoffmann
2015-03-25 15:19 ` Gerd Hoffmann
2015-03-24 22:50 ` Daniel Stone
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=20160531100041.22293fb1@eldfell \
--to=ppaalanen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=airlied-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=daniel-/w4YWyX8dFk@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org \
--cc=virtio-dev-sDuHXQ4OtrM4h7I2RyI4rWD2FQJk+8+b@public.gmane.org \
--cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.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.