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/[email protected]/ [2] https://lore.kernel.org/qemu-devel/[email protected]/ 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
