Commits on Source (52)
-
Marius Vlad authored
As observed on some platforms, importing known DMA buffers can cause failures, leading to an attempt of destroyng an EGL image not set. This patch resets the num_images such that loop becomes inert when destroying the DMA buffer, and avoids passing an egl image to it. The initial import doesn't have this issue as it sets the num_images in case it succeeds. This also corrects the assumption that the num_images were 0 at that point which, if the initial import succeded, was actually set to 1. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Marius Vlad authored
Potential failures when creating the EGL image could cause an incorrect number of num images (num_planes > num_images). With this change egl_image_unref() requires an additional check to avoid any potential NULL derefs when cleaning up. We do it straight in egl_image_unref() instead of adding guards all over the necessary parts. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
asprintf() has the problem that it leaves *strp undefined when it fails. Here is a simple wrapper that ensures NULL if asprintf() fails, which is much more convenient to use. This will be useful in future patches, where one needs to return error messages from maybe failing functions, and more. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Conditionally build support when libdrm is at least 2.4.107 to make use of it. Plug it in when printing out the buffer information. With this in, we add a hard dependecy for libweston to link against libdrm. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Daniel Stone authored
It's illegal to create an xdg_surface for a surface which already has a buffer attached to it. We check for this, but only after we've created our weston_desktop_surface; this simply avoids creating the internal tracking structure when we're only going to destroy it after posting the error. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
If a given wl_surface already has a role (e.g. cursor or subsurface), there is nothing you can do with an xdg_surface which won't raise an error, apart from destroying it. As of wayland-protocols@11fecf08 this is now explicitly specified to be illegal, so disallow it within libweston-desktop. This avoids us tying ourselves in knots with surface-private ownership. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
This is the first step towards removing wl_shell support. Add an option so that users can toggle support for the deprecated wl_shell protocol. This lets users test their clients to make sure they work fine without wl_shell. The option is set to false by default. Signed-off-by:
Simon Ser <contact@emersion.fr>
-
Stop using wl_shell for the roles tests, since it'll get disabled and removed eventually. Signed-off-by:
Simon Ser <contact@emersion.fr>
-
-
Derek Foreman authored
Pull the container from a source without a rate limit Suggested by Daniel Stone <daniels@collabora.com> Signed-off-by:
Derek Foreman <derek.foreman@collabora.com>
-
Marius Vlad authored
Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Vlad Zahorodnii authored
weston_frame_callback is needed primarily to store the doubly-linked list link, but it can be also retrieved by using the wl_resource_get_link() function. This removes an extra heap allocation per every wl_callback object. Signed-off-by:
Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-
Some graphics drivers (currently at least VMware and AMD) will give a 0 timestamp for the atomic mode flip completion event when turning off the display. This causes us to trip an assertion in weston_output_frame_finish() because the clock jumps backwards, which isn't a condition the presentation feedback code should be dealing with. This is a good assertion and we'd like to keep it. And there's some expectation that this is buggy behaviour in the graphics drivers that will be fixed at some point. Pragmatically speaking though, there's nothing productive we can do with a correct timestamp for the display shutdown. So let's just flag the event sent for DPMS off as invalid so presentation feedback doesn't have to worry about it, and the assert doesn't fire. Signed-off-by:
Derek Foreman <derek.foreman@collabora.com>
-
And ultimately, fail to start when there are no input devices on the system. Patchs adds consistency to touch/pointer initialization to return -1 in case same thing happens. Further more, when the device is not created we can't assume to retrieve a valid one from a libinput_device so guard against it. This takes care of hot-plugging situations when we couldn't create the (keyboard) device, or when removing it. Fixes: #117, #402, #485 Signed-off-by:
Marius Vlad <marius.vlad@collabora.com> Suggested-by:
Daniel Stone <daniel.stone@collabora.com>
-
When a window is closed, Weston will, by default, run a fade out animation and defer destroying the underlying surface until it completes. However, if the compositor is sleeping, and therefore not rendering any frames, this animation will *never* complete. Therefore, if windows are repeatedly created and destroyed while in sleep mode, these surfaces will keep accumulating, and since the buffers attached to them may be backed by an fd, eventually the ulimit will be reached resulting in a potential crash or other errors. This can be demonstrated repeatedly launching and killing an X11 application with Xwayland running. while true; do xterm & pid=$!; sleep 0.5; kill $pid; done As soon as the compositor goes to sleep, one can observe a steadily growing list of dmabufs in the output of lsof. As a fix, desktop_surface_removed should check whether the compositor is active before kicking off the fade animation. If it is not, it should instead drop the extra reference taken in desktop_surface_committed and then destroy the surface immediately. Signed-off-by:
Erik Kurzinger <ekurzinger@nvidia.com>
-
This avoids an extra heap allocation for each view.
-
Fixes a “regression” from 04918f3b, but also other missed pieces.
-
This adds support for xdg-shell v3, which adds support for repositioning popups. This adds support for explicit popup repositioning, as weston doesn't yet apply any constraining to popups, thus cannot implicitly reposition. Signed-off-by:
Jonas Ådahl <jadahl@gmail.com> Tested-by:
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
-
Updating PipeWire to the latest version lets us check that everything still works well, and shows users that they are able to use it. [daniels: Updated to 0.3.31, use symbolic ref tags rather than SHAs. 0.3.32 is released, but doesn't build in our Debian environment; this is fixed upstream but there is no release for it yet.] Signed-off-by:
James Hilliard <james.hilliard1@gmail.com>
-
-
[daniels: Extracted from previous patch, updated to even-newer version.] Signed-off-by:
Jonas Ådahl <jadahl@gmail.com>
-
Daniel Stone authored
The rules syntax is more clear and explicit than the previous only/except. Switch to using that. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
[daniels: Only run on MRs.] Signed-off-by:
Jonas Ådahl <jadahl@gmail.com>
-
pointer/touch drag-n-drop operations could happen if there's no keyboard hooked up or when it is unplugged. Fixes: #235 Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Sebastian Krzyszkowiak authored
It's the geometry size that gets checked, not the buffer size. Signed-off-by:
Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
-
Marius Vlad authored
Follow-up from commit 'desktop-shell: don't run fade animation if compositor is inactive' where the reference was dropped directly, instead of using weston_surface_destroy(). Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Daniel Stone authored
The API expects uintptr_t (good!), but we're passing an unsigned long here. Make the conversion explicit. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Because we weren't properly pinning the wayland-protocols version, and I can't read, we missed updating this in !563. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
The shared runners export ${FDO_CI_CONCURRENT} for the appropriate number of CPUs we should use during our builds. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Keep this as part of our container image; there's no reason to pull it for every single build. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Just cosmetic for now, but tell Meson to just run our tests rather than trying to rebuild them. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Explain what we do within our CI and why, with links as required. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
GitLab already groups our various stages (container, build, etc) into separate UI elements. Within those stages, the important information is the parameterisation (architecture, OS, toolchain). We don't want that to get ellipsised, so put that first in the job names. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
No need to set it twice. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
We only need KVM for testing. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
No functional change to the test runs, apart from changing the job names. This will allow us to test along more axes without more duplication. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
This makes it easier to split our scripts into OS-independent and OS-dependent sections. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
When we build our base-OS container, we run debian-install.sh to install packages and compile our build dependencies. Since the latter is mostly OS-independent, split debian-install.sh into two scripts: one to install and cleanup packages, and another just to compile stuff. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
0.57.0 has a bug where the whole test harness crashes when using TAP and failing tests, cf. https://github.com/mesonbuild/meson/pull/8385 Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
autotools has already been removed, so we should be doing this. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
GitLab CI has two execution scheduling models. The original model is to split jobs into stages; jobs within a single stage may execute in parallel, but execution is serialised between stages. As we move to supporting multiple OSes and architectures, there is no need to serialise, e.g. the AArch64 Linux build against the x86-64 FreeBSD container preparation. Declare our dependencies explicitly using `needs`. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
AArch64 needs different names and paths to x86-64, so let's allow for that. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
This only runs a single build job, to build without GL and not run any tests, as KVM support is not yet included. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Build a kernel for AArch64 and run it under virtme just like we do for x86-64. This requires adding support for the AArch64 defconfig variant, and accommodating for the fact that it builds DRM as a module by default rather than built in. The virtme branch we are using has also been rebased on top of newer virtme upstream which unbreaks AArch64. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
ARMv7 is still an important architecture for us to run on, and running on ARMv7 also gives us 32-bit build coverage. As distros are deprecating their non-64-bit-x86 support, this may be our only realistic chance of ensuring that our build is also 32-bit-clean. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Give ourselves a bit more separation between the different job types, so it's easier to see what's running and/or failing. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Signed and unsigned integers are not the same thing. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
EGL's native display type is not particularly well defined; in gl-renderer we get around this by always treating it as a void *, since for all the platforms we care about it's a pointer - gbm_device, wl_display, or Display *. The surfaceless platform doesn't care what the native display is (since it doesn't have one by definition), so just use NULL instead of what may be either NULL or 0 depending on environmental factors. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Our core test structure is 36 bytes wide. Declaring it with a 32-bit alignment should thus stripe it to 64 bytes. For some reason, clang+lld lays them out with a 96-byte stride within the section (does it want an entire 32-bit word when building with ASan?), getting the code wildly confused when it tries to step through the structures. So we could fix all our tests to avoid the fragile section dance, or we could just waste another 4 bytes per test definition by bumping the alignment up to 64 bytes, which seems to do enough to magically accord with what clang+lld+ASan expect. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
When building with Clang, PipeWire throws a warning we should trivially work around: pipewire/pipewire!858 Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
This shouldn't extend the base .build-env, since we have per-environment extensions. Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
Signed-off-by:
Daniel Stone <daniels@collabora.com>
Showing
- .gitlab-ci.yml 297 additions, 51 deletions.gitlab-ci.yml
- .gitlab-ci/build-deps.sh 158 additions, 0 deletions.gitlab-ci/build-deps.sh
- .gitlab-ci/debian-install.sh 15 additions, 77 deletions.gitlab-ci/debian-install.sh
- .gitlab-ci/virtme-scripts/run-weston-tests.sh 1 addition, 1 deletion.gitlab-ci/virtme-scripts/run-weston-tests.sh
- clients/desktop-shell.c 18 additions, 2 deletionsclients/desktop-shell.c
- clients/dnd.c 3 additions, 3 deletionsclients/dnd.c
- clients/terminal.c 3 additions, 3 deletionsclients/terminal.c
- clients/window.c 3 additions, 3 deletionsclients/window.c
- compositor/xwayland.c 1 addition, 1 deletioncompositor/xwayland.c
- desktop-shell/exposay.c 2 additions, 2 deletionsdesktop-shell/exposay.c
- desktop-shell/shell.c 18 additions, 12 deletionsdesktop-shell/shell.c
- include/libweston/libweston.h 21 additions, 21 deletionsinclude/libweston/libweston.h
- include/libweston/windowed-output-api.h 1 addition, 1 deletioninclude/libweston/windowed-output-api.h
- libweston-desktop/libweston-desktop.c 9 additions, 0 deletionslibweston-desktop/libweston-desktop.c
- libweston-desktop/xdg-shell.c 111 additions, 15 deletionslibweston-desktop/xdg-shell.c
- libweston-desktop/xwayland.c 12 additions, 0 deletionslibweston-desktop/xwayland.c
- libweston/animation.c 4 additions, 4 deletionslibweston/animation.c
- libweston/backend-drm/drm-virtual.c 2 additions, 2 deletionslibweston/backend-drm/drm-virtual.c
- libweston/backend-drm/drm.c 6 additions, 1 deletionlibweston/backend-drm/drm.c
- libweston/backend-drm/fb.c 7 additions, 7 deletionslibweston/backend-drm/fb.c
.gitlab-ci/build-deps.sh
0 → 100755