All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v22 00/18] Support virtio-gpu DRM native context and MAP_FIXED API
@ 2026-03-03 15:14 Dmitry Osipenko
  2026-03-03 15:14 ` [PATCH v22 01/18] ui/gtk: Don't disable scanout when display is refreshed Dmitry Osipenko
                   ` (19 more replies)
  0 siblings, 20 replies; 31+ messages in thread
From: Dmitry Osipenko @ 2026-03-03 15:14 UTC (permalink / raw)
  To: Akihiko Odaki, Huang Rui, Marc-André Lureau,
	Philippe Mathieu-Daudé, Gerd Hoffmann, Alex Bennée,
	Pierre-Eric Pelloux-Prayer, Michael S . Tsirkin, Paolo Bonzini,
	Yiwei Zhang, Sergio Lopez Pascual
  Cc: Gert Wollny, qemu-devel, Gurchetan Singh, Alyssa Ross,
	Roger Pau Monné, Alex Deucher, Stefano Stabellini,
	Christian König, Xenia Ragiadakou, Honglei Huang,
	Julia Zhang, Chen Jiqian, Rob Clark, Robert Beckett

Hello,

This is follow up to DRM native context v16 [1] and MAP_FIXED API v10 [2]
virtio-gpu patches that has been reviewed previously and were waiting for
a new release of libvirglrenderer 1.3.0.

[1] https://lore.kernel.org/qemu-devel/20251116125641.2255794-1-dmitry.osipenko@collabora.com/
[2] https://lore.kernel.org/qemu-devel/20260118162856.223796-1-dmitry.osipenko@collabora.com/

Changelog:

v22:- Added r-b from Marc-André Lureau to ui/gdk patch.

    - Corrected qemu_egl_create_context() to take explicit shared GL context
      arg needed by gtk-egl display, as was suggested by Akihiko Odaki.

    - Changed virtio-gpu BHs to use re-entrance guard as was suggested by
      Akihiko Odaki.

v21:- Moved virtio-gpu to use iohandler_get_aio_context() as was
      suggested by Akihiko Odaki.

    - Updated EGL context-create helper and displays using it to make
      helper take care of using appropriate parent GL context by itself,
      without a need to switch GL context. Done it all in a single patch:

        ui/egl: Don't change bound GL context when creating new context

    - Cleaned up GDK context-restoring code as was suggested by Akihiko Odaki.

v20:- Adanbonded GL context unbinding approach as it created difficulties
      with GTK assuming UI toolkit processed from a single thread. Omitted
      all unbind-context patches and added new patch instead that makes
      virtio-gpu to process cmds only from main-loop thread:

        virtio-gpu: Bounce virtio_gpu_ctrl_bh() to main-loop thread

    - Added r-b from Akihiko Odaki to reviewed v19 patches.

    - Added patches restoring GL context when new ctx created for
      dbus/spice/egl-headless displays.

v19:- Further improved improved naming of functions and terminology RE
      GL context binding. Suggested by Akihiko Odaki.

    - Added new patch "ui/gdk: Restore original context after new context
      creation" in addition to improved "ui/sdl2: Restore original context"
      that now getd actual bound GL context and restores to it instead
      of restoring to the console's ctx, for consistency with the rest
      of GL context management fixes that ensure context is bound only
      when necessary.

    - Improved virtio_gpu_virgl_update_render_state() with force_ctx_0()
      and unbind_ctx() to make deferred GPU resetting maintain bound GL
      context properly.

v18:- Changed dpy_gl_ctx_make_current() to use first scanout when unsetting
      virgl's GL ctx0 and improved naming of cmd-processing function.
      Suggested by Akihiko Odaki.

    - Added "ui/gdk: Unset context after GL operations" patch after
      realizing GDK/GL code needed more gdk_gl_context_clear_current().

v17:- Rebased patches on recent upstream, updated doc patches with new
      drm native contexts supported by libvirglrenderer.

    - Applied minor change that was requested from Akihiko Odaki
      by moving virtio_gpu_device_realize() for MAP_FIXED v10.

    - Added virtio_gpu_virgl_update_render_state() to virtio_gpu_fence_poll()
      that was missed in MAP_FIXED v10.

    - Added new patches fixing another GL context switching problem I ran
      into recently with virgl commands unexpectedly processed from CPU
      thread instead main-loop:

        ui/sdl2: Unset context after GL operations
        ui/gtk-egl: Unset context after GL operations
        virtio-gpu: Unset context after GL operations

Alex Bennée (1):
  docs/system: virtio-gpu: Document host/guest requirements

