- Apr 27, 2021
-
-
Daniel Stone authored
To update your local repository to use the new default branch, these commands may help: $ git fetch origin $ git checkout master $ git branch -m main $ git branch --set-upstream-to=origin/main Signed-off-by:
Daniel Stone <daniels@collabora.com>
-
Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
While the commonly used Weston launchers are weston-launch and launcher-logind, the direct backend was used in CI out of convenience, and due to logind being a bit cumbersome to get to work in a CI environment. The new libseat launcher can be used with seatd as well as logind. seatd is easy to start in a CI environment, allowing us to test the libseat launcher codepath instead of the less user relevant direct launcher. This also prepares us for the future intended removal of non-libseat launchers. Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
- Apr 20, 2021
-
-
Most of our stages take just a single minute to complete, while the standard timeout on gitlab CI is 60 minutes. Set a 5 minute timeout on quick stages, and a 30 minute timeout on the image build step to ensure we fail fast and don't tie up CI resources. Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
- Apr 17, 2021
-
-
The standard style of LCOV HTML reports is a bit harsh to look at. This commit replaces it with a new one. The new CSS was written from scratch by looking at the HTML source code of a generated LCOV report. The original gcov.css file was not used. The color scheme is neutral, trying to avoid a Christmas tree effect. The colors are intended to be calm while also distinguishable, and not hamper text readability. The font lists were taken from Gitlab with the hope that it will blend in a little better when viewing from MR artifacts. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Apr 15, 2021
-
-
Kenny Levinsen authored
This installs libseat in the debian image build from source in order to enable, build and test weston with libseat support. Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
- Apr 14, 2021
-
-
get_vt is used to check if VTs are enabled, by verifying that a VT greater than 0 is returned. libseat always implements switching, with switch to an active session currently being a noop in all backends. libseat does not currently have a get_vt implementation. Make get_vt errors more explicit, and allow VT switching anyway if the error is ENOSYS. Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
This adds support for libseat as a seat backend. libseat provides seatd, (e)logind and direct seat backends as compile-time and runtime options. The backend is currently disabled by default. It can be enabled through the launcher-libseat option. Signed-off-by:
Kenny Levinsen <kl@kl.wtf>
-
- Apr 12, 2021
-
-
Jonathan Marler authored
Signed-off-by:
Jonathan Marler <johnnymarler@gmail.com>
-
- Apr 10, 2021
-
-
In some situations, like positioning a sub-surface that exceeds the output's dimensions we would adjust the plane state dimensions to some lower values to that of the buffer. That would ultimately trip the cursor update function because the buffer itself actually exceeds the maximum size/dimension of the cursor. The plane state destination co-ordinates is the area of the view which is visible on the output, which in some situations, would actually be smaller than the original buffer dimensions (making it so that it will pass the cropping/scaling check), but depending on of how large is the surface buffer, it would tripping the assert wrt to cursor width/height dimensions. This hasn't been seen so far due to the fact that until recently we had a cursor surface that always reached the cursor plane and that was already being set-up by default (with desktop-shell, which is no longer the case), and also because kiosk-shell, which doesn't set-up a cursor surface, was not available. This adds a check to skip placing the view in the cursor plane if the buffer dimensions exceed the cursor permitted width/height. (Suggested-by Daniel Stone). Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
fixes issue #484 (race condition with message to/from weston launch) The race condition occurs after weston sends the WESTON_LAUNCHER_OPEN message to weston-launch. The race is between when weston-launch replies with the fd handle versus weston-launch sending an activation message. If weston-launch sends an activation message before sending the fd handle, then weston will be in an invalid state. To fix this, I modified the fd handle reply that weston-launch sends to include a message id at the beginning, which I called WESTON_LAUNCHER_OPEN_REPLY. Along with this, weston now inspects the first part of any reply to determine whether it is an activation message or a reply to the OPEN message. In the newly handled case that it's an activation message, it tracks whether the latest result is a deactivate message and stores it in a flag to be handled once the open function has completed. Signed-off-by:
Jonathan Marler <johnnymarler@gmail.com>
-
- Apr 07, 2021
-
-
Now that pieces of color management implementation start to land, the fallback shader becomes even more special than before. It is the only case where the compositor ignores color management. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
The texture target can be uniquely inferred from the shader variant, so do not store texture target separately. Shortens the code a bit. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Replace the shader_requirements with just shader_variant. The variant is the only thing gl_surface_state will actually carry. All the other requirements fields are always unused. Co-authored-by:
Sebastian Wick <sebastian@sebastianwick.net> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
This patch gathers all values to be loaded to shader uniforms into a new struct gl_shader_config along with texture target and filter information. Struct gl_shader becomes opaque outside of gl-shaders.c. Everything that used or open-coded these are converted. The aim is to make gl-renderer.c easier to read. Previously, uniform values were loaded up in various places, texture units were set up in one place, textures were bound into units in different places. Stuff was all over the place. Now, shader requirements and associated uniform data is stored in a single struct. The data is loaded into a shader program in one function only. That makes it easy for things like maybe_censor_override() to replace the whole config rather than poke only the shader requirements. This may not look like much right now, but when color management adds more uniforms and even hardcoded color need to go through the proper color pipeline, doing things the old way would become intractable. Similar simplification can be seen in draw_view(), where the RGBA->RGBX override becomes more contained. There is no longer a need to "pre-load" the shader used by triangle fan debug. Triangle fan debug no longer needs to play tricks with saving and restoring the current shader. The real benefit of this change will probably come when almost all shader operations need to take color spaces into account. That means filling in gl_shader_config parts based on a color transformation. This is based on an idea Sebastian already used in his Weston color management work. Co-authored-by:
Sebastian Wick <sebastian@sebastianwick.net> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
This paves way for making struct gl_shader opaque outside of gl-shaders.c. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Avoid looking up 'gr' from view->compositor by passing it explicitly into the functions needing it. Also fixes the whitespace in repaint_region() signature. Clarifies code by removing local variables, but also future changes will need 'gr' more. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
A future change will call this function from draw_view(), so move it upwards to avoid adding a function declaration. No functional or even cosmetic change. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
These functions are related to shaders, so they are more at home in gl-shaders.c. gl-renderer.c is too long already. This allows making a couple functions static while the moved functions become non-static. Future changes turn some of these functions into static again, with the ultimate goal of making struct gl_shader opaque. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Apr 04, 2021
-
-
Marius Vlad authored
desktop-shell's client is able to read-up from the config file, [shell] section the background, but for kiosk-shell we don't actually have client that does that, so instead allow the shell do that directly. Seems to be a useful thing to have, as a default background color. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
Marius Vlad authored
When using xwayland surfaces and multiple outputs we need to notify xwayland surface that the surface position has changed, otherwise we're going to end up with pop-ups being displayed on other outputs rather than the one were the main surface resides. Stolen from desktop-shell. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com> Suggested-by:
Alexandros Frantzis <alexandros.frantzis@collabora.com>
-
Marius Vlad authored
Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
- Apr 01, 2021
-
-
Marius Vlad authored
Tearing down the drm-backend when there are no input devices, would call for the gbm device destruction before compositor shutdown. The latter would call into the renderer detroy function and assume that the EGLDisplay, which was created using the before-mentioned gbm device, is still available. This patch re-orders the gbm destruction after the compositor shutdown when no one would make use of it. Fixes: #314 Signed-off-by:
Marius Vlad <marius.vlad@collabora.com> Suggested-by:
Daniel Stone <daniel.stone@collabora.com>
-
- Mar 22, 2021
-
-
Simon Ser authored
This allows to specify a custom DRM format. For instance, to test XBGR2101010: weston-simple-dmabuf-egl -f 0x30334258 Signed-off-by:
Simon Ser <contact@emersion.fr>
-
- Mar 18, 2021
-
-
Pekka Paalanen authored
This used a cargo-culted form of the ACTION check. Kernel is allowed to invent new ACTIONs and IIRC there are already actions like bind and unbind. Udev events before rule processing always start with a clean property list. This means that if you only match ACTION==add to add some value to the event, then that value will not be present for ACTION==bind. Udev event consumers do not accumulate values, so inconsistent value setting may confuse them. Therefore one needs to match ACTION!=remove, not ACTION==add|change, to keep the device properties consistent for every event. It doesn't hurt to set them on remove either, but it's a habit to try to avoid processing when not strictly needed. This issue came up in #476 (comment 841430) For more information, see https://lists.freedesktop.org/archives/systemd-devel/2020-November/045570.html the part "KERNEL API INCOMPATIBILITY" near the beginning. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Mar 16, 2021
-
-
Leandro Ribeiro authored
Since commit "libweston: add required_capabilities test suite quirk" a new function that depends on test_data is being called in wet_main(). We should check if test_data is NULL before calling it, otherwise we have a segfault when running outside the test suite. Signed-off-by:
Leandro Ribeiro <leandro.ribeiro@collabora.com>
-
- Mar 12, 2021
-
-
Pekka Paalanen authored
In CI we should never get a skip, so turn them into failures to make sure we notice. This is enabled only for the configuration where we build everything. If anything is disabled, skips are expected. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
This will be useful in CI, where we do not want to see any skips. If something starts to skip, that's a mistake somewhere, and want to catch it. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
There is no case in pre-processor directives where would like to have undefined identifiers be silently replaced with a zero. This warning can discover typos and forgotten includes. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
Everywhere else uses #ifdef, this used just #if. When the next commit adds -Wundef to the compiler options, this #if here will start failing as ENABLE_EGL is undefined. It would be much better to use Meson's set10() for ENABLE_EGL and change all #ifdef into #if, but I opted for the smaller change for now. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
Code is using the form #if ENABLE_JUNIT_XML which is fine until we start using -Wundef. I think the existing code would fail or at least warn if you disabled test-junit-xml with -Wundef. Make sure ENABLE_JUNIT_XML is always defined so that -Wundef can be added to build flags. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
If the compositor does not have the shadow buffer capability (implied by the color ops capability bit), then trying to run the shadow buffer test is useless, it would just fail. Let it skip instead. Fixes: b1e56143 Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
This allows tests to skip when required capabilities are not present. The output damage test for the shadow buffer case needs this. required_capabilities is added to struct weston_testsuite_quirks which is libweston public API just because there is no better place currently. This is a little weird because the code to check it is in compositor, not libweston. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Mar 09, 2021
-
-
Pekka Paalanen authored
Gives a string for all existing capability bits. This is useful for the next commit. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
The capability strings will be printed also in another occasion, where the colon does not fit with the capability description. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Mar 08, 2021
-
-
Pekka Paalanen authored
This should not be necessary, but my testing with fd.o Gitlab 13.9.1 shows this is needed. Otherwise the coverage markings will not appear in a MR diff view. Apparently Gitlab has some problem with 'filename' attribute containing "../" in Cobertura XML files, even when that does result in a correct path. Or maybe the problem is is with the <source> path referring to the build dir which from Gitlab perspective does not exist in the project, even though builddir/../ is a good path. This sed hack removes the "../" part and the last element in the <source> path correspondingly. See wayland/weston!567 for my testing. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
This runs the coverage tools to produce HTML pages listing the code lines / functions / branches hit/totalled by the test suite. Nowadays Gitlab has some Cobertura support itself: https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html lcov is needed for the HTML report, gcovr is needed for the Cobertura report. 'ninja clean' must be removed, otherwise it deletes the coverage files before they are analysed. Seeing the test suite code coverage is really interesting. It can guide designing tests. If Gitlab MRs show the coverage in diff view, it shows if new code actually gets executed in CI. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Mar 04, 2021
-
-
The -listen <fd> option has been deprecated. Its replacement is -listenfd. Signed-off-by:
Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-
- Feb 28, 2021
-
-
Marius Vlad authored
Doing it when the surface is being added would cause clients that wait for frame callbacks to wait indefinitely as the surface being activated is not yet, committed. Fixes: #473 Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
- Feb 25, 2021
-
-
Pekka Paalanen authored
This should help correlate which shaders were used in repainting outputs recently. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-