qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Launchpad Bug Tracker <1888964@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: [Bug 1888964] Re: Segfault using GTK display with dmabuf (iGVT-g) on Wayland
Date: Wed, 07 Jul 2021 04:17:22 -0000	[thread overview]
Message-ID: <162563144246.23671.4412238386417134175.malone@loganberry.canonical.com> (raw)
In-Reply-To: 159571274485.17992.4520030985362542383.malonedeb@soybean.canonical.com

[Expired for QEMU because there has been no activity for 60 days.]

** Changed in: qemu
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1888964

Title:
  Segfault using GTK display with dmabuf (iGVT-g) on Wayland

Status in QEMU:
  Expired

Bug description:
  When using...
   a) Intel virtualized graphics (iGVT-g) with dmabuf output
   b) QEMU's GTK display with GL output enabled (-display gtk,gl=on)
   c) A Wayland compositor (Sway in my case)
  a segfault occurs at some point on boot (I guess as soon as the guest starts using the virtual graphics card?)

  The origin is the function dpy_gl_scanout_dmabuf in ui/console.c, where it calls
      con->gl->ops->dpy_gl_scanout_dmabuf(con->gl, dmabuf);
  However, the ops field (struct DisplayChangeListenerOps) does not have dpy_gl_scanout_dmabuf set because it is set to dcl_gl_area_ops which does not have dpy_gl_scanout_dmabuf set.
  Only dcl_egl_ops has dpy_gl_scanout_dmabuf set.
  Currently, the GTK display uses EGL on X11 displays, but GtkGLArea on Wayland. This can be observed in early_gtk_display_init() in ui/gtk.c, where it says (simplified code):

  if (opts->has_gl && opts->gl != DISPLAYGL_MODE_OFF) {
          if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
              gtk_use_gl_area = true;
              gtk_gl_area_init();
          } else {
              DisplayGLMode mode = opts->has_gl ? opts->gl : DISPLAYGL_MODE_ON;
              gtk_egl_init(mode);
          }
  }

  To reproduce the findings above, add this assertion to dpy_gl_scanout_dmabuf:
      assert(con->gl->ops->dpy_gl_scanout_dmabuf);
  This will make the segfault turn into an assertion failure.

  A workaround is to force QEMU to use GDK's X11 backend (using
  GDK_BACKEND=x11).

  Note: This might be a duplicate of 1775011, however the information
  provided in that bug report is not sufficient to make the assertion.

  QEMU version: b0ce3f021e0157e9a5ab836cb162c48caac132e1 (from Git master branch)
  OS: Arch Linux, Kernel Version 5.17.0-1

  Relevant flags of the QEMU invocation:
  qemu-system-x86_64 \
    -vga none \
    -device vfio-pci-nohotplug,sysfsdev="$GVT_DEV",romfile="${ROMFILE}",display=on,x-igd-opregion=on,ramfb=on \
    -display gtk,gl=on

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1888964/+subscriptions


      parent reply	other threads:[~2021-07-07  4:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-25 21:32 [Bug 1888964] [NEW] Segfault using GTK display with dmabuf (iGVT-g) on Wayland Tobias Markus
2021-05-07  8:23 ` [Bug 1888964] " Thomas Huth
2021-07-07  4:17 ` Launchpad Bug Tracker [this message]

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=162563144246.23671.4412238386417134175.malone@loganberry.canonical.com \
    --to=1888964@bugs.launchpad.net \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).