- Sep 08, 2017
-
-
Emmanuel Gil Peyrot authored
-
Emmanuel Gil Peyrot authored
It can take the values "", "frame-packing", "top-and-bottom" and "side-by-side". Any mode not corresponding to one of these will be discarded.
-
Emmanuel Gil Peyrot authored
There is only one cursor plane per output, and we need to render two cursors on stereo outputs, so currently set cursors_are_broken globally. In the future, this option could be changed to be per-output to keep the plane optimisation for non-stereo outputs.
-
Emmanuel Gil Peyrot authored
-
Emmanuel Gil Peyrot authored
Makes frame packing modes work, the normal-sized buffer was way too small to contain both images.
-
Emmanuel Gil Peyrot authored
-
Emmanuel Gil Peyrot authored
This makes DRM list the stereo modes in addition to the usual mono ones, it’s now just a matter of modeset whether we enable stereo or not.
-
Emmanuel Gil Peyrot authored
Backends are responsible for setting it to the expected value, as specified in wp_stereoscopy.
-
Emmanuel Gil Peyrot authored
When a backend isn’t stereoscopy-aware, the compositor itself will calculate the correct offset. Backends which are aware of stereoscopy should do this computation themselves, in the correct place.
-
Emmanuel Gil Peyrot authored
Will be used by backends to say they are compatible or not.
-
Emmanuel Gil Peyrot authored
-
Emmanuel Gil Peyrot authored
-
- 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>
-