Peter Hutterer
89b7f45010
CI: add a driver build stage to check for header breakage
...
Pull a few drivers and try to build their most recent release (or a
specific SHA) and see if they still build. If they do, yay, otherwise
fail.
Dependency-wise we need to keep libevdev-dev and libinput-dev around
now and add libspice-protocol-dev for the qxl driver.
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1318 >
2024-03-19 00:37:35 +00:00
Peter Hutterer
924939c886
Revert "Fix missing includes of <errno.h>"
...
Removing errno from xf86_OSlib.h breaks the xf86-input-mouse driver
build. And xf86_OSlib.h itself relies on errno anyway in the SYSCALL
macro provided by this header.
This reverts commit f6a367102c .
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1423 >
2024-03-19 00:33:26 +00:00
Olivier Fourdan
792758faa5
xwayland: Update lost focus on deactivation
...
Use the "activated" state from xdg-shell to call the pointer and
keyboard leave events when running rootful.
The regular pointer and keyboard leave notifications are now ignored
when running rootful.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1604
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1213 >
2024-03-18 23:34:29 +00:00
Olivier Fourdan
122ad8a0de
xwayland: Introduce xwl_screen_lost_focus()
...
xwl_screen_lost_focus() calls the keyboard and pointer leave functions
for each seat.
No functional change.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1213 >
2024-03-18 23:34:29 +00:00
Olivier Fourdan
654c354da9
xwayland: Move the leave kbd/ptr code
...
Move part of the code that deals with pointer or keyboard leave
notifications to their own function.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1213 >
2024-03-18 23:34:29 +00:00
Enrico Weigelt, metux IT consult
afaad1b847
include: add comment on _XSERVER64 define
...
Since the whole 32/64 bit issue is a bit complex, it's worth adding some
comment on what the _XSERVER64 symbol really is needed for.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1413 >
2024-03-18 23:24:36 +00:00
Olivier Fourdan
9a7fb3a153
xwayland: Use "-decorate" if available
...
That allows to open new Xwayland decorated windows as needed (e.g. using
the "New window" entry from the launcher)
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1421 >
2024-03-18 23:19:59 +00:00
Olivier Fourdan
fbf5e26b5c
xwayland: Use full path for Xwayland exec
...
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1421 >
2024-03-18 23:19:59 +00:00
Olivier Fourdan
66b371f306
xwayland: Add the Exec key to the desktop file
...
This was intentionally left out, but it's against the spec.
Add an Exec key to be conformant.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1654
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1421 >
2024-03-18 23:19:59 +00:00
Enrico Weigelt, metux IT consult
ccfa7e9f2e
Fix missing include of <sys/wait.h>
...
Instead of relying on indirect includes, it's much cleaner if everybody
includes directly what he needs.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1419 >
2024-03-18 23:02:45 +00:00
Enrico Weigelt, metux IT consult
f6a367102c
Fix missing includes of <errno.h>
...
It's much cleaner to always include directly what one needs,
instead of relying on very indirect including.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1416 >
2024-03-18 22:58:32 +00:00
Olivier Fourdan
54a2dfc229
xwayland: Drop xwl_window_buffers_get_pixmap()
...
This just calls into xwl_window_swap_pixmap() so we can just use that
instead (Michel).
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
656d2efd4b
xwayland/glamor: Drop xwl_glamor_needs_n_buffering()
...
This function always return TRUE now that EGLSTream is gone, so we can
remove it.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
d422b40926
xwayland/glamor: Drop xwl_glamor_needs_buffer_flush()
...
GLAMOR needs that, and the function returns TRUE unless GLAMOR is not
used.
Drop the function xwl_glamor_needs_buffer_flush() and call
glamor_block_handler() when glamor is used.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
6466c1ee81
xwayland/glamor: Drop xwl_screen_get_main_dev()
...
This is made redundant with xwl_gbm_get_main_device(), and this is not
really an xwl_screen function either.
Let's remove it.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
ef29e05200
xwayland/glamor: Drop the backend_flags definition
...
Nobody uses that anymore.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
888e3e7a94
xwayland/glamor: Remove the xwl_egl_backend structure
...
No more backend structure, one GBM backend to rule them all!
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
8c0267b60f
xwayland/glamor: Drop init_backend() and select_backend()
...
Now that we have only one backend, there is no need to initialize or
select between different backends.
Drop the corresponding functions.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
bceaca28d3
xwayland/glamor: Remove the backend pointers
...
We have only one backend now.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
863ee2da4d
xwayland/glamor: Make xwl_glamor_has_wl_interfaces() private
...
It's not used outside of Xwayland GLAMOR code itself, no need to keep it
public.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
4eb8684f52
xwayland/glamor: Drop the allow_commit() hook
...
That was used only by the EGLStream backend, we can remove it.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
6fd77acd91
xwayland/glamor: Drop the post_damage() hook
...
That was used only with the EGLStream backend, we can remove it.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
5fd0c92b0e
xwayland/glamor: Remove the flag "is_available"
...
Now that we have only one GBM backend, either it is available and
usable, or we cannot use GLAMOR.
Therefore we can drop the flag "is_available".
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:18 +00:00
Olivier Fourdan
5df6a1e969
xwayland/glamor: Make xwl_glamor_init_gbm() return its status
...
This is a preliminary step to remove the backend's field "is_available".
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
63e2f98f0a
xwayland/glamor: Drop the backend_flags
...
We do not need these anymore, since we only have the GBM backend left.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
925a218b4b
xwayland/glamor: Drop the create_pixmap_for_window() hook
...
And rename the function xwl_glamor_gbm_create_pixmap_for_window() as
xwl_glamor_create_pixmap_for_window().
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
439c0ee5e4
xwayland/glamor: Drop the get_main_device() hook
...
Call xwl_gbm_get_main_device() directly from xwl_screen_get_main_dev().
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
e8d974a8d3
xwayland/glamor: Drop the check_flip() hook
...
The GBM backend never had a use for it.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
76ae669327
xwayland/glamor: Drop the get_wl_buffer_for_pixmap() hook
...
And rename the GLAMOR GBM xwl_glamor_gbm_get_wl_buffer_for_pixmap()
function as xwl_glamor_pixmap_get_wl_buffer().
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
e60e00ff40
xwayland/glamor: Drop the init_screen() hook
...
And call xwl_glamor_gbm_init_screen() directly instead.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
e1bec429bb
xwayland/glamor: Drop the init_egl() hook.
...
And call xwl_glamor_gbm_init_egl() directly instead.
Yet, keep the function separate rather than merging it back into
xwl_glamor_init() for clarity of the code.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
ca73cd8a9d
xwayland/glamor: Drop xwl_glamor_gbm_has_wl_interfaces()
...
And merge it back into xwl_glamor_has_wl_interfaces()
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
2ccabf5aa8
xwayland/glamor: Drop xwl_glamor_gbm_init_wl_registry()
...
And merge it back into xwl_glamor_init_wl_registry().
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
673ed3cd6d
xwayland/glamor: Add a GLAMOR GBM header
...
That will be used between the generic Xwayland GLAMOR functions and the
GBM implementation.
Move the definition of xwl_glamor_init_gbm() to that new header rather
than in the generic Xwayland GLAMOR header.
This is preparation work to eventually replace the xwl_egl_backend now
that we have only one backend left.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Olivier Fourdan
701284f057
xwayland/glamor: Drop the EGLStream backend
...
Now that the NVIDIA proprietary driver has grown support for GBM, the
EGLStream backend for NVIDIA GPUs is now superseded by the standard
GBM backend in Xwayland.
This code path is therefore not used and hardly ever tested.
Remove support for EGLStream in Xwayland.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1386 >
2024-03-18 15:41:17 +00:00
Simon Ser
005912d82f
xwayland/glamor/gbm: simplify render node check
...
No need to call is_device_path_render_node() on each node, the
index is the node type. Saves a couple of open()/close()/IOCTLs.
Signed-off-by: Simon Ser <contact@emersion.fr >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1237 >
2024-03-15 10:53:01 +00:00
Enrico Weigelt, metux IT consult
5b43fd8393
xfree86: os-support: drop unused xf86SerialSendBreak()
...
Since no evidency of anybody actually using it (nor it ever been used within
recorded git history), it's time to drop this old relic from times before
the great flood.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1403 >
2024-03-15 04:33:43 +00:00
Enrico Weigelt, metux IT consult
9bc7d96a45
xfree86: os-support: drop unused NO_OSLIB_PROTOTYPES guard
...
The last user was removed a decade ago by commit
a6fcb15472 .
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1407 >
2024-03-15 04:29:17 +00:00
Olivier Fourdan
722ea5d000
xwayland: Move dmabuf code to its own source file
...
The dmabuf support code is scattered across different source files,
making it hard to follow and bloating unrelated sources.
Move the dmabuf related source code to its own source files.
This is just a cleanup aimed at helping with code readability, no
functional change intended.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1111 >
2024-03-14 15:00:46 +01:00
Michel Dänzer
e1cb1b324e
ci: Make test stage jobs not depend on earlier stage jobs
...
There's no dependency, they can start anytime.
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1406 >
2024-03-14 11:18:04 +00:00
Erik Kurzinger
a0717e5f03
xwayland: correctly report PresentCompleteModeCopy
...
After executing a PresentPixmap request using the copy path, Xwayland
will clear the vblank's pixmap field and re-queue it for the next msc so
that on the next frame a PresentCompleteNotify event will be delivered
to the client by present_execute_post.
While this does work, since the pixmap field of the vblank will be NULL
when present_execute_post is called, the mode reported in the event will
always be PresentCompleteModeSkip, even if the request *was* actually
executed with a copy.
To fix this, we introduce a new "copy_executed" flag in the
xwl_present_event struct. If xwl_present_execute sees that this flag is
set, it will fall straight through to present_execute_post like it does
if the window or pixmap is NULL. So, after executing a request with
present_execute_copy, instead of clearing the pixmap field we will set
the copy_executed flag to true. This will cause present_execute_post to
report the correct completion mode to the client when the
PresentCompleteNotify event is delivered on the next frame.
Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1254 >
2024-03-14 10:37:28 +00:00
Enrico Weigelt, metux IT consult
b335a0fa20
dix: unexport CloseDownClient()
...
This function isn't used by drivers, so no need to export it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1383 >
2024-03-13 00:47:36 +00:00
Enrico Weigelt, metux IT consult
d84fd3bf19
dix: drop now obsolete cursorScreenDevPriv
...
Since the two DDX'es which had used this key (xnest and xfree86) now using
their own ones, this global key is obsolete and can be removed.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1342 >
2024-03-12 15:24:35 +00:00
Enrico Weigelt, metux IT consult
6557286084
xfree86: use own dev-privates key for per-screen cursor
...
Since it's storing an locally defined (ddx-internal) data, it's better
not to abuse some globally defined key for this.
It just happened to work before, since CursorScreenKey is only used by DDX
(and there's only one DDX per executable) and they currently (!) have the
same size (pointer) - but that's a fragile programming style, so clean it up.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1342 >
2024-03-12 15:24:35 +00:00
Enrico Weigelt, metux IT consult
49d139344d
xnest: use own dev-privates key for per-screen cursor
...
Since it's storing an locally defined (ddx-internal) struct, it's better
not to abuse some globally defined key for this.
It just happened to work before, since CursorScreenKey is only used by DDX
(and there's only one DDX per executable) and they currently (!) have the
same size (pointer) - but that's a fragile programming style, so clean it up.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1342 >
2024-03-12 15:24:35 +00:00
Enrico Weigelt, metux IT consult
7e22c033d0
xnest: fix naming of xnestCursorScreenKeyRec
...
It's naming is a bit unprecise: it actually is used for storing
xnestCursorFuncPtr inside a Screen. Thus rename it to
xnestScreenCursorFuncKeyRec to make it bit more clear.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1342 >
2024-03-12 15:24:35 +00:00
Enrico Weigelt, metux IT consult
22306f16b6
xnest: drop superfluous xnestCursorScreenKey define
...
We can just write &xnestCursorScreenKeyRec instead, which makes the code
a bit more clear.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1342 >
2024-03-12 15:24:35 +00:00
Enrico Weigelt, metux IT consult
7f13fc7d2f
dix: unexport callback manager init / teardown functions
...
Those are only needed inside DIX, thus no need to export them.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1346 >
2024-03-12 15:18:17 +00:00
Enrico Weigelt, metux IT consult
8f2894c4d0
include: unexport xserver_poll.h
...
It doesn't seem to have any exported functions, so doesn't need to be
exported to the public module API.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1352 >
2024-03-12 15:01:35 +00:00
Enrico Weigelt, metux IT consult
738edd3501
dix: unexport eventconvert.h functions
...
This header isn't installed, so no external modules could use the
functions declared there. Thus we can unexport it all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1358 >
2024-03-11 12:26:44 +01:00