All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: Bernhard Beschow <shentey@gmail.com>,
	 Gurchetan Singh <gurchetansingh@chromium.org>,
	 Akihiko Odaki <akihiko.odaki@gmail.com>,
	qemu-devel@nongnu.org,  marcandre.lureau@redhat.com,
	 ray.huang@amd.com, alex.bennee@linaro.org,  hi@alyssa.is,
	 ernunes@redhat.com, manos.pitsidianakis@linaro.org,
	 philmd@linaro.org
Subject: Re: [PATCH v11 6/9] gfxstream + rutabaga: add initial support for gfxstream
Date: Mon, 09 Oct 2023 13:18:41 +0200	[thread overview]
Message-ID: <87ttr011ta.fsf@pond.sub.org> (raw)
In-Reply-To: <2c7d6973-befb-6db6-49a7-c08f195758b1@redhat.com> (Thomas Huth's message of "Sat, 30 Sep 2023 12:28:08 +0200")

Thomas Huth <thuth@redhat.com> writes:

> On 29/09/2023 17.06, Bernhard Beschow wrote:
>> Am 21. September 2023 23:44:42 UTC schrieb Gurchetan Singh <gurchetansingh@chromium.org>:
>>> On Tue, Sep 19, 2023 at 3:07 PM Akihiko Odaki <akihiko.odaki@gmail.com>
>>> wrote:
>>>
>>>> On 2023/09/20 3:36, Bernhard Beschow wrote:
>>>>>
>>>>>
>>>>> Am 15. September 2023 02:38:02 UTC schrieb Gurchetan Singh <gurchetansingh@chromium.org>:

[...]

>>>>>> I do think:
>>>>>>
>>>>>> 1) "capset_names=gfxstream-vulkan:cross-domain"
>>>>>> 2) "cross-domain=on,gfxstream-vulkan=on"
>>>>>>
>>>>>> are similar enough.  I would choose (1) for since I think not duplicating
>>>>>> the [name] -> flag logic and having a similar interface across VMMs + VMM
>>>>>> launchers is ever-so slightly useful.
>>>>>
>>>>> I think we've now reached a good understanding of the issue. It's now up
>>>>> to the QEMU community to make a choice. So I'm cc'ing Markus and Thomas as
>>>>> the experts of the topic.
>>>>
>>>> As a virtio-gpu user, I'm slightly inclined to (2) since it would be
>>>> easier to implement the same option for virtio-gpu-virgl when a need
>>>> arises.
>>>
>>> The rutabaga/virgl implementations will likely be done via DEFINE_PROP_BIT,
>>> no?  For virgl, it'll set the virgl flags, and for rutabaga, it'll set the
>>> capset mask.  So it would be different.
>>>
>>> That said, the change isn't too bad to make.  Here's the key part:
>>>
>>> +++ b/hw/display/virtio-gpu-rutabaga.c
>>> @@ -1084,6 +1084,14 @@ static Property virtio_gpu_rutabaga_properties[] = {
>>>      DEFINE_PROP_STRING("wayland_socket_path", VirtIOGPURutabaga,
>>>                         wayland_socket_path),
>>>      DEFINE_PROP_STRING("wsi", VirtIOGPURutabaga, wsi),
>>> +    DEFINE_PROP_BIT("gfxstream-vulkan-experimental", VirtIOGPURutabaga,
>>> +                    capset_mask, RUTABAGA_CAPSET_GFXSTREAM_VULKAN, false),
>>> +    DEFINE_PROP_BIT("cross-domain-experimental", VirtIOGPURutabaga,
>>> +                    capset_mask, RUTABAGA_CAPSET_CROSS_DOMAIN, false),
>>> +    DEFINE_PROP_BIT("gfxstream-gles-experimental", VirtIOGPURutabaga,
>>> +                    capset_mask, RUTABAGA_CAPSET_GFXSTREAM_GLES, false),
>>> +    DEFINE_PROP_BIT("gfxstream-composer-experimental", VirtIOGPURutabaga,
>>> +                    capset_mask, RUTABAGA_CAPSET_GFXSTREAM_COMPOSER,
>>> false),
>>>      DEFINE_PROP_END_OF_LIST(),
>>> };
>>
>> Nice!
>>
>> I think the current approach for experimental and deprecated properties is to not pre- or postfix them but issue a warning at runtime when used, see e.g. here: https://lore.kernel.org/qemu-devel/20230710121543.197250-18-thuth@redhat.com/ That way, the command line interface won't change once the properties become stable. So if you omit the "-experimental" postfixes Android Studio wouldn't need to adapt.
>
> That's for deprecated options only. For experimental new properties, please use the "x-" prefix instead of the "-experimental" suffix.

