- Jul 25, 2017
-
-
Signed-off-by:
Michael Teyfel <mteyfel@de.adit-jv.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 24, 2017
-
-
Dead code as orientation cannot be changed anymore, see patches: ivi-shell: remove layer_set_orientation API ivi-shell: remove surface_set_orientation API Signed-off-by:
Emre Ucan <eucan@de.adit-jv.com> [Pekka: added commit message] Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
This API is used to rotate the contents of application's buffer, which are in the render order list of the layer. But this API is not needed because an application can rotate its buffers with set_buffer_transform request of wl_surface interface Signed-off-by:
Emre Ucan <eucan@de.adit-jv.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
This API is used to rotate the contents of application's buffer. But it is not needed because an application can rotate its buffers with set_buffer_transform request of wl_surface interface. Signed-off-by:
Emre Ucan <eucan@de.adit-jv.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
It is analagous to layer_remove_surface API. The API removes a layer from the render order of the screen. v3: add the new vfunc at the end of the ivi_layout_interface struct. Signed-off-by:
Emre Ucan <eucan@de.adit-jv.com> Reviewed-by:
Eugen Friedrich <friedrix@gmail.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 21, 2017
-
-
Ilia Bozhinov authored
When we receive configure_notify we should update the surface's position by calling xwayland_api->set_xwayland(). Otherwise some surfaces like dnd surfaces from xwayland views are "stuck" at one place. When setting XWAYLAND state though we should always call view_set_position(), not just the first time we set this state. Signed-off-by:
Ilia Bozhinov <ammen99@gmail.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- Jul 20, 2017
-
-
Quentin Glidic authored
Now we keep track of serial->state association and we discard the states that the client ignored. Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Jonas Ådahl <jadahl@gmail.com>
-
- Jul 18, 2017
-
-
Quentin Glidic authored
We were checking against the pending size, which lead some clients (simple-egl) to crash because they sent a buffer before acknowledging the latest configure event. Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Tested-by:
Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com> Reviewed-by:
Jonas Ådahl <jadahl@gmail.com>
-
- Jul 12, 2017
-
-
Quentin Glidic authored
Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Tested-by:
Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
-
Quentin Glidic authored
Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Tested-by:
Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
-
Bryce Harrington authored
-
- Jul 03, 2017
-
-
Derek Foreman authored
Cosmetic leftovers I missed when removing the configure option to --disable-xkbcommon Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
We need to make sure the client bound dmabuf with a high enough version to receive modifier events before sending them or the client will crash. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
We shouldn't free &modifier_invalid because it wasn't allocated with malloc() Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Some log messages weren't terminated with a newline. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
It looks like there are some code paths where this has been forgotten, so it likely doesn't work as is. It's probable that nobody has actually used this in a very long time, so it's not worth the maintenance burden of keeping xkbcommon vs raw keyboard code anymore. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- Jun 25, 2017
-
-
Quentin Glidic authored
When switching a state twice in a row, we were overwriting the old value without setting it back, sending a wrong state to the client. Now we update our requested state, then check if we need to schedule a configure event, if we have one scheduled already or even if we can cancel it. Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Quentin Glidic authored
Signed-off-by:
Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- Jun 12, 2017
-
-
mesa's freedreno driver supports importing dmabufs with format DRM_FORMAT_NV12 and DRM_FORMAT_MOD_SAMSUNG_64_32_TILE modifier. demonstrate weston modifier advertising and import path using this combination when run with --import-format=NV12. v2: - hard code format if platform doesn't implement EGL_EXT_image_dma_buf_import_modifiers and cannot advertise format/modifier support. - squash using valid frame data to fill dmabuf planes Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
abstract drm specific bits to struct drm_device and support running on freedreno. introduce 'modifier' event. v2: rebase to master, deprecate 'format' event. Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
this will allow adding other drm backends later. Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
EGL_EXT_image_dma_buf_import_modifiers supports importing upto four dmabuf planes into an EGLImage. v2: correct PLANE3_PITCH token (Daniel Stone) Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
pass over the modifier attributes to EGL. v2: ensure same modifier is passed for all planes (Daniel Stone) Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
implement 'modifier' event to communicate available formats and modifiers to the client and support zwp_linux_dmabuf_v1 interface version 3. v2: handle zero modifiers case, deprecate 'format' event. Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
EGL_EXT_image_dma_buf_import_modifiers allows querying the formats and modifiers supported by the platform. expose these to the compositor. v2: - change calloc args (Daniel Stone) - check for modifier support before querying formats (Daniel Stone) Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
request immediate dmabuf import when run with "immed" arg. Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
handle create_immed() dmabuf import requests and support zwp_linux_dmabuf_v1_interface version 2. v2: terminate client with INVALID_WL_BUFFER when reason for create_immed failure is unknown. [daniels: Bump wayland-protocols dependency.] Signed-off-by:
Varad Gautam <varad.gautam@collabora.com> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- May 23, 2017
-
-
Oliver Smith authored
I ran Weston on a Nexus 4 mobile phone, with a native GNU/Linux userland, and the latest Android kernel for that device from LineageOS [1]. calculate_refresh_rate() returned 1 (mHz), which gets rounded to 0 Hz later and results in nothing being drawn to the screen. This patch makes sure, that there is at least a refresh rate of 1 Hz, because it returns the default refresh rate of 60 Hz otherwise. [1]: https://github.com/LineageOS/lge-kernel-mako Signed-off-by:
Oliver Smith <ollieparanoid@bitmessage.ch> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
Lyude Paul authored
A little earlier today I ended up spending a lot of time trying to figure out why weston wasn't managing to launch over SSH and telling me that I did not have a --tty option specified, despite me passing the option strings ["--tty", "3"]. Turns out weston just doesn't support that. So, add support for this kind of format in addition to "--foo=bar" to save others from making the same mistake I did. Changes since v1: - Add comment about unreachable boolean check in long_option_with_arg() - Convert boolean check in long_option_with_arg() to assert Signed-off-by:
Lyude <lyude@redhat.com> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- May 19, 2017
-
-
Derek Foreman authored
wl_surface_damage_buffer landed ages ago, but in order for GL to use it the client must bind a wl_compositor version >= 4 (the version where damage_buffer was introduced). This patch updates the bind version and allows eglSwapBuffersWithDamage to actually use the provided damage rectangles instead of performing full surface damage. Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
Derek Foreman authored
wl_surface_damage_buffer landed ages ago, but in order for GL to use it the client must bind a wl_compositor version >= 4 (the version where damage_buffer was introduced). This patch updates the bind version and allows eglSwapBuffersWithDamage to actually use the provided damage rectangles instead of performing full surface damage. This log is much longer than the patch. Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- May 18, 2017
-
-
xwm would not let X clients change the focus behind the compositor's back, reverting focus where it's supposed to be when this occurs. However, X11 grab also issue focus in events, on which some clients rely and reverting focus in this case braks the client logic (e.g. combobox menu in gtk+ using the X11 backend). Check if the focus event is actually coming from a grab or ungrab and do not revert focus in this case, to avoid breaking clients logic. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Tested-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- May 02, 2017
-
-
Daniel Stone authored
At the bottom of weston_output_finish_frame(), code exists to account for flips which have missed the repaint window, by shifting them to lock on to the next repaint window rather than repainting immediately. This code only accounted for flips which missed their target by one repaint window. If they miss by multiples of the repaint window, adjust them until the next repaint timestamp is in the future. This will only happen in fairly extreme situations, such as Weston being scheduled out for a punitively long period of time. Nevertheless, try to help recovery by still aiming for more predictable timings. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Apr 21, 2017
-
-
Bryce Harrington authored
Instead of creating a single global fade surface across all outputs, create a separate surface for each output. This will permit e.g. individual fades for each output (or blocking the fade-outs if inhibiting idling as will come in a later patch.) This also fixes a potential issue if on multihead layout spanning a desktop wider than 8096 (or higher than 8096), the fade animation may not completely cover all surfaces. This assumes the output geometry doesn't change to become larger during the course of the fade animation. Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Quentin Glidic <sardemff7+git@sardemff7.net>
-
- Apr 13, 2017
-
-
Derek Foreman authored
commit a7cba1d4 changed the way the cursor plane is setup. Previously it was pre-emptively set disabled for the next frame, and that would be changed at next frame time if the cursor plane was to be used. It was changed to be disabled at plane assignment time. We disable the use of planes entirely by setting disable_planes to a non-zero value, which bypasses all calls to assign_planes - so if the plane was set-up in the previous frame it will retain its state post-disable. This leads to desktop zoom leaving the cursor plane in place when it sets disable_planes. This patch clears any stale cursor plane state from the redraw handler if disable_planes is set so drm_output_set_cursor() will do the right thing. Reviewed-by:
Daniel Stone <daniels@collabora.com> Reported-by:
Emmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
-
Fix up the window position whenever the geometry info changes. If the window geometry changes, we want to keep the input-responding content anchored to top-left. It is done by manipulating the dx,dy arguments originating from a wl_surface.attach request. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Acked-by:
Daniel Stone <daniels@collabora.com>
-
This patch uses the new feature proposed for Xwayland in the patch series https://patchwork.freedesktop.org/series/16610/ . When the frame window is created, immediately forbid Xwayland commits on it. This prevents commits before the decorations have been drawn and the initial pending state has been set. Commits are enabled right after drawing and setting. This ensures that the decorations are fully drawn when a window is mapped. This also solves the initial commit/pending race, but the race is on again after mapping. If Xwayland does not implement the needed support, we are just setting a window property with no effect. This patch is the final piece for solving T7622, excluding the _NET_WM_SYNC_REQUEST handling. Task: https://phabricator.freedesktop.org/T7622 Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Acked-by:
Daniel Stone <daniels@collabora.com>
-
Normal windows enter the MapRequest handler, which schedules drawing the decorations. Then Xwayland realizes the window, which ends with a call to xserver_map_shell_surface(). The decorations are already drawn, no need to draw them a second time. However, MapRequest handler could not set the pending state because the weston_surface did not exist at the time, because it gets created only when Xwayland realizes the window, which happens after XWM has forwarded the MapWindow in MapRequest handler. Therefore set the pending state explicitly at the end. Scheduling had it done much later anyway. Now that the pending state is set much earlier, it seems to be more likely that it gets set before Xwayland's first commit is handled. This means that -geometry command line option of X11 apps already takes the geometry (decorations) into account. I do not think it is reliable yet, though. There is still the race between Xwayland committing and XWM setting the pending state assuming the very next commit latches it in appropriately. The race exists not because of Wayland, but because WL_SURFACE_ID comes via X11, and could be processed after wl_compositor.create_surface and wl_surface.commit. That commit/pending race is solved by a following patch. For override-redirect windows weston_wm_window_schedule_repaint() reduced into a call to weston_wm_window_set_pending_state_OR(), so we can just call that directly. It should not matter that the call is moved to the end of the function. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Louis-Francis Ratté-Boulianne <lfrb@collabora.com> Acked-by:
Daniel Stone <daniels@collabora.com>
-
- Apr 12, 2017
-
-
Since building libweston includes EGL/egl.h from pixel-formats.c, EGL_CFLAGS must be added to libweston_CFLAGS, as on some platforms that contains -DMESA_EGL_NO_X11_HEADERS, and fails to compile without it: CC libweston/libweston_3_la-pixel-formats.lo In file included from [...]/usr/include/EGL/egl.h:39:0, from libweston/pixel-formats.c:39: [...]/usr/include/EGL/eglplatform.h:119:22: fatal error: X11/Xlib.h: No such file or directory Fixes: 903721a6 ("libweston: Add pixel-format helpers") Signed-off-by:
Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by:
Daniel Stone <daniels@collabora.com>
-
- Apr 11, 2017
-
-
Pekka Paalanen authored
Reorder some paragraphs to be more logically ordered. Rewrite the description of the backend-specific disable function to explain the semantics instead of the mechanics. Remove the paragraph about pending_output_list as unnecessary details. Add a big fat comment on why we call output->disable() always instead of only for actually enabled outputs. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Armin Krezović <krezovic.armin@gmail.com>
-