Dmitry Osipenko (16):
  ui/gtk: Don't disable scanout when display is refreshed
  ui/sdl2: Don't disable scanout when display is refreshed
  ui/egl: Don't change bound GL context when creating new context
  ui/gdk: Restore original context after new context creation
  ui/sdl2: Restore original context after new context creation
  virtio-gpu: Ensure BHs are invoked only from main-loop thread
  virtio-gpu: Handle virgl fence creation errors
  virtio-gpu: Support asynchronous fencing
  virtio-gpu: Support DRM native context
  docs/system: virtio-gpu: Add link to Mesa VirGL doc
  docs/system: virtio-gpu: Update Venus link
  virtio-gpu: Remove superfluous memory_region_set_enabled()
  virtio-gpu: Validate hostmem mapping offset
  virtio-gpu: Replace finish_unmapping with mapping_state
  virtio-gpu: Destroy virgl resources on virtio-gpu reset
  virtio-gpu: Support mapping hostmem blobs with map_fixed

Pierre-Eric Pelloux-Prayer (1):
  ui/sdl2: Implement dpy dmabuf functions

 docs/system/devices/virtio/virtio-gpu.rst | 121 ++++++-
 hw/display/trace-events                   |   2 +-
 hw/display/virtio-gpu-gl.c                |  62 +++-
 hw/display/virtio-gpu-virgl.c             | 410 ++++++++++++++++++++--
 hw/display/virtio-gpu.c                   |  21 +-
 hw/virtio/virtio.c                        |  10 +
 include/hw/virtio/virtio-gpu.h            |  23 +-
 include/hw/virtio/virtio.h                |  10 +
 include/ui/egl-context.h                  |   3 +-
 include/ui/sdl2.h                         |   7 +
 meson.build                               |   8 +-
 ui/dbus.c                                 |   4 +-
 ui/egl-context.c                          |   6 +-
 ui/egl-headless.c                         |   4 +-
 ui/gtk-egl.c                              |   5 +-
 ui/gtk-gl-area.c                          |  13 +-
 ui/sdl2-gl.c                              |  74 +++-
 ui/sdl2.c                                 |  42 +++
 ui/spice-display.c                        |   4 +-
 19 files changed, 735 insertions(+), 94 deletions(-)

-- 
2.52.0



^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2026-04-08 19:19 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-03 15:14 [PATCH v22 00/18] Support virtio-gpu DRM native context and MAP_FIXED API Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 01/18] ui/gtk: Don't disable scanout when display is refreshed Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 02/18] ui/sdl2: " Dmitry Osipenko
2026-04-07 16:44   ` Stefan Weil via qemu development
2026-04-07 17:24     ` Alex Bennée
2026-04-08 13:47       ` Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 03/18] ui/egl: Don't change bound GL context when creating new context Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 04/18] ui/gdk: Restore original context after new context creation Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 05/18] ui/sdl2: " Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 06/18] ui/sdl2: Implement dpy dmabuf functions Dmitry Osipenko
2026-03-04  8:49   ` Alex Bennée
2026-03-04 10:33     ` Dmitry Osipenko
2026-03-04 11:40       ` Alex Bennée
2026-03-04 12:10       ` Alex Bennée
2026-03-04 12:11       ` Alex Bennée
2026-03-03 15:14 ` [PATCH v22 07/18] virtio-gpu: Ensure BHs are invoked only from main-loop thread Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 08/18] virtio-gpu: Handle virgl fence creation errors Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 09/18] virtio-gpu: Support asynchronous fencing Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 10/18] virtio-gpu: Support DRM native context Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 11/18] docs/system: virtio-gpu: Add link to Mesa VirGL doc Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 12/18] docs/system: virtio-gpu: Update Venus link Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 13/18] docs/system: virtio-gpu: Document host/guest requirements Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 14/18] virtio-gpu: Remove superfluous memory_region_set_enabled() Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 15/18] virtio-gpu: Validate hostmem mapping offset Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 16/18] virtio-gpu: Replace finish_unmapping with mapping_state Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 17/18] virtio-gpu: Destroy virgl resources on virtio-gpu reset Dmitry Osipenko
2026-03-03 15:14 ` [PATCH v22 18/18] virtio-gpu: Support mapping hostmem blobs with map_fixed Dmitry Osipenko
2026-03-03 17:33 ` [PATCH v22 00/18] Support virtio-gpu DRM native context and MAP_FIXED API Alex Bennée
2026-03-03 19:26   ` Dmitry Osipenko
2026-03-04  6:10 ` Akihiko Odaki
2026-03-04 10:34   ` Dmitry Osipenko

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.