Thomas is right.

In the QAPI schema, we have the means to avoid renaming on transition
from unstable to stable.  However, device properties remain outside
QAPI.

In case you're curious, docs/devel/qapi-code-gen.rst:

    Special features
    ~~~~~~~~~~~~~~~~

    Feature "deprecated" marks a command, event, enum value, or struct
    member as deprecated.  It is not supported elsewhere so far.
    Interfaces so marked may be withdrawn in future releases in accordance
    with QEMU's deprecation policy.

    Feature "unstable" marks a command, event, enum value, or struct
    member as unstable.  It is not supported elsewhere so far.  Interfaces
    so marked may be withdrawn or changed incompatibly in future releases.

You can even configure policy for handling use of deprecated or unstable
stuff:

    -compat [deprecated-input=accept|reject|crash][,deprecated-output=accept|hide]
                    Policy for handling deprecated management interfaces
    -compat [unstable-input=accept|reject|crash][,unstable-output=accept|hide]
                    Policy for handling unstable management interfaces

For more, see qapi/compat.json and commit 6dd75472d5^..dbb675c19a.



  reply	other threads:[~2023-10-09 11:19 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-23  1:25 [PATCH v11 0/9] rutabaga_gfx + gfxstream Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 1/9] virtio: Add shared memory capability Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 2/9] virtio-gpu: CONTEXT_INIT feature Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 3/9] virtio-gpu: hostmem Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 4/9] virtio-gpu: blob prep Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 5/9] gfxstream + rutabaga prep: added need defintions, fields, and options Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 6/9] gfxstream + rutabaga: add initial support for gfxstream Gurchetan Singh
2023-08-23  9:59   ` Akihiko Odaki
2023-09-13 11:57   ` Bernhard Beschow
2023-09-14  4:38     ` Gurchetan Singh
2023-09-14  7:23       ` Bernhard Beschow
2023-09-15  2:38         ` Gurchetan Singh
2023-09-19 18:36           ` Bernhard Beschow
2023-09-19 22:07             ` Akihiko Odaki
2023-09-21 23:44               ` Gurchetan Singh
2023-09-22  2:41                 ` Akihiko Odaki
2023-09-29 15:06                 ` Bernhard Beschow
2023-09-30 10:28                   ` Thomas Huth
2023-10-09 11:18                     ` Markus Armbruster [this message]
2023-09-27 11:34             ` Thomas Huth
2023-09-27 12:33               ` Markus Armbruster
2023-08-23  1:25 ` [PATCH v11 7/9] gfxstream + rutabaga: meson support Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 8/9] gfxstream + rutabaga: enable rutabaga Gurchetan Singh
2023-08-23  1:25 ` [PATCH v11 9/9] docs/system: add basic virtio-gpu documentation Gurchetan Singh
2023-08-23 11:07 ` [PATCH v11 0/9] rutabaga_gfx + gfxstream Alyssa Ross
2023-08-24 23:56   ` Gurchetan Singh
2023-08-25  7:11     ` Alyssa Ross
2023-08-25 19:05       ` Gurchetan Singh
2023-08-25 19:29         ` Alyssa Ross
2023-08-25 19:37           ` Alyssa Ross
2023-08-29  0:43             ` Gurchetan Singh
2023-09-12  8:53               ` Alyssa Ross
2023-09-13  1:14                 ` Gurchetan Singh
2023-09-13 10:10                   ` Alyssa Ross

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=87ttr011ta.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=akihiko.odaki@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=ernunes@redhat.com \
    --cc=gurchetansingh@chromium.org \
    --cc=hi@alyssa.is \
    --cc=manos.pitsidianakis@linaro.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=ray.huang@amd.com \
    --cc=shentey@gmail.com \
    --cc=thuth@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.