All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Kim, Dongwon" <dongwon.kim@intel.com>
Cc: <qemu-devel@nongnu.org>,  <kraxel@redhat.com>,
	 <berrange@redhat.com>, <philmd@linaro.org>,
	 <marcandre.lureau@redhat.com>, <vivek.kasireddy@intel.com>
Subject: Re: [RFC PATCH 6/9] ui/gtk: Add a new parameter to assign connectors/monitors to GFX VCs
Date: Mon, 10 Jul 2023 08:05:37 +0200	[thread overview]
Message-ID: <87r0pgb8su.fsf@pond.sub.org> (raw)
In-Reply-To: <6351a85a-db49-7d6b-2a55-1ea7c65b3a8e@intel.com> (Dongwon Kim's message of "Fri, 7 Jul 2023 10:16:50 -0700")

"Kim, Dongwon" <dongwon.kim@intel.com> writes:

> On 7/7/2023 7:07 AM, Markus Armbruster wrote:
>> "Kim, Dongwon" <dongwon.kim@intel.com> writes:
>>
>>> Hi Markus,
>>>
>>> So I've worked on the description of this param. Can you check if this new version looks ok?
>>>
>>> # @connectors:  List of physical monitor/connector names where the GTK
>>> #           windows containing the respective graphics virtual consoles (VCs)
>>> #           are to be placed. Index of the connector name in the array directly
>>> #           indicates the id of the VC.
>>> #           For example, with "-device gtk,connectors.0=DP-1, connectors.1=DP-2",
>>> #           a physical display connected to DP-1 port will be the target monitor
>>> #           for VC0 and the one on DP-2 will be the target for VC1. If there is
>>> #           no connector associated with a VC, then that VC won't be placed anywhere
>>> #           before the QEMU is relaunched with a proper connector name set for it.
>>> #           If a connector name exists for a VC but the display cable is not plugged
>>> #           in when guest is launched, the VC will be just hidden but will show up
>>> #           as soon as the cable is plugged in. If a display is connected in the beginning
>>> #           but later disconnected, VC will immediately be hidden and guest will detect
>>> #           it as a disconnected display. This option does not force 1 to 1 mapping
>>> #           between the connector and the VC, which means multiple VCs can be placed
>>> #           on the same display but vice versa is not possible (a single VC duplicated
>>> #           on a multiple displays)
>>> #           (Since 8.1)
>> Better!
>>
>> Suggest to replace "that VC won't be placed anywhere" by "that VC won't
>> be displayed".
>
> yeah, I will update it in v2 and send the new patch shortly.
>
>>
>> Ignorant questions:
>>
>> 1. How would I plug / unplug display cables?
>
> I am not sure if I understood your question correctly but 1 or more guest displays (GTK windows) are bound to a certain physical displays like HDMI or DP monitors. So plug/unplug means we disconnect those physical HDMI or DP cables manually. Or this manual hot plug in can be emulated by you write something to sysfs depending on what display driver you use.

Let's see whether I understand.

A VC is placed on a *physical* monitor, i.e. a window appears on that
monitor.  That monitor's plug / unplug state is passed through to the
guest, i.e. if I physically unplug / plug the monitor, the guest sees an
unplug / plug of its virtual monitor.  Correct?

Permit me another ignorant question...  Say I have a single monitor.  I
configured my X windows manager to show four virtual desktops.  Can I
use your feature to direct on which virtual desktop each VC is placed?

>> 2. If I connect multiple VCs to the same display, what will I see?  Are
>> they multiplexed somehow?
>
> Yeah multiple VCs will be shown on that display. But those could be overlapped since those are all placed at (0, 0) of display in many cases.. but this all depends on how the windows manager determines the starting locations.

Got it, thanks!

>> Old question not yet answered: Using a list for the mapping means the
>> mapping must be dense, e.g. I can't map #0 and #2 but not #1.  Is this
>> what we want?
>
> No, it doesn't have to be dense. In your example, you can just leave the place for VC1 blank. For example, you could do connectors.0=DP-1,connectors.2=HDMI-1. But in this case, VC1 won't be activated and stay as disconnected from guest's perspective. I think this info is also needed in v2.

Have you tried this?  I believe it'll fail with something like
"Parameter 'connectors.1' missing".

>> [...]



  reply	other threads:[~2023-07-10  6:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-21  0:43 [RFC PATCH 0/9] ui: guest displays multiple connectors suppport and hotplug in Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 1/9] ui/gtk: skip drawing guest scanout when associated VC is invisible Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 2/9] ui/gtk: set the ui size to 0 when invisible Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 3/9] ui/gtk: reset visible flag when window is minimized Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 4/9] ui/gtk: Disable the scanout when a detached tab is closed Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 5/9] ui/gtk: Factor out tab window creation into a separate function Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 6/9] ui/gtk: Add a new parameter to assign connectors/monitors to GFX VCs Dongwon Kim
2023-06-21  5:51   ` Markus Armbruster
2023-06-27 18:22     ` Kim, Dongwon
2023-07-07 14:07       ` Markus Armbruster
2023-07-07 17:16         ` Kim, Dongwon
2023-07-10  6:05           ` Markus Armbruster [this message]
2023-07-10 20:31             ` Kim, Dongwon
2023-07-11  6:36               ` Markus Armbruster
2023-07-11 17:19                 ` Kim, Dongwon
2023-07-12  5:52                   ` Markus Armbruster
2023-07-13  4:53                     ` Kim, Dongwon
2023-07-11  0:32   ` [RFC PATCH v2 " Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 7/9] ui/gtk: unblock gl if draw submitted already or fence is not yet signaled Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 8/9] ui/gtk: skip drawing if any of ctx/surface/image don't exist Dongwon Kim
2023-06-21  0:43 ` [RFC PATCH 9/9] ui/gtk: skip refresh/rendering if VC is invisible Dongwon Kim

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=87r0pgb8su.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dongwon.kim@intel.com \
    --cc=kraxel@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vivek.kasireddy@intel.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.