Commits on Source (29)
-
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>
-
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
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>
-
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
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
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
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
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
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>
-
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>
-
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>
-
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>
-
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>
-
Marius Vlad authored
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
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>
-
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>
-
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>
-
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>
-
This paves way for making struct gl_shader opaque outside of gl-shaders.c. 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>
-
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>
-
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>
-
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>
-
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>
-
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>
-
Jonathan Marler authored
Signed-off-by:
Jonathan Marler <johnnymarler@gmail.com>
-
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>
-
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>
Showing
- .gitlab-ci.yml 1 addition, 0 deletions.gitlab-ci.yml
- clients/simple-dmabuf-egl.c 18 additions, 13 deletionsclients/simple-dmabuf-egl.c
- compositor/main.c 41 additions, 4 deletionscompositor/main.c
- compositor/weston.h 6 additions, 0 deletionscompositor/weston.h
- doc/scripts/calibration-helper.bash 1 addition, 1 deletiondoc/scripts/calibration-helper.bash
- include/libweston/libweston.h 2 additions, 0 deletionsinclude/libweston/libweston.h
- kiosk-shell/kiosk-shell.c 55 additions, 1 deletionkiosk-shell/kiosk-shell.c
- kiosk-shell/kiosk-shell.h 5 additions, 0 deletionskiosk-shell/kiosk-shell.h
- libweston/backend-drm/drm.c 4 additions, 4 deletionslibweston/backend-drm/drm.c
- libweston/backend-drm/state-propose.c 11 additions, 0 deletionslibweston/backend-drm/state-propose.c
- libweston/launcher-impl.h 1 addition, 0 deletionslibweston/launcher-impl.h
- libweston/launcher-libseat.c 255 additions, 0 deletionslibweston/launcher-libseat.c
- libweston/launcher-logind.c 3 additions, 0 deletionslibweston/launcher-logind.c
- libweston/launcher-util.c 7 additions, 1 deletionlibweston/launcher-util.c
- libweston/launcher-weston-launch.c 58 additions, 18 deletionslibweston/launcher-weston-launch.c
- libweston/meson.build 10 additions, 0 deletionslibweston/meson.build
- libweston/pixel-formats.c 1 addition, 1 deletionlibweston/pixel-formats.c
- libweston/renderer-gl/gl-renderer-internal.h 24 additions, 15 deletionslibweston/renderer-gl/gl-renderer-internal.h
- libweston/renderer-gl/gl-renderer.c 191 additions, 327 deletionslibweston/renderer-gl/gl-renderer.c
- libweston/renderer-gl/gl-shaders.c 175 additions, 2 deletionslibweston/renderer-gl/gl-shaders.c
libweston/launcher-libseat.c
0 → 100644
This diff is collapsed.