- Dec 01, 2017
-
-
This now prints each (format, modifier) tuple, to show which ones the compositor sends to its clients. It is only implemented for version 3+, since I didn’t have any compositor implementing previous versions, and the old `format` event is deprecated anyway. Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
-
Without this attribute, the test macros were making Weston fail to build with LTO enabled. Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de> Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Tested-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
-
This is a preparatory patch for the next one. Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
-
Daniel Stone authored
zwp_linux_dmabuf_v1 allows clients to pass an explicit pitch for each plane, but wl_shm only takes a single pitch parameter; the pitch for secondary planes must be inferred. Multi-plane sub-sampled textures have partial width/height, e.g. YUV420/I420 has a full-size Y plane, followed by a half-width/height U plane, and a half-width/height V plane. GStreamer's waylandsink - the only user of wl_shm YUV formats - expects the implementation to follow the example of Xv and implicitly divide the pitch for secondary planes by the subsampling factor. gl-renderer was not doing this, and instead just using the (larger) stride provided by the client for all planes in the buffer. Fix gl-renderer to divide pitch by the subsampling factor when uploading from subsampled SHM buffers into GL textures, also dividing co-ordinates when doing offset partial uploads. Tested with: $ gst-launch-1.0 videotestsrc ! waylandsink Signed-off-by: Daniel Stone <daniels@collabora.com> Reported-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> Tested-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> Reviewed-by: Arnaud Vrac <avrac@freebox.fr> Acked-by: Vincent ABRIOU <vincent.abriou@st.com> Acked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Fixes: fdeefe42 ("gl-renderer: add support of WL_SHM_FORMAT_YUV420") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103063
-
- Nov 30, 2017
-
-
If the --click-to-show option is specified, clicking an input field will toggle the input panel visiblity Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Tested-by: Silvan Jegen <s.jegen@gmail.com> Reviewed-by: Jan Arne Petersen <janarne@gmail.com>
-
Previously, the hide_input_panel and show_input_panel messages for the text input protocol were limited to specific cases, such as showing the panel on activation, or making the panel visible after activation. Now, clients are allowed to toggle the panel visiblity at will as long as they are the currently active client Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Tested-by: Silvan Jegen <s.jegen@gmail.com> Reviewed-by: Jan Arne Petersen <janarne@gmail.com>
-
- Nov 28, 2017
-
-
Pekka Paalanen authored
Logind has been long supported as means to launch Weston without weston-launch. It's good to note it in the manual. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
Pekka Paalanen authored
Stop suggesting to run Weston as root, it is only meant for debugging. Instead, mention the two supported ways to run Weston on DRM and fbdev: weston-launch helper and logind service. Cc: "Ucan, Emre (ADITG/ESB)" <eucan@de.adit-jv.com> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> [Pekka: added forgotten "using" word.]
-
Pekka Paalanen authored
Explain that -u requires root and -t requires -u. Most importantly, document in what format does -t expect the tty to be given. It has been confusing, because Weston's --tty option takes an integer, weston-launch takes a full device path. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
Pekka Paalanen authored
Fix an issue introduced in: commit ab499949 Author: Kristian Høgsberg <krh@bitplanet.net> Date: Fri Jul 19 21:26:24 2013 -0700 weston-launch: Drop sleep_fork option where the option string accidentally became "t::". That causes $ weston-lauch -t /dev/tty4 to be parsed incorrectly, as if -t option had no argument and the tty path gets passed to weston which errors out because of it. This patch fixes the above to work as expected. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
Pekka Paalanen authored
setup_tty() function uses the tty argument for choosing the tty/VT only if wl->new_user (the -u option) is given. If the tty option is given without -u, it will only be used for misleading error messages. To make it clear to the user that -t without -u does not work the way one might think, let weston-launch exit with an error in that case. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
Pekka Paalanen authored
When you need to start Weston via weston-launch, systemd unit, or any other runner, it is annoying to try to get in with a debugger, especially if the thing you are interested in happens at start-up. To make it easy, a new option is introduced. The new option, implemented both as a command line option and a weston.ini option, raises SIGSTOP early in the start-up, before the weston_compositor has been created. This allows one to attach a debugger at a known point in execution, and resume execution with SIGCONT. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by: Ian Ray <ian.ray@ge.com>
-
- Nov 27, 2017
-
-
Pekka Paalanen authored
It is useful to print the backtrace regardless of whether we have a compositor and a backend initialized yet. Move catch_signals() to the earliest point in main() and protect the SEGV handler from dereferencing NULL when we don't yet have a compositor or a backend. The SEGV handler uses weston_log(), so cannot move catch_signals() any earlier. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
-
Change weston_compositor_get_time to return the current compositor time as a struct timespec. Also, use clock_gettime (with CLOCK_REALTIME) to get the time, since it's equivalent to the currently used gettimeofday call, but returns the data directly in a struct timespec. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to touch motion events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to touch up events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to touch down events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to key events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to axis events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to button events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to motion events to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Store the output presentation timestamp as struct timespec. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Change code related to animations to use struct timespec to represent time. This commit is part of a larger effort to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> This bumps the libweston major version due to breakage in the animation ABI. The commits following this one break more ABI in other parts. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Add helper functions to make it easy and less error-prone to convert between values in various time units (nsec, usec, msec) and struct timespec. These helpers are going to be used in the upcoming commits to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Add a helper function to check if a struct timespec is zero. This helper will be used in the upcoming commits to transition the Weston codebase to struct timespec. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Nov 24, 2017
-
-
Fix the code to use the correct bitwise AND operator '&', instead of the currently used logical AND operator '&&', to check the value of a bit flag in a bit mask. This problem was reported as a warning when building with clang. Reviewed-by: Emre Ucan <eucan@de.adit-jv.com>
-
- Nov 10, 2017
-
-
Reynaldo H. Verdejo Pinochet authored
-uninstalled.pc files are a pkg-config facility for working with uninstalled libraries. With pkg-config, foo-uninstalled.pc overrides foo.pc. foo-uninstalled.pc should never be installed, and will be generated with references to the build directory. If you set up your environment so pkg-config looks for .pc files in your build directories, you can use this to build and link against libraries you haven't installed with "make install". This can save time and space over installing with a prefix. Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com> Acked-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-
- Oct 24, 2017
-
-
Pekka Paalanen authored
It appears that wayland_shm_buffer::damage is in the global coordinate space. Therefore initializing it to width x height at 0,0 is not correct for any output not positioned at 0,0. That is, all outputs after the first one get it wrong. Initialize it from the output region, which is in the global coordinate space. While at it, add a comment to note that damage is in global coordinate space. As I can see, this was the last confusion about it. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Damage coordinates are in global coordinate space, and they need to be translated to local coordinate space so multiple outputs can work. This path now matches the similar path in the X11 backend. This patch fixes the appearance of multiple windows in the parent compositor. Previously, all windows except the one with nested output position 0,0 would have their damage for the parent wl_surface always fall outside of the wl_surface, save the decorations which were handled separately. If the parent compositor was Weston/GL, this would lead to the output area remaining black as partial GL texture uploads would practically never update the texture. If the parent compositor was Weston/pixman, the parent windows would not update on screen unless something else caused the area to be repainted. [Pekka: adjusted commit message] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
Clarify the error message to explicitly say one was trying to connect to a parent Wayland compositor. This hopefully is a good enough hint on what using the wayland-backend is trying to do. Add the command line display option value and WAYLAND_DISPLAY values for good measure. WAYLAND_SOCKET is not shown as libwayland-client removes it. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
The set_windowed and set_fullscreen functions are only useful on a desktop shell, and never called on fullscreen-shell. Remove the confusing dead code, and ensure we notice if these functions get called in the wrong environment. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
To be more symmetric with wayland_output_set_fullscreen(), implement the xdg-shell path in wayland_output_set_windowed(). This should make it possible to use the fullscreen key binding to toggle between a floating window and fullscreen also under xdg-shell. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
I could not find anywhere where struct parent_output was freed, so apparently we were leaking it. Check against wayland_backend_register_output() and add the missing clean-up: removal from the parent output list, and free(). registry_handle_global_remove() also needs fixing to use a safer loop, because now we are actually removing the list item. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
- Oct 23, 2017
-
-
Pekka Paalanen authored
The wayland-backend with --sprawl is one way to trigger wayland_output_create_for_parent_output(), which intends to find a mode from the parent mode list and use it. Calling wayland_output_set_size() initialized an embedded struct weston_mode and inserts that into the mode list. Then the assignment output->mode = *mode; corrupts the mode_list by overwriting the link entry. This leads to an endless loop in bind_output() in compositor.c. Fix this by manually doing the setup that wayland_output_set_size() did and do not call it. As a side effect, it now relays the parent compositor's physical output size to our own clients. It no longer smashes the refresh rate either. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
This member is only ever set and never read, therefore it is dead. Delete dead code. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
Calling wl_display_roundtrip() from within a Wayland event handler means we will re-enter event dispatch, that is, it will lead to recursive dispatch. Even if libwayland-client was safe, this would lead to unexpected code paths: the first event handler function has not returned when other event handler functions may get called. In this particular case it maybe didn't hurt, but it's still a fragile pattern to use. Replace the wl_display_roundtrip() with a manual sync callback to do the work. This does not break the wayland-backend initialization sequence, because sprawl_across_outputs was set only after the roundtrip to ensure wl_registry globals have been received so the code would not have been hit anyway, and weston_backend_init() also has a second roundtrip that ensures the per wl_output events have been received before continuing. For wayland-backend output hotplug the change is insignificant because it will only delay the output creation a bit, and the parent outputs are not processed anywhere in between. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
Pekka Paalanen authored
Surprisingly, WESTON_OPTION_BOOLEAN uses the type int32_t, not bool. Passing in a pointer bool does not end well. Fix this to pass in pointers as parse_options() expects. This fixes a bug where 'weston --use-pixman --sprawl' would work but 'weston --sprawl --use-pixman' would ignore the --sprawl option. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Acked-by: Daniel Stone <daniels@collabora.com>
-
- Oct 18, 2017
-
-
Quentin Glidic authored
If a surface is in state A, and we just sent a configure for state B, setting back state A would be ignored, because state B has not been committed yet. Now, we check against the latest configured state (which is current state if configure list is empty). Reported on wlroots https://github.com/swaywm/wlroots/pull/280 Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
- Oct 13, 2017
-
-
This patch fixes the wayland backend to not use two different presentation methods when running on fullscreen-shell. See also: https://patchwork.freedesktop.org/patch/114534/ v2: - Add missing wayland_output_resize_surface() call - Start repaint loop after initial frame has been drawn v3: - Redraw the initial frame if present for mode fails Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93514 Signed-off-by: Armin Krezović <krezovic.armin@gmail.com> Tested-by: nerdopolis <bluescreen_avenger@verizon.net> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
compositor-wayland: destroy the appropriate output instead of exiting when receiving an xdg_toplevel::close event v2: Fix use after free spotted by Daniel Stone Signed-off-by: Sergi Granell <xerpi.g.12@gmail.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-