From: Dmitry Osipenko <dmitry.osipenko@collabora.com>
To: "Akihiko Odaki" <odaki@rsg.ci.i.u-tokyo.ac.jp>,
"Huang Rui" <ray.huang@amd.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Pierre-Eric Pelloux-Prayer" <pierre-eric.pelloux-prayer@amd.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Yiwei Zhang" <zzyiwei@gmail.com>,
"Sergio Lopez Pascual" <slp@redhat.com>
Cc: "Gert Wollny" <gert.wollny@collabora.com>,
qemu-devel@nongnu.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Alyssa Ross" <hi@alyssa.is>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Stefano Stabellini" <stefano.stabellini@amd.com>,
"Christian König" <christian.koenig@amd.com>,
"Xenia Ragiadakou" <xenia.ragiadakou@amd.com>,
"Honglei Huang" <honglei1.huang@amd.com>,
"Julia Zhang" <julia.zhang@amd.com>,
"Chen Jiqian" <Jiqian.Chen@amd.com>,
"Rob Clark" <robdclark@gmail.com>,
"Robert Beckett" <bob.beckett@collabora.com>
Subject: [PATCH v20 00/21] Support virtio-gpu DRM native context and MAP_FIXED API
Date: Sun, 1 Mar 2026 23:48:17 +0300 [thread overview]
Message-ID: <20260301204838.596994-1-dmitry.osipenko@collabora.com> (raw)
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:
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 (19):
ui/gtk: Don't disable scanout when display is refreshed
ui/gtk: Restore original context after new context creation
ui/gdk: Restore original context after new context creation
ui/sdl2: Don't disable scanout when display is refreshed
ui/sdl2: Restore original context after new context creation
ui/egl-headless: Restore original context after new context creation
ui/spice: Restore original context after new context creation
ui/dbus: Restore original context after new context creation
virtio-gpu: Bounce virtio_gpu_ctrl_bh() to 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 | 404 ++++++++++++++++++++--
hw/display/virtio-gpu.c | 27 +-
include/hw/virtio/virtio-gpu.h | 25 +-
include/ui/sdl2.h | 7 +
meson.build | 8 +-
ui/dbus.c | 10 +-
ui/egl-headless.c | 10 +-
ui/gtk-egl.c | 10 +-
ui/gtk-gl-area.c | 16 +-
ui/sdl2-gl.c | 74 +++-
ui/sdl2.c | 42 +++
ui/spice-display.c | 10 +-
15 files changed, 751 insertions(+), 77 deletions(-)
--
2.52.0
next reply other threads:[~2026-03-01 20:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-01 20:48 Dmitry Osipenko [this message]
2026-03-01 20:48 ` [PATCH v20 01/21] ui/gtk: Don't disable scanout when display is refreshed Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 02/21] ui/gtk: Restore original context after new context creation Dmitry Osipenko
2026-03-02 5:58 ` Akihiko Odaki
2026-03-02 12:01 ` Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 03/21] ui/gdk: " Dmitry Osipenko
2026-03-02 6:17 ` Akihiko Odaki
2026-03-01 20:48 ` [PATCH v20 04/21] ui/sdl2: Don't disable scanout when display is refreshed Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 05/21] ui/sdl2: Restore original context after new context creation Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 06/21] ui/sdl2: Implement dpy dmabuf functions Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 07/21] ui/egl-headless: Restore original context after new context creation Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 08/21] ui/spice: " Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 09/21] ui/dbus: " Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 10/21] virtio-gpu: Bounce virtio_gpu_ctrl_bh() to main-loop thread Dmitry Osipenko
2026-03-02 5:57 ` Akihiko Odaki
2026-03-02 11:59 ` Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 11/21] virtio-gpu: Handle virgl fence creation errors Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 12/21] virtio-gpu: Support asynchronous fencing Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 13/21] virtio-gpu: Support DRM native context Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 14/21] docs/system: virtio-gpu: Add link to Mesa VirGL doc Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 15/21] docs/system: virtio-gpu: Update Venus link Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 16/21] docs/system: virtio-gpu: Document host/guest requirements Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 17/21] virtio-gpu: Remove superfluous memory_region_set_enabled() Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 18/21] virtio-gpu: Validate hostmem mapping offset Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 19/21] virtio-gpu: Replace finish_unmapping with mapping_state Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 20/21] virtio-gpu: Destroy virgl resources on virtio-gpu reset Dmitry Osipenko
2026-03-01 20:48 ` [PATCH v20 21/21] virtio-gpu: Support mapping hostmem blobs with map_fixed Dmitry Osipenko
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=20260301204838.596994-1-dmitry.osipenko@collabora.com \
--to=dmitry.osipenko@collabora.com \
--cc=Jiqian.Chen@amd.com \
--cc=alex.bennee@linaro.org \
--cc=alexander.deucher@amd.com \
--cc=bob.beckett@collabora.com \
--cc=christian.koenig@amd.com \
--cc=gert.wollny@collabora.com \
--cc=gurchetansingh@chromium.org \
--cc=hi@alyssa.is \
--cc=honglei1.huang@amd.com \
--cc=julia.zhang@amd.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mst@redhat.com \
--cc=odaki@rsg.ci.i.u-tokyo.ac.jp \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pierre-eric.pelloux-prayer@amd.com \
--cc=qemu-devel@nongnu.org \
--cc=ray.huang@amd.com \
--cc=robdclark@gmail.com \
--cc=roger.pau@citrix.com \
--cc=slp@redhat.com \
--cc=stefano.stabellini@amd.com \
--cc=xenia.ragiadakou@amd.com \
--cc=zzyiwei@gmail.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.