- Sep 22, 2017
-
-
Pekka Paalanen authored
There are IVI tests that require an output. Previously these tests would silently skip if no outputs were present. However, a test setup should always have outputs with these tests. Skipping could easily leave the tests dead without notice. Make these tests fail instead of skip if there are no outputs. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Simplifies the code, and makes moving weston_output_init() into wayland_output_create_common() a little easier. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Gets rid of the constant size char array. While here, document the function. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Initialize the list in weston_output_init() instead of doing it separately in each backend. One would expect weston_output_init() to initialize all weston_output members, at least those that are not NULL. We rely on the set_size() functions to be called only once, as is assert()'d. If set_size() becomes callable multiple times, this patch will force them to be fixed to properly manage the mode list instead of losing all members. compositor-wayland.c is strange in wayland_output_create_for_parent_output(): it first called wayland_output_set_size() that initialized the mode list with a single mode manufactured from width and height and set that mode as current. Then it continued to reset the mode list and adding the list of modes from the parent output, leaving the current mode left to point to a mode struct that is no longer in the mode list and with a broken 'link' element. This patch changes things such that the manufactured mode is left in the list, and the parent mode list is added. This is probably not quite right either. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Sep 18, 2017
-
-
This patch disables the opacity binding when the modifier is configured to `none' in weston.ini, and thus supports use cases where one does not want to have this binding. Signed-off-by:
Ian Ray <ian.ray@ge.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
This patch changes the zoom binding to use the modifier configured in weston.ini instead of hardcoding MODIFIER_SUPER. Signed-off-by:
Ian Ray <ian.ray@ge.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
When calibrating touchscreen with weston-calibrator, you can use the mouse to click on the cross which is recorded as a touch event. This event is used to compute the final calibration of the touchscreen which results in invalid touchscreen calibration and broken touchscreen behaviour. In order to avoid to use the mouse in weston-calibrator, we disable mouse operation by default and add a parameter "--enable-mouse" to enable it. Signed-off-by:
Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
weston_check_egl_extension() returns a bool, not a pointer. Fixes: ce5b614c "clients/nested: use weston_check_egl_extension over strstr" Cc: Emil Velikov <emil.velikov@collabora.com> Signed-off-by:
Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com>
-
- Sep 04, 2017
-
-
Remove the option, because it is hard to use. Drm connector ids are hard to reach for users, and they can change when kernel or device tree is modified. Signed-off-by:
Emre Ucan <eucan@de.adit-jv.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> [Pekka: bump WESTON_DRM_BACKEND_CONFIG_VERSION] Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Two cases are tested: success and fail case of the screen-remove-layer API. Signed-off-by:
Michael Teyfel <mteyfel@de.adit-jv.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Aug 30, 2017
-
-
The old code for scheduling configure events on idle looked like: if (configure_scheduled) { if (this_event_is_the_same) { remove_timer(); return; } } If we queued one new event (either changed, or the client had never received any configure event), followed immediately by one event which was the same as the first, we would delete the scheduled send of the first event. Fix this by treating unconfigured surface as never the same. Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- Aug 28, 2017
-
-
Daniel Stone authored
drm_pending_state is currently skeletal, but will be used to retain data through begin_repaint -> assign_planes -> repaint -> repaint_flush. The flush and cancel functions are currently identical, only freeing the state, but they will be used for different purposes in later patches. Specifically, the intent is to apply any pending output changes (through PageFlip/SetCrtc, or the atomic ioctls) in flush, and only free the state in cancel. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Daniel Stone authored
Retain drm_plane tracking objects for all actual DRM planes when using universal planes, not just overlay planes. Rename uses of 'sprite' to 'plane' to make it clear that it can now be any kind of plane, not just an overlay/sprite. These are currently unused. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Add awareness of, rather than support for, universal planes. Activate the client cap when we start if possible, and if this is activated, studiously ignore non-overlay planes. For now. Signed-off-by:
Daniel Stone <daniels@collabora.com> Co-authored-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Co-authored-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Daniel Stone authored
Add a cache for DRM property IDs and values, and use it for the two connector properties we currently update: DPMS and EDID. As DRM property ID values are not stable, we need to do a name -> ID lookup each run in order to discover the property IDs and enum values to use for those properties. Rather than open-coding this, add a property cache which we can use across multiple different object types. This patch takes substantial work from the universal planes support originally authored by Pekka Paalanen, though it has been heavily reworked. Signed-off-by:
Daniel Stone <daniels@collabora.com> Co-authored-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Daniel Stone authored
All planes being displayed have a framebuffer. What makes 'fb_plane' special is that it's being displayed as the primary plane by KMS. Previous patchsets renamed this to 'primary_plane' to match the KMS terminology, namely the CRTC's base plane, which is controlled by drmModeSetCrtc in the legacy API, and identified by PLANE_TYPE == "Primary" in the universal-plane API. However, Weston uses 'primary_plane' internally to refer to the case where client content is _not_ directly displayed on a plane, but composited via the renderer, with the result of the compositing then shown. Rename to 'scanout_plane' as our least-ambiguous name, and document it a bit. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Emre Ucan <eucan@de.adit-jv.com>
-
This moves the single sprite creation code from create_sprites() into a new function. The readability clean-up is small, but my intention is to write an alternate version of create_sprites(), and sharing the single sprite creation code is useful. The removal code now actually removes the plane from the list. In doing this, the gymnastics required to exact the CRTC ID the plane was last on when making a disabling drmModeSetPlane call have been removed; specifying the CRTC is not necessary when disabling a plane. (The atomic API goes a step further, mandating it be zero.) [daniels: Genericised from drm_sprite to drm_plane, moving some of the logic back into create_sprites(), also symmetrical drm_plane_destroy.] Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Emre Ucan <eucan@de.adit-jv.com>
-
- Aug 16, 2017
-
-
Pekka Paalanen authored
Fixes the failure to start with fbdev-backend: weston: /home/pq/git/weston/libweston/compositor.c:4733: weston_compositor_add_pending_output: Assertion `output->disable' failed. The disable hook was completely unimplemented, and the regression was caused by e952a01c "libweston: move asserts to add_pending_output()". It used to work because Weston never tried to explicitly disable the fbdev output, but now it is hitting the assert. Fix it by tentatively implementing a disable hook. It has not been tested to work for explicit disabling, but it does solve the regression. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=102208 Cc: bluescreen_avenger@verizon.net Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com> Tested-by:
n3rdopolis <bluescreen_avenger@verizon.net>
-
- Aug 11, 2017
-
-
Arnaud Vrac authored
It's been unused since the legacy (non-libinput) input backends have been removed. Signed-off-by:
Arnaud Vrac <rawoul@gmail.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
Arnaud Vrac authored
The GCC address sanitizer overrides dlopen and dlclose, so the configure test does not detect libdl as a needed dependency for linking. It is still needed though, as dlsym is not exported by the sanitizer. The result is that linking fails in the end. Fix this by checking for dlsym instead of dlopen. This can be reproduced by configuring the build with: CFLAGS="-fsanitize=address -fsanitize=undefined" LDFLAGS="-fsanitize=address -fsanitize=undefined" Signed-off-by:
Arnaud Vrac <rawoul@gmail.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
Arnaud Vrac authored
Signed-off-by:
Arnaud Vrac <rawoul@gmail.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
Pekka Paalanen authored
Fixes "configure: error: Weston version is greater than libweston." Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=102143 Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Aug 08, 2017
-
-
Bryce Harrington authored
A 3.0 branch has been established for stable release work.
-
Bryce Harrington authored
-
- Aug 05, 2017
-
-
Arnaud Vrac authored
Without this weston crashes when a client using xdg-shell-v5 is run. Signed-off-by:
Arnaud Vrac <rawoul@gmail.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- Aug 01, 2017
-
-
Bryce Harrington authored
-
- Jul 28, 2017
-
-
Philipp Kerling authored
xdg_shell requires this information to be shared with the client in order to conform with the specification. The code to forward this to the client by way of a configure() event is already in place and works fine, it was just never being used until now. Signed-off-by:
Philipp Kerling <pkerling@casix.org> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- Jul 27, 2017
-
-
Derek Foreman authored
commit 749637a8 introduced this feature, but the break is outside of any conditional so only the first item in the list is ever tested. If a client skips a few configures and then acks the most recent it's still operating within spec, so the break should only occur when a match is found. This version also adds a break after we miss the target, as a tiny optimization (the list will be cleaned up on disconnect anyway), as it makes the code no more difficult to read or maintain. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
This is easily noticed as a leaked fd on every VC switch. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net> Tested-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Fix a regression with VT-switching away from Weston and then back causing drmModePageFlip() to fail with ENOSPC or EINVAL, leaving one or more outputs not updated. The regression appeared in 47224cc9: compositor-drm: Delete drm_backend_set_modes Fix it by forcing a drmModeSetCrtc() on all outputs both initially created and after VT-switch in. Cc: Daniel Stone <daniels@collabora.com> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> v2: moved state_invalid=true from create_output_for_connector() to drm_output_enable() Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
We still need to close fds passed to us - or we leak quite a few fds on VC switch. Regression, originally fixed in 8f5acc2f and re-broken in commit 72dea06d but only for the logind launcher. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 26, 2017
-
-
Philipp Kerling authored
Shell surfaces may have a geometry that is different to the size of their main surface, e.g. due to subcompositing. In states where size is strictly enforced (fullscreen and maximized), the size that the compositor wants must be checked against the window geometry and not just the main surface size. Fix by calling weston_desktop_surface_get_geometry and using that size instead of main surface size. Signed-off-by:
Philipp Kerling <pkerling@casix.org> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
Philipp Kerling authored
The focused surface is used for determining whether shell surfaces are activated. They should also be considered activated when a subsurface has focus. Inserting a call to weston_surface_get_main_surface fixes this. seat->focused_surface is only used for shell_surface keyboard focus tracking. Signed-off-by:
Philipp Kerling <pkerling@casix.org> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- Jul 25, 2017
-
-
Bryce Harrington authored
-
Pekka Paalanen authored
This is a simple wrapper for casting the user data of a wl_resource into a struct weston_output pointer. Using the wrapper clearly marks all the places where a wl_output protocol object is used. Replace ALL wl_output related calls to wl_resource_get_user_data() with a call to weston_output_from_resource(). v2: add type assert in weston_output_from_resource(). Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-
Pekka Paalanen authored
It really is a boolean. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-
Pekka Paalanen authored
It's a little awkward to try to keep the weston_output::region and weston_output::previous_damage allocate exactly only when the output is enabled. There was also a leak: weston_output_move() was calling weston_output_init_geometry() on an already allocated regions without fini in between. Fix both issues by allocating the regions in weston_output_init(), always fini/init'ing them in weston_output_init_geometry(), and fini'ing for good in weston_output_destroy(). This nicely gets rid of weston_output_enable_undo() so I do not need to try to figure out what to do with it later. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-
Pekka Paalanen authored
Move the wl_output global management into weston_compositor_add_output() and weston_compositor_remove_output(). If weston_output_enable() fails, there is no need to clean up the global and the clients will not see a wl_output come and go. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-
Pekka Paalanen authored
Move the output id management into weston_compositor_add_output() and weston_compositor_remove_output(). This is a more logical place, and works towards assimilating weston_output_enable_undo(). The output id is no longer available to the backend enable() vfuncs, but it was not used there to begin with. v2: moved assert earlier in weston_compositor_add_output() Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-
Pekka Paalanen authored
Enabling an already enabled output is an error, at least with the current implementation. However, disabling an output that has not been enabled is ok. Cope with the first and document the second. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-