All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Simon Ser <contact@emersion.fr>
Cc: "Jonas Ådahl" <jadahl@redhat.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: Atomic KMS API lacks the ability to set cursor hot-spot coordinates
Date: Wed, 18 Mar 2020 16:04:07 +0100	[thread overview]
Message-ID: <5c9f7c0e-e225-dfbf-f5bf-cb1c1cc4ac08@redhat.com> (raw)
In-Reply-To: <ADrBkiVj05c2ZYEz46BNJrrChY-PCxme8HOeHHGOLjIR5XpBZoyIY5aUnSfXCm0wrYr0-Iuh80vnZqmRQ_jZaslv2Q2P7N6q5yCG0AeWovU=@emersion.fr>

Hi,

On 3/18/20 3:38 PM, Simon Ser wrote:
> Hi,
> 
>> 1) Letting the VM-viewer window-system draw the cursor as it normally
>> would draw it.
> 
> Why is this important? Can't the VM viewer hide the cursor and use a
> sub-surface to manually draw the cursor plane configured by the guest?

Because then moving the cursor as seen by the user requires a round trip
through the VM and that adds latency, esp. when the VM viewer is viewing
a VM which is running somewhere else over the network.

Also note that a subsurface is a Wayland specific solution, where as
the VM-viewer may be running on X11, Windows, Mac OS, etc.

> This would also allow the compositor running inside the VM to correctly
> have control over the cursor position, which is necessary for pointer
> constraints.

Vms basically have 2 mouse modes:

1) Seamless, this works well for all apps which don't do weird things
with the cursor. This is what 99% of users want

2) Grab/confine the mouse on the first click inside the VM-viewer window
and constantly warp it to the center so that it can move "endlessly"
combined with drawing the VM's mouse cursor as a software sprite.

Combined with a special key combo to release the cursor and allow it
to leave the VM window in case the user wants to interact with anything
else on their desktop. AKA the "this user experience sucks" mode which
sometimes is necessary for guests which don't support absolute input
coordinates, or for special use cases.

Mode 2. can be used in case of apps inside the guest which want need
to constrain the pointer to stay inside a part-of the vm-viewer window,
note that the most prominent example of such apps are VM-viewer's
themselves and the whole purpose of seamless mode is to not need this
less then ideal user experience mode.

Anyways as I mentioned in the p.s. to my original mail already, this
is exactly NOT the kind of feedback I'm looking for. Seamless mode
exists, it has done so for at least a decade, probably a lot longer.

It works everywhere, across multiple platforms and hypervisors,
except with the KMS atomic API. The need to set hotspot coordinates
is not something which is up to discussion from my pov. What is up
for discussion is how to extend the KMS atomic API to allow this.

Regards,

Hans

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-03-18 15:04 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-18 14:28 Atomic KMS API lacks the ability to set cursor hot-spot coordinates Hans de Goede
2020-03-18 14:38 ` Simon Ser
2020-03-18 15:04   ` Hans de Goede [this message]
2020-03-18 15:22     ` Simon Ser
2020-03-19 11:35       ` Michel Dänzer
2020-03-19 11:52         ` Hans de Goede
2020-03-19 12:54           ` Pekka Paalanen
2020-03-19 13:51             ` Michel Dänzer
2020-03-19 14:48               ` Pekka Paalanen
2020-03-19 15:01                 ` Hans de Goede
2020-03-19  9:57   ` Pekka Paalanen
2020-03-19 10:00     ` Simon Ser
2020-03-18 14:39 ` Hans de Goede
2020-03-18 15:09 ` Daniel Vetter
2020-03-18 22:20   ` Hans de Goede
2020-03-19 10:00 ` Pekka Paalanen
2020-03-19 11:49   ` Hans de Goede
2020-03-19 12:58     ` Pekka Paalanen
2020-03-19 13:16       ` Daniel Vetter
2020-03-19 13:24         ` Simon Ser
2020-03-19 14:30       ` Hans de Goede
2020-03-19 15:16         ` Pekka Paalanen
2020-03-19 18:18           ` Hans de Goede
2020-03-19 20:14             ` Simon Ser
2020-03-19 20:49               ` Hans de Goede
2020-03-19 21:07                 ` Simon Ser
2020-03-19 22:57                   ` Thomas Hellström (VMware)
2020-03-20  9:13                     ` Pekka Paalanen
2020-03-20 10:59                       ` Thomas Hellström (VMware)
2020-03-20 11:27                         ` Simon Ser
2020-03-20 11:47                           ` Thomas Hellström (VMware)
2020-03-21  8:56                             ` Thomas Hellström (VMware)

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=5c9f7c0e-e225-dfbf-f5bf-cb1c1cc4ac08@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=contact@emersion.fr \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jadahl@redhat.com \
    /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.