All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: marcandre.lureau@redhat.com
Cc: qemu-devel@nongnu.org, "BALATON Zoltan" <balaton@eik.bme.hu>,
	qemu-ppc@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>,
	"Dr. David Alan Gilbert" <dave@treblig.org>,
	"Eric Blake" <eblake@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v5 00/19] Make Pixman an optional dependency
Date: Mon, 23 Oct 2023 07:34:40 -0400	[thread overview]
Message-ID: <20231023073430-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20231023113047.2572137-1-marcandre.lureau@redhat.com>

On Mon, Oct 23, 2023 at 03:30:27PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Hi,
> 
> QEMU system emulators can be made to compile and work without Pixman.
> 
> Only a few devices and options actually require it (VNC, Gtk, Spice for ex) and
> will have to be compiled out.
> 
> However, most of QEMU graphics-related code is based on pixman_image_t and
> format. If we want to provide mostly compatible QEMU machines with or without
> Pixman, all we need to do is to have a small compatibility header with just the
> bare minimum for those types (see "ui: add pixman-compat.h"). There are a
> limited number of operations related to geometry that are slightly better
> implemented in QEMU (without Pixman, see "virtio-gpu: replace PIXMAN for
> region/rect test").
> 
> Without this simple compatibility header approach, QEMU at runtime becomes a
> very different emulator (without graphics device/board, display etc) and full of
> "if PIXMAN" conditions in the code. This is a much worse outcome imho, compared
> to this small header maintainance and compatibility story.
> 
> Fixes:
> https://gitlab.com/qemu-project/qemu/-/issues/1172


virtio things:

Acked-by: Michael S. Tsirkin <mst@redhat.com>


> v5:
> - fixed "vl: move display early init before default devices" patch
> 
> v4:
> - added "vl: move display early init before default devices" patch
> - code style fixes
> - a-b from Zoltan
> 
> v3:
> - improve transient meson condition in first patch (Paolo)
> - use muxed console as fallback by default (Paolo)
> - make pixman-compat.h closer to original API
> - keep "x-pixman" property for sm501 (Zoltan)
> 
> Marc-André Lureau (19):
>   build-sys: add a "pixman" feature
>   ui: compile out some qemu-pixman functions when !PIXMAN
>   ui: add pixman-compat.h
>   vl: move display early init before default devices
>   ui/console: allow to override the default VC
>   ui/vc: console-vc requires PIXMAN
>   qmp/hmp: disable screendump if PIXMAN is missing
>   virtio-gpu: replace PIXMAN for region/rect test
>   ui/console: when PIXMAN is unavailable, don't draw placeholder msg
>   vhost-user-gpu: skip VHOST_USER_GPU_UPDATE when !PIXMAN
>   ui/gl: opengl doesn't require PIXMAN
>   ui/vnc: VNC requires PIXMAN
>   ui/spice: SPICE/QXL requires PIXMAN
>   ui/gtk: -display gtk requires PIXMAN
>   ui/dbus: do not require PIXMAN
>   arm/kconfig: XLNX_ZYNQMP_ARM depends on PIXMAN
>   hw/sm501: allow compiling without PIXMAN
>   hw/display: make ATI_VGA depend on PIXMAN
>   build-sys: make pixman actually optional
> 
>  configs/devices/mips64el-softmmu/default.mak |   2 +-
>  meson.build                                  |  25 ++-
>  qapi/ui.json                                 |   3 +-
>  include/ui/console.h                         |   2 +
>  include/ui/pixman-compat.h                   | 195 +++++++++++++++++++
>  include/ui/qemu-pixman.h                     |  11 +-
>  include/ui/rect.h                            |  59 ++++++
>  hw/display/sm501.c                           |  59 ++++--
>  hw/display/vhost-user-gpu.c                  |   2 +
>  hw/display/virtio-gpu.c                      |  30 ++-
>  system/vl.c                                  |  68 ++++---
>  ui/console-vc-stubs.c                        |  33 ++++
>  ui/console.c                                 |  19 ++
>  ui/dbus-listener.c                           |  90 ++++++---
>  ui/qemu-pixman.c                             |   6 +
>  ui/ui-hmp-cmds.c                             |   2 +
>  ui/ui-qmp-cmds.c                             |   2 +
>  Kconfig.host                                 |   3 +
>  hmp-commands.hx                              |   2 +
>  hw/arm/Kconfig                               |   3 +-
>  hw/display/Kconfig                           |   9 +-
>  hw/display/meson.build                       |   4 +-
>  meson_options.txt                            |   2 +
>  scripts/meson-buildoptions.sh                |   3 +
>  ui/meson.build                               |  24 +--
>  25 files changed, 541 insertions(+), 117 deletions(-)
>  create mode 100644 include/ui/pixman-compat.h
>  create mode 100644 include/ui/rect.h
>  create mode 100644 ui/console-vc-stubs.c
> 
> -- 
> 2.41.0


  parent reply	other threads:[~2023-10-23 11:35 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-23 11:30 [PATCH v5 00/19] Make Pixman an optional dependency marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 01/19] build-sys: add a "pixman" feature marcandre.lureau
2023-10-25  6:35   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 02/19] ui: compile out some qemu-pixman functions when !PIXMAN marcandre.lureau
2023-10-25 10:05   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 03/19] ui: add pixman-compat.h marcandre.lureau
2023-10-25 10:08   ` Thomas Huth
2023-10-25 11:28     ` Marc-André Lureau
2023-10-23 11:30 ` [PATCH v5 04/19] vl: move display early init before default devices marcandre.lureau
2023-10-25  9:56   ` Thomas Huth
2023-10-25 13:26     ` Marc-André Lureau
2023-10-25 13:38       ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 05/19] ui/console: allow to override the default VC marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 06/19] ui/vc: console-vc requires PIXMAN marcandre.lureau
2023-10-25  9:59   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 07/19] qmp/hmp: disable screendump if PIXMAN is missing marcandre.lureau
2023-10-25 10:04   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 08/19] virtio-gpu: replace PIXMAN for region/rect test marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 09/19] ui/console: when PIXMAN is unavailable, don't draw placeholder msg marcandre.lureau
2023-10-25 11:48   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 10/19] vhost-user-gpu: skip VHOST_USER_GPU_UPDATE when !PIXMAN marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 11/19] ui/gl: opengl doesn't require PIXMAN marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 12/19] ui/vnc: VNC requires PIXMAN marcandre.lureau
2023-10-25 11:52   ` Thomas Huth
2023-10-25 18:44     ` Marc-André Lureau
2023-10-23 11:30 ` [PATCH v5 13/19] ui/spice: SPICE/QXL " marcandre.lureau
2023-10-25 11:56   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 14/19] ui/gtk: -display gtk " marcandre.lureau
2023-10-25 11:57   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 15/19] ui/dbus: do not require PIXMAN marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 16/19] arm/kconfig: XLNX_ZYNQMP_ARM depends on PIXMAN marcandre.lureau
2023-10-25 12:02   ` Thomas Huth
2023-10-23 11:30 ` [PATCH v5 17/19] hw/sm501: allow compiling without PIXMAN marcandre.lureau
2023-10-23 13:14   ` BALATON Zoltan
2023-10-23 13:21     ` Marc-André Lureau
2023-10-23 11:30 ` [PATCH v5 18/19] hw/display: make ATI_VGA depend on PIXMAN marcandre.lureau
2023-10-23 11:30 ` [PATCH v5 19/19] build-sys: make pixman actually optional marcandre.lureau
2023-10-23 11:34 ` Michael S. Tsirkin [this message]
2023-10-24 12:01 ` [PATCH v5 00/19] Make Pixman an optional dependency Marc-André Lureau
2023-10-25 11:58   ` Thomas Huth

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=20231023073430-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=armbru@redhat.com \
    --cc=balaton@eik.bme.hu \
    --cc=berrange@redhat.com \
    --cc=dave@treblig.org \
    --cc=eblake@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --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.