afe8e0b6 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/egl: default to GLES on windows
Windows GL drivers are notoriously not very good. Otoh, ANGLE provides rock solid GLES implementation on top of direct3d. We should recommend it and default to ES
ui/egl: default to GLES on windows
Windows GL drivers are notoriously not very good. Otoh, ANGLE provides rock solid GLES implementation on top of direct3d. We should recommend it and default to ES when using EGL (users can easily override this if necessary)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-14-marcandre.lureau@redhat.com>
show more ...
|
39324b49 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui: add egl-headless support on win32
Make GBM optional for EGL code, and enable the build for win32.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.6776
ui: add egl-headless support on win32
Make GBM optional for EGL code, and enable the build for win32.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-13-marcandre.lureau@redhat.com>
show more ...
|
48dddba1 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/dbus: use shared memory when possible on win32
When the display surface has an associated HANDLE, we can duplicate it to the client process and let it map the memory to avoid expensive copies.
I
ui/dbus: use shared memory when possible on win32
When the display surface has an associated HANDLE, we can duplicate it to the client process and let it map the memory to avoid expensive copies.
Introduce two new win32-specific methods ScanoutMap and UpdateMap. The first is used to inform the listener about the a shared map availability, and the second for display updates.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-12-marcandre.lureau@redhat.com>
show more ...
|
09b4c198 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
console/win32: allocate shareable display surface
Introduce qemu_win32_map_alloc() and qemu_win32_map_free() to allocate shared memory mapping. The handle can be used to share the mapping with anoth
console/win32: allocate shareable display surface
Introduce qemu_win32_map_alloc() and qemu_win32_map_free() to allocate shared memory mapping. The handle can be used to share the mapping with another process.
Teach qemu_create_displaysurface() to allocate shared memory. Following patches will introduce other places for shared memory allocation.
Other patches for -display dbus will share the memory when possible with the client, to avoid expensive memory copy between the processes.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-10-marcandre.lureau@redhat.com>
show more ...
|
439e0164 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/dbus: introduce "Interfaces" properties
This property is similar to ``org.freedesktop.DBus.Interfaces`` property on the bus interface: it's an array of strings listing the extra interfaces and ca
ui/dbus: introduce "Interfaces" properties
This property is similar to ``org.freedesktop.DBus.Interfaces`` property on the bus interface: it's an array of strings listing the extra interfaces and capabilities available, in a convenient way.
Most interfaces are implicit, as they are required. For ``org/qemu/Display1_$id``, we can list the Keyboard And Mouse interfaces. Those could be optional.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-9-marcandre.lureau@redhat.com>
show more ...
|
6cc5a615 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/dbus: win32 support
D-Bus doesn't support fd-passing on Windows (AF_UNIX doesn't have SCM_RIGHTS yet, but there are other means to share objects. I have proposed various solutions upstream, but n
ui/dbus: win32 support
D-Bus doesn't support fd-passing on Windows (AF_UNIX doesn't have SCM_RIGHTS yet, but there are other means to share objects. I have proposed various solutions upstream, but none seem fitting enough atm).
To make the "-display dbus" work on Windows, implement an alternative D-Bus interface where all the 'h' (FDs) arguments are replaced with 'ay' (WSASocketW data), and sockets are passed to the other end via WSADuplicateSocket().
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-6-marcandre.lureau@redhat.com>
show more ...
|
29c5c7e5 | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/dbus: compile without gio/gunixfdlist.h
D-Bus on windows doesn't support fd-passing. Let's isolate the fdlist-related code as a first step, before adding Windows support, using another mechanism.
ui/dbus: compile without gio/gunixfdlist.h
D-Bus on windows doesn't support fd-passing. Let's isolate the fdlist-related code as a first step, before adding Windows support, using another mechanism.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-4-marcandre.lureau@redhat.com>
show more ...
|
1d48c9fd | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/egl: fix make_context_current() callback return value
eglMakeCurrent() returns 1/EGL_TRUE on success. This is not what the callback expects, where 0 indicates success.
While at it, print the EGL
ui/egl: fix make_context_current() callback return value
eglMakeCurrent() returns 1/EGL_TRUE on success. This is not what the callback expects, where 0 indicates success.
While at it, print the EGL error to ease debugging.
As with virgl_renderer_callbacks, the return value is now checked since version >= 4: https://gitlab.freedesktop.org/virgl/virglrenderer/-/commit/7f09e6bf0c6ceea6727bd0049781256a28cab0e5
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-3-marcandre.lureau@redhat.com>
show more ...
|
044ca4bf | 06-Jun-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui/egl: export qemu_egl_get_error_string()
It will be used from other units.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-2-marcandre.lureau@red
ui/egl: export qemu_egl_get_error_string()
It will be used from other units.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230606115658.677673-2-marcandre.lureau@redhat.com>
show more ...
|
2fc28073 | 26-Jun-2023 |
Dongwon Kim <dongwon.kim@intel.com> |
ui/gtk: making dmabuf NULL when it's released.
Set vc->gfx.guest_fb.dmabuf to NULL to prevent any further access to it after the dmabuf is released.
v2: move declaration of vc inside ifdef
Cc: Ger
ui/gtk: making dmabuf NULL when it's released.
Set vc->gfx.guest_fb.dmabuf to NULL to prevent any further access to it after the dmabuf is released.
v2: move declaration of vc inside ifdef
Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Cc: Vivek Kasireddy <vivek.kasireddy@intel.com> Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20230627005316.5627-1-dongwon.kim@intel.com>
show more ...
|
37802a24 | 21-Jun-2023 |
Dongwon Kim <dongwon.kim@intel.com> |
ui/gtk: set the area of the scanout texture correctly
x and y offsets and width and height of the scanout texture is not correctly configured in case guest scanout frame is dmabuf.
Cc: Gerd Hoffman
ui/gtk: set the area of the scanout texture correctly
x and y offsets and width and height of the scanout texture is not correctly configured in case guest scanout frame is dmabuf.
Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Cc: Vivek Kasireddy <vivek.kasireddy@intel.com> Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> Message-ID: <20230621213150.29573-1-dongwon.kim@intel.com>
show more ...
|
de9f844c | 19-Jun-2023 |
Bilal Elmoussaoui <belmouss@redhat.com> |
ui/dbus: Expose a touch device interface
So that clients making use of the DBus backend could send touch events through the new org.qemu.Display1.Touch interface
Signed-off-by: Bilal Elmoussaoui <b
ui/dbus: Expose a touch device interface
So that clients making use of the DBus backend could send touch events through the new org.qemu.Display1.Touch interface
Signed-off-by: Bilal Elmoussaoui <belmouss@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230619095337.9899-3-belmouss@redhat.com>
show more ...
|
b6596785 | 19-Jun-2023 |
Bilal Elmoussaoui <belmouss@redhat.com> |
ui/touch: Move event handling to a common helper
To share code between the GTK and DBus UI bakcends see the next commit for details
Signed-off-by: Bilal Elmoussaoui <belmouss@redhat.com> Reviewed-b
ui/touch: Move event handling to a common helper
To share code between the GTK and DBus UI bakcends see the next commit for details
Signed-off-by: Bilal Elmoussaoui <belmouss@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230619095337.9899-2-belmouss@redhat.com>
show more ...
|
176e3783 | 12-Jun-2023 |
Antonio Caggiano <quic_acaggian@quicinc.com> |
ui/sdl2: OpenGL window context
When OpenGL is enabled, create only the OpenGL context, ignoring the SDL renderer as it is unused anyway.
Signed-off-by: Antonio Caggiano <quic_acaggian@quicinc.com>
ui/sdl2: OpenGL window context
When OpenGL is enabled, create only the OpenGL context, ignoring the SDL renderer as it is unused anyway.
Signed-off-by: Antonio Caggiano <quic_acaggian@quicinc.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230612091959.2983-1-quic_acaggian@quicinc.com>
show more ...
|
72cbcead | 18-Apr-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
egl: no need to lookup EGL functions manually
libepoxy handles loading the function pointer and dispatching the call, so you don't have to worry about it.
Signed-off-by: Marc-André Lureau <marcandr
egl: no need to lookup EGL functions manually
libepoxy handles loading the function pointer and dispatching the call, so you don't have to worry about it.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230515132455.1025608-1-marcandre.lureau@redhat.com>
show more ...
|
333e7599 | 19-Mar-2023 |
Marc-André Lureau <marcandre.lureau@redhat.com> |
ui: return NULL when getting cursor without a console
VNC may try to get the current cursor even when there are no consoles and crashes. Simple reproducer is qemu with -nodefaults.
Fixes: (again) h
ui: return NULL when getting cursor without a console
VNC may try to get the current cursor even when there are no consoles and crashes. Simple reproducer is qemu with -nodefaults.
Fixes: (again) https://gitlab.com/qemu-project/qemu/-/issues/1548
Fixes: commit 385ac97f8 ("ui: keep current cursor with QemuConsole") Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230428154807.2143652-1-marcandre.lureau@redhat.com>
show more ...
|
de6cd759 | 13-Jun-2023 |
Philippe Mathieu-Daudé <philmd@linaro.org> |
meson: Replace softmmu_ss -> system_ss
We use the user_ss[] array to hold the user emulation sources, and the softmmu_ss[] array to hold the system emulation ones. Hold the latter in the 'system_ss[
meson: Replace softmmu_ss -> system_ss
We use the user_ss[] array to hold the user emulation sources, and the softmmu_ss[] array to hold the system emulation ones. Hold the latter in the 'system_ss[]' array for parity with user emulation.
Mechanical change doing:
$ sed -i -e s/softmmu_ss/system_ss/g $(git grep -l softmmu_ss)
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230613133347.82210-10-philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
c7b64948 | 13-Jun-2023 |
Philippe Mathieu-Daudé <philmd@linaro.org> |
meson: Replace CONFIG_SOFTMMU -> CONFIG_SYSTEM_ONLY
Since we *might* have user emulation with softmmu, use the clearer 'CONFIG_SYSTEM_ONLY' key to check for system emulation.
Signed-off-by: Philipp
meson: Replace CONFIG_SOFTMMU -> CONFIG_SYSTEM_ONLY
Since we *might* have user emulation with softmmu, use the clearer 'CONFIG_SYSTEM_ONLY' key to check for system emulation.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230613133347.82210-9-philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
f975033d | 23-Apr-2023 |
Philippe Mathieu-Daudé <philmd@linaro.org> |
cocoa: Fix warnings about invalid prototype declarations
Fix the following Cocoa trivial warnings:
C compiler for the host machine: cc (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.2
cocoa: Fix warnings about invalid prototype declarations
Fix the following Cocoa trivial warnings:
C compiler for the host machine: cc (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.202)") Objective-C compiler for the host machine: clang (clang 14.0.0)
[100/334] Compiling Objective-C object libcommon.fa.p/net_vmnet-bridged.m.o net/vmnet-bridged.m:40:31: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] static char* get_valid_ifnames() ^ void [742/1436] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o ui/cocoa.m:1937:22: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] static int cocoa_main() ^ void
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com> Message-Id: <20230425192820.34063-1-philmd@linaro.org>
show more ...
|
bdfca8a2 | 09-Jun-2023 |
Anastasia Belova <abelova@astralinux.ru> |
vnc: move assert in vnc_worker_thread_loop
job may be NULL if queue->exit is true. Check it before dereference job.
Fixes: f31f9c1080 ("vnc: add magic cookie to VncState") Signed-off-by: Anastasia
vnc: move assert in vnc_worker_thread_loop
job may be NULL if queue->exit is true. Check it before dereference job.
Fixes: f31f9c1080 ("vnc: add magic cookie to VncState") Signed-off-by: Anastasia Belova <abelova@astralinux.ru> Reviewed-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
show more ...
|
7d5b0d68 | 01-Jun-2023 |
Philippe Mathieu-Daudé <philmd@linaro.org> |
bulk: Remove pointless QOM casts
Mechanical change running Coccinelle spatch with content generated from the qom-cast-macro-clean-cocci-gen.py added in the previous commit.
Suggested-by: Markus Arm
bulk: Remove pointless QOM casts
Mechanical change running Coccinelle spatch with content generated from the qom-cast-macro-clean-cocci-gen.py added in the previous commit.
Suggested-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230601093452.38972-3-philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
bd1386cc | 22-May-2023 |
Eric Blake <eblake@redhat.com> |
cutils: Adjust signature of parse_uint[_full]
It's already confusing that we have two very similar functions for wrapping the parse of a 64-bit unsigned value, differing mainly on whether they permi
cutils: Adjust signature of parse_uint[_full]
It's already confusing that we have two very similar functions for wrapping the parse of a 64-bit unsigned value, differing mainly on whether they permit leading '-'. Adjust the signature of parse_uint() and parse_uint_full() to be like all of qemu_strto*(): put the result parameter last, use the same types (uint64_t and unsigned long long have the same width, but are not always the same type), and mark endptr const (this latter change only affects the rare caller of parse_uint). Adjust all callers in the tree.
While at it, note that since cutils.c already includes:
QEMU_BUILD_BUG_ON(sizeof(int64_t) != sizeof(long long));
we are guaranteed that the result of parse_uint* cannot exceed UINT64_MAX (or the build would have failed), so we can drop pre-existing dead comparisons in opts-visitor.c that were never false.
Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Message-Id: <20230522190441.64278-8-eblake@redhat.com> [eblake: Drop dead code spotted by Markus] Signed-off-by: Eric Blake <eblake@redhat.com>
show more ...
|
5a4cb61a | 26-May-2023 |
Sergio Lopez <slp@redhat.com> |
ui/gtk: enable backend to send multi-touch events
GTK3 provides the infrastructure to receive and process multi-touch events through the "touch-event" signal and the GdkEventTouch type. Make use of
ui/gtk: enable backend to send multi-touch events
GTK3 provides the infrastructure to receive and process multi-touch events through the "touch-event" signal and the GdkEventTouch type. Make use of it to transpose events from the host to the guest.
This allows users of machines with hardware capable of receiving multi-touch events to run guests that can also receive those events and interpret them as gestures, when appropriate.
An example of this in action can be seen here:
https://fosstodon.org/@slp/109545849296546767
Signed-off-by: Sergio Lopez <slp@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230526112925.38794-7-slp@redhat.com>
show more ...
|
f6157392 | 26-May-2023 |
Sergio Lopez <slp@redhat.com> |
ui: add helpers for virtio-multitouch events
Add helpers for generating Multi-touch events from the UI backends that can be sent to the guest through a virtio-multitouch device.
Signed-off-by: Serg
ui: add helpers for virtio-multitouch events
Add helpers for generating Multi-touch events from the UI backends that can be sent to the guest through a virtio-multitouch device.
Signed-off-by: Sergio Lopez <slp@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20230526112925.38794-6-slp@redhat.com>
show more ...
|
2bfb10df | 26-May-2023 |
Sergio Lopez <slp@redhat.com> |
ui: add the infrastructure to support MT events
Add the required infrastructure to support generating multitouch events.
Signed-off-by: Sergio Lopez <slp@redhat.com> Reviewed-by: Marc-André Lureau
ui: add the infrastructure to support MT events
Add the required infrastructure to support generating multitouch events.
Signed-off-by: Sergio Lopez <slp@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20230526112925.38794-3-slp@redhat.com>
show more ...
|