All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Dongwon Kim <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: Wed, 21 Jun 2023 07:51:11 +0200	[thread overview]
Message-ID: <87h6r1mkhc.fsf@pond.sub.org> (raw)
In-Reply-To: <20230621004355.19920-7-dongwon.kim@intel.com> (Dongwon Kim's message of "Tue, 20 Jun 2023 17:43:52 -0700")

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

> From: Vivek Kasireddy <vivek.kasireddy@intel.com>
>
> The new parameter named "connector" can be used to assign physical
> monitors/connectors to individual GFX VCs such that when the monitor
> is connected or hotplugged, the associated GTK window would be
> moved to it. If the monitor is disconnected or unplugged, the
> associated GTK window would be hidden and a relevant disconnect
> event would be sent to the Guest.
>
> Usage: -device virtio-gpu-pci,max_outputs=2,blob=true,...
>        -display gtk,gl=on,connectors.0=eDP-1,connectors.1=DP-1.....
>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Daniel P. Berrangé <berrange@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
> Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>

[...]

> --- a/qapi/ui.json
> +++ b/qapi/ui.json
> @@ -1315,13 +1315,22 @@
>  # @show-menubar: Display the main window menubar.  Defaults to "on".
>  #     (Since 8.0)
>  #
> +# @connectors:  List of physical monitor/connector names where the GTK
> +#               windows containing the respective graphics virtual consoles
> +#               (VCs) are to be placed. If a mapping exists for a VC, it
> +#               will be moved to that specific monitor or else it would
> +#               not be displayed anywhere and would appear disconnected
> +#               to the guest.
> +#               (Since 8.1)

Please format like

   # @connectors: List of physical monitor/connector names where the GTK
   #     windows containing the respective graphics virtual consoles
   #     (VCs) are to be placed.  If a mapping exists for a VC, it will
   #     be moved to that specific monitor or else it would not be
   #     displayed anywhere and would appear disconnected to the guest.
   #     (Since 8.1)

to blend in with recent commit a937b6aa739 (qapi: Reformat doc comments
to conform to current conventions).

The meaning of @connectors is less than clear.  The phrase "If a mapping
exists for a VC" suggests it is a mapping of sorts.  "List of physical
monitor/connector names" indicates it maps to physical monitor /
connector name.  What does it map from?  VC number?  How are VCs
numbered?  Is it the same number we use in QOM /backend/console[NUM]?

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?

The sentence "If a mapping exists" confusing has a dangling else
ambiguity of sorts.  I can interpret it as

    If a mapping exists for a VC:
        the window will be moved to that specific monitor
        or else it would not be displayed anywhere and would appear ...

or as

    If a mapping exists for a VC:
        the window will be moved to that specific monitor
    or else it would not be displayed anywhere and would appear ...

I think we have three cases:

0. No mapping provided

1. Mapping provided, and the named monitor / connector exists

2. Mapping provided, and the named monitor / connector does not exist

We can go from case 1 to 2 (disconnect) and vice versa (connect) at any
time.

Please spell out behavior for each case, and for the transitions between
case 1 and 2.

> +#
>  # Since: 2.12
>  ##
>  { 'struct'  : 'DisplayGTK',
>    'data'    : { '*grab-on-hover' : 'bool',
>                  '*zoom-to-fit'   : 'bool',
>                  '*show-tabs'     : 'bool',
> -                '*show-menubar'  : 'bool'  } }
> +                '*show-menubar'  : 'bool',
> +                '*connectors'    : ['str'] } }
>  
>  ##
>  # @DisplayEGLHeadless:

[...]



  reply	other threads:[~2023-06-21  5:51 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 [this message]
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
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=87h6r1mkhc.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.