Giulio Camuffo [Thu, 8 Oct 2015 16:13:01 +0000 (19:13 +0300)]
zoom: remove temporary variables
Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Giulio Camuffo [Wed, 7 Oct 2015 17:14:18 +0000 (20:14 +0300)]
zoom: Remove unneeded usage of wl_fixed_ts in favour of doubles
Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Nicolas Guyomard [Tue, 6 Oct 2015 15:40:28 +0000 (10:40 -0500)]
input-panel: Fix show_input_panel_surface crash when no surface has focus
Signed-off-by: Nicolas Guyomard <nicolas.guyomard@open.eurogiciel.org>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Jon Cruz [Mon, 5 Oct 2015 19:19:43 +0000 (12:19 -0700)]
doc: Correct absolute path in doxygen graphs.
Adds a config item to prevent doxygen from using absolute paths in
generated diagrams. This trims off the base directory during config to
leave just relative paths.
Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Wed, 7 Oct 2015 16:51:29 +0000 (11:51 -0500)]
cosmetic: Remove a few double semicolons
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Jonas Ådahl [Wed, 7 Oct 2015 06:44:50 +0000 (14:44 +0800)]
desktop-shell: NULL check whether a popup parent is a shell surface
get_shell_surface(parent) may return NULL if the client passed a
unassigned wl_surface or a wl_surface with a non-shell surface role
(such as cursor role).
https://bugs.freedesktop.org/show_bug.cgi?id=92316
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Tested-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Chris Michael [Wed, 7 Oct 2015 15:59:49 +0000 (11:59 -0400)]
weston-input: Reformat weston_log line to add missing space between words
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Ben Hummon [Tue, 6 Oct 2015 16:48:14 +0000 (11:48 -0500)]
clients: Moving and rotating transient surfaces
Transient surfaces use child/parent surfaces for stacking order. This
change resloves an issue in which attempting to move or rotate a
toplevel transient surface can move or rotate its ancestor.
Lucas Tanure [Sat, 3 Oct 2015 14:18:32 +0000 (11:18 -0300)]
animation: Fix potential leak of memory pointed to by move
Free move before return if animation is null.
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Giulio Camuffo [Sat, 3 Oct 2015 13:25:16 +0000 (16:25 +0300)]
main: fix destroying the compositor on error while starting
Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Giulio Camuffo [Sat, 3 Oct 2015 13:25:15 +0000 (16:25 +0300)]
compositor: don't crash if destroying a compositor without a backend
Calling weston_compositor_destroy() on a pointer returned by
weston_compositor_create() should be always valid, even if the
compositor does not have yet a backend.
Signed-off-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Chris Michael [Thu, 1 Oct 2015 14:51:32 +0000 (10:51 -0400)]
compositor-rdp: Add missing '\n' in weston_log usage
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 1 Oct 2015 14:51:31 +0000 (10:51 -0400)]
cms-colord: Add missing '\n' in weston_log usage
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 1 Oct 2015 14:51:30 +0000 (10:51 -0400)]
screen-share: Add missing '\n' in weston_log usage
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 1 Oct 2015 14:51:29 +0000 (10:51 -0400)]
ivi-shell: Add missing '\n' in weston_log function usage
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Ucan, Emre (ADITG/SW1) [Fri, 28 Aug 2015 12:59:06 +0000 (12:59 +0000)]
ivi-shell: introduce get_weston_view
The internal API "get_weston_view" is introduced, which returns the
weston_view of the given ivi_layout_surface. The API returns a NULL
pointer, if the ivi_layout_surface does not have any weston_view.
The weston_view is required in many places of ivi-shell implementation.
Therefore, this API will reduce lines of code. Furthermore, it will
increase the maintainability of the ivi-shell implementation.
Old way of getting the weston_view was flawed, because the views list of
the weston_surface is read without controlling the existence of the
weston_surface. New implementation explicitly throws an error if the
weston_surface does not exist.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
[Pekka: Line-wrapped the commit message.]
Ucan, Emre (ADITG/SW1) [Fri, 28 Aug 2015 12:59:04 +0000 (12:59 +0000)]
ivi-shell: remove is_surface_in_layer API
This internal API is redundant, because a surface is allowed to be only
on one layer.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Ucan, Emre (ADITG/SW1) [Fri, 28 Aug 2015 12:59:01 +0000 (12:59 +0000)]
ivi-shell: remove is_layer_in_screen API
This internal API is redundant, because a layer is allowed to be only on
one screen.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Ucan, Emre (ADITG/SW1) [Fri, 28 Aug 2015 12:58:58 +0000 (12:58 +0000)]
ivi-shell: remove struct link_layer
link_layer's sole purpose is to link a surface to multiple layers, if
the surface should be shown in multiple layers. This can be only
achieved, if the surface has multiple weston_views with different
transformation matrices.
Current implementation assumes in many places that a ivi_surface has
only one weston_view. Therefore, a surface can be only shown on one
layer.
Although this (a surface on multiple layers) is a nice to have feature
for ivi-shell, it is not very crucial. In any case, it is not an easy
task to implement this feature, because it has lot of corner cases.
I removed with this patch the link_layer data structure, because it does
not have any purpose in current implementation.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
[Pekka: Line-wrapped the commit message.]
Ucan, Emre (ADITG/SW1) [Fri, 28 Aug 2015 12:58:55 +0000 (12:58 +0000)]
ivi-shell: remove struct link_screen
link_screen's sole purpose is to link a layer to multiple screens, if
the layer should be shown in multiple screens. This can be only
achieved, if surfaces of the layer have multiple weston_views dedicated
to the different screens.
Current implementation assumes in many places that a ivi_surface has
only one weston_view. Therefore, a layer can be only shown on one
screen.
Although this (a layer on multiple screens) is a nice to have feature
for ivi-shell, it is not very crucial. In any case, it is not an easy
task to implement this feature, because it has lot of corner cases.
I removed with this patch the link_screen data structure, because it
does not have any purpose in current implementation.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
[Pekka: Line-wrapped commit message.]
Derek Foreman [Tue, 1 Sep 2015 15:32:39 +0000 (10:32 -0500)]
xdg-shell: Clarify ack_configure behaviour
Right now many toolkits (toytoolkit, gtk+ and EFL) will send an
ack_configure request immediately in response to a configure event,
even if they're not immediately committing the surface at that time.
This leads to a situation where multiple configures receive ack_configure
before any commit happens.
There's really no reason for that sequence of events to bother a compositor,
so this just clarifies the language to make it ok.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Derek Foreman [Wed, 30 Sep 2015 18:34:57 +0000 (13:34 -0500)]
cosmetic: add missing line between variable declarations and code
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Lucas Tanure [Wed, 30 Sep 2015 12:38:37 +0000 (09:38 -0300)]
ivi-layout-transition: Standardize the check for layout_transition_register
Check the return from layout_transition_register in order to fix
potential leak of memory pointed to by transition. And don't register a
null transition.
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Giulio Camuffo [Sun, 1 Feb 2015 14:18:51 +0000 (16:18 +0200)]
xwm: use always a valid 'primary view' for an X window
The xwm gets a primary view for a X window using the get_primary_view
vfunc of the shell_interface struct. Storing it is dangerous though
because it doesn't listen for its destruction so it may end up using the
old stored view pointer after that view was freed, or after the primary
view for that window was changed to another one.
Fetch the primary view just before using it every time and try to not
abuse this 'primary view' concept which may map badly to some shells:
iterate over all the views instead when it makes sense.
Tested-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Frederico Cadete [Sun, 27 Sep 2015 22:30:10 +0000 (00:30 +0200)]
configure.ac: add explicit enable/disable for systemd-login support
Otherwise, auto-enable depending on whether the system has the necessary
libraries.
[Updated help text as per pq suggestion -- bwh]
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Egor Starkov [Tue, 29 Sep 2015 11:50:41 +0000 (14:50 +0300)]
compositor: remove systemd-notify.h
Systemd notifications support was converted into loadable
module, so systemd-notify.h header is not needed.
Signed-off-by: Egor Starkov <egor.starkov@ge.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Chris Michael [Tue, 29 Sep 2015 14:03:20 +0000 (17:03 +0300)]
compositor-wayland: Terminate weston_log error message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
[Pekka: manually applied]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Frederico Cadete [Sun, 27 Sep 2015 22:30:09 +0000 (00:30 +0200)]
configure.ac: add support for new versions of systemd
Starting from systemd version 209, a single libsystemd.pc is provided.
For previous versions, fall back on libsystemd-login.pc.
Signed-off-by: Frederico Cadete <frederico@cadete.eu>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Benoit Gschwind [Fri, 25 Sep 2015 19:26:04 +0000 (21:26 +0200)]
weston_wm: Implement _NET_ACTIVE_WINDOW
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Emmanuel Gil Peyrot [Fri, 25 Sep 2015 09:58:40 +0000 (11:58 +0200)]
compositor-wayland: Expose zlinux_dmabuf
This mirrors what
5ffb440c3fe19669de73e51b90ea337fa2d5ae78 did for
compositor-x11, and allows testing without having to restart the
compositor-drm everytime.
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Bryce Harrington [Fri, 25 Sep 2015 22:16:25 +0000 (15:16 -0700)]
systemd: Fix distcheck for typo in header path
Egor Starkov [Fri, 25 Sep 2015 15:00:27 +0000 (18:00 +0300)]
compositor: systemd notifications support
Add systemd status and watchdog notification support.
Feature is not compiled by default and can be enabled by
"--enable-systemd-notify" configuration flag. It compiles
into module "systemd-notify.so" and can be loaded by
adding it in weston.ini like any other module, i.e.
"modules=systemd-notify.so". Watchdog timeout equals to
half of timeout defined by "WATCHDOG_USEC" environment
variable, which is set by "WatchdogSec=" setting in
service file.
Signed-off-by: Egor Starkov <egor.starkov@ge.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Bryce Harrington [Thu, 24 Sep 2015 21:31:44 +0000 (14:31 -0700)]
tests: Migrate screenshot code from internal test to client helpers
These routines provide test cases an ability to capture screen images
for rendering verification.
This commit is a no-change refactoring, except for making the routines
non-static. Makefile rules are also updated; most notably, this links
test clients against the cairo libraries now.
v2: Fix pointer code styling, suggested in review
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Derek Foreman [Thu, 25 Jun 2015 20:49:49 +0000 (15:49 -0500)]
text: Switch to weston_client_start instead of weston_client_launch
We really don't want to deal with sighups and pids. It's far easier
to just deal with the client destroyed signal to respawn the input method.
Inspiration taken from Pekka's commit
826dc14ec43b92d
This fixes a potential crash on shutdown. If the input method client
pointer is still set (sighup handler hasn't run) but the client is
already destroyed, a call to text_backend_destroy() will try to destroy
the client a second time resulting in a segfault.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Thu, 25 Jun 2015 20:49:48 +0000 (15:49 -0500)]
text: Don't track binding in struct text_backend
The binding is only used for preventing launch, and we've already got the
pid for that.
With multiple seats there are multiple bindings, so if the most recent
binding unbinds it will clear the pointer, so using it like this is risky
anyway.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Thu, 25 Jun 2015 20:49:47 +0000 (15:49 -0500)]
text: Launch input method in text_backend_init
Previously we tried to launch the input method every time a seat was
created, and the launch function would notice it was running and not
bother to actually launch.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Derek Foreman [Thu, 24 Sep 2015 19:30:38 +0000 (14:30 -0500)]
launcher: fix typo
In the launcher split up patch WESTON_LAUNCHER_SOCK was accidentally
changed to WESTON_LAUNCH_SOCK
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Thu, 24 Sep 2015 14:26:48 +0000 (09:26 -0500)]
launcher: fix broken distcheck
We were missing launcher-impl.h in Makefile.am
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Egor Starkov [Wed, 23 Sep 2015 15:29:46 +0000 (18:29 +0300)]
compositor: remove incorrect idle timer initialization
weston_compositor_create() should just create idle timer but not arm it,
because idle-time setting is not ready at this point.
Remove idle timer first update in weston_compositor_create() since
idle_time variable is not set at this point. Idle timer is armed
properly later in weston_compositor_wake().
Signed-off-by: Egor Starkov <egor.starkov@ge.com>
[Pekka: tweaked commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Bryce Harrington [Thu, 24 Sep 2015 00:39:05 +0000 (17:39 -0700)]
fbdev: Ensure strncpy results are null terminated.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Lucas Tanure [Wed, 23 Sep 2015 13:33:21 +0000 (10:33 -0300)]
ivi-layout-transition: Fix potential leak of memory pointed to by transition
Several fixes to handle invalid transition objects:
1. Free transition in ivi_layout_transition_fade_layer if we fail to
allocate memory for data
2. Check if transition is not null and if layout_transition_register was
ok before return, if not, free transition
3. Destroy transition if layout_transition_register was not ok, we can't
just free transition, we need to call layout_transition_destroy in
order to free private_data from transition
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Jasper St. Pierre [Wed, 23 Sep 2015 17:46:48 +0000 (10:46 -0700)]
launcher-logind: Remove old VT switching code, move to SwitchTo/Activate
In the time since this code was written, logind has gained new APIs to
handle VT switching automatically and activate sessions. Switch to that.
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Jasper St. Pierre [Wed, 23 Sep 2015 17:46:47 +0000 (10:46 -0700)]
launcher: Split out launcher implementations into three distinct ones
We now have a launcher interface and distinct implementations for
logind, weston-launch, and direct DRM, each in their own files.
This helps up clean up the spaghetti code into something that's
hopefully a bit more understood. There should be no functional
changes here.
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
update: Dropped redundant free() in weston_launcher_destroy()
Jasper St. Pierre [Wed, 23 Sep 2015 17:46:46 +0000 (10:46 -0700)]
launcher: Rename logind-util to launcher-logind
We're refactoring this to have multiple launcher "implementations".
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Bryce Harrington [Fri, 28 Aug 2015 20:04:26 +0000 (13:04 -0700)]
compositor-drm: Ensure strings from EDID blobs are null terminated
strncpy only adds null terminating bytes if the source string is smaller
than the destination string. Since this function relies on the string
being null terminated when checking its contents, we better make sure
there is at least a \0 as the last character.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Manuel Bachmann [Sat, 19 Sep 2015 11:51:05 +0000 (13:51 +0200)]
terminal: allow copy-paste when selection is scrolled out
We could not paste text when its source went outside the
visible part of the buffer ; this is because we were
incorrectly assuming that our iterator should start at
row 0, while it could very well be negative.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Marek Chalupa [Wed, 12 Aug 2015 07:55:12 +0000 (09:55 +0200)]
xwm: flush xcb connection only when we processed some event
xwayland source is checked, so it dispatches twice on any event.
If the other turn has no events to dispatch, we flush the connection
redundantly
v2. do not flood logs with 'unhandled event' messages
Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Seedo Eldho Paul [Fri, 4 Sep 2015 18:17:09 +0000 (23:47 +0530)]
tests: Convert 'xalloc's to 'zalloc's
xalloc terminates the program abruptly if the requested amount of
memory couldn't be allocated. To insure that the errors are handled
cleanly, use zalloc instead.
Signed-off-by: Seedo Eldho Paul <seedoeldhopaul@gmail.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Fri, 11 Sep 2015 19:28:15 +0000 (14:28 -0500)]
clients: ungrab the correct input when menus close
We need to input_ungrab() on the stored input, not the one that caused
the release - otherwise bad things can happen in multi-seat environments
when a seat that didn't open the menu closes it.
To reproduce:
configure two seats
launch weston terminal
open the right click pop up
select a menu item from the other seat
The next click from the seat that opened the menu will cause a segfault.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
John-John Tedro [Sun, 20 Sep 2015 00:47:37 +0000 (02:47 +0200)]
ivi-shell: initialize all fields in create_layout_transition
create_layout_transition does not initialize is_transition_func.
This patch initializes it to NULL.
Signed-off-by: John-John Tedro <johnjohn.tedro@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Lucas Tanure [Sun, 20 Sep 2015 14:12:50 +0000 (11:12 -0300)]
vaapi-recorder: Fix allocator sizeof operand mismatch
Result of 'calloc' is converted to a pointer of type 'unsigned int', which is
incompatible with sizeof operand type 'int'
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Lucas Tanure [Sat, 19 Sep 2015 21:24:58 +0000 (18:24 -0300)]
ivi_layout_surface_add_notification: Fix potential leak of memory pointed to by 'notification'
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Lucas Tanure [Mon, 21 Sep 2015 17:10:33 +0000 (14:10 -0300)]
ivi-layout-transition: Fix potential leak of memory pointed to by transition
Check if layout_transition_register worked, otherwise destroy transition
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Lucas Tanure [Mon, 21 Sep 2015 17:10:32 +0000 (14:10 -0300)]
ivi-layout-transition: Change layout_transition_register return type
layout_transition_register could not work and we need to free trans in
the calling function.
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Lucas Tanure [Mon, 21 Sep 2015 14:24:35 +0000 (11:24 -0300)]
ivi-layout-transition: Fix potential leak of memory pointed to by transition
Free transition before return. We don't need to use layout_transition_destroy,
because transition was not registered yet.
v2: consolidate memory leaks fixes
Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Bryce Harrington [Tue, 22 Sep 2015 20:40:43 +0000 (13:40 -0700)]
releasing: Update command path to reflect new scripts dir in wayland-web
Bryce Harrington [Tue, 22 Sep 2015 20:38:12 +0000 (13:38 -0700)]
configure.ac: bump to version 1.9.90 for open development
Master is open for new feature development again.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Bryce Harrington [Tue, 22 Sep 2015 01:11:26 +0000 (18:11 -0700)]
configure.ac: bump to version 1.9.0 for the official release
Bryce Harrington [Thu, 17 Sep 2015 23:33:48 +0000 (16:33 -0700)]
releasing: Note need for pgp signing announcement
Bryce Harrington [Wed, 16 Sep 2015 03:20:37 +0000 (20:20 -0700)]
configure.ac: bump to version 1.8.93 for the RC1 release
Derek Foreman [Fri, 11 Sep 2015 19:27:40 +0000 (14:27 -0500)]
clients: If available, prefer top level surfaces for move or rotate
This stops us from rotating or moving pop-up menus by instead rotating
their parents.
This is easiest to see using a multi-seat configuration.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Fri, 11 Sep 2015 19:30:39 +0000 (14:30 -0500)]
shell: Make sure we actually have a resource in end_busy_cursor
It's actually possible to get here after the surface has been destroyed,
especially when running client apps under valgrind.
That probably shouldn't be able to segfault the compositor.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
John Sadler [Sat, 5 Sep 2015 14:01:38 +0000 (15:01 +0100)]
rpi: fix segfault at startup in rpi_flippipe_init() v2
When running with the RPi backend, Weston now segfaults at startup on the
line:
flippipe->clk_id = output->base.compositor->presentation_clock;
in `rpi_flippipe_init()`.
This is because `output->base.compositor` is NULL. This problem did not
exist on 1.8.0, and it looks like it may have been introduced by
954f183e2f.
This commit ensures that the `compositor` is initialised in `rpi_backend`
and that flippipe init uses the compositor pointer from backend.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91885
Signed-off-by: John Sadler <deathofathousandpapercuts@gmail.com>
Changes in v2:
- fix summary to not break the build
- use output->backend->compositor in rpi_flippipe_init() instead of
output->base.compositor. The latter is set by weston_output_init()
which gets called later than rpi_flippipe_init().
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: John Sadler <deathofathousandpapercuts@gmail.com>
Derek Foreman [Wed, 2 Sep 2015 21:21:54 +0000 (16:21 -0500)]
terminal: Don't crash when selecting non-ascii characters
So it turns out if you cat /dev/urandom and drag select in the mess
you can crash weston-terminal. There may also be more legitimate
ways of doing this.
The reason is that isalpha() and isdigit() only accept values that
fit within an unsigned char or are EOF.
By treating values < 0 the same as values > 127 we prevent this crash.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Wed, 2 Sep 2015 18:45:20 +0000 (13:45 -0500)]
compositor-fbdev: Remove bizarre division by sizeof
Really not sure why this was even here - it worked because
we were dividing by 1.
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Pekka Paalanen [Mon, 7 Sep 2015 12:38:43 +0000 (15:38 +0300)]
Revert "compositor-drm: disable hardware cursors"
This reverts commit
6858383d51b12632481370fdc7d886a1e6bb4ebd.
The main reason for the original patch was a regression on the Intel
drivers causing compositor framerate to drop to half during cursor
updates or motion. The Intel problem was fixed in
https://github.com/torvalds/linux/commit/
2e7f43c41c042d6fed4d67aceeaae32d8f102e98
The fix is included in Linux 4.1-rc6 and 4.0.5.
The comment in the original patch is still true, but arguably the
possible minor glitches with cursor updates are less bad than not using
cursor planes at all.
Cc: nerdopolis <bluescreen_avenger@verizon.net>
Cc: Daniel Stone <daniel@fooishbar.org>
Cc: Giulio Camuffo <giuliocamuffo@gmail.com>
Cc: David FORT <contact@hardening-consulting.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Bryce Harrington [Wed, 9 Sep 2015 02:24:12 +0000 (19:24 -0700)]
clients: Fix height typo in clamp_view()
We should be checking our scaled image height against the allocation
height rather than the allocation width.
Fixes vertical image motion when horizontal motion restricted, i.e.
when window is wide and short compared to the image.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
John Sadler [Sat, 5 Sep 2015 14:01:40 +0000 (15:01 +0100)]
rpi: prevent segfault on shut-down due to NULL backend
When running with the RPi backend, Weston sefaults during shutdown. This is
due to the fact that `compositor->backend` is never initialised, and there
is no NULL check prior to calling `destroy()`.
This commit fixes the issue by making `rpi_backend_create()` intialise
`compositor->backend` - just like the X11 backend does.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91886
Signed-off-by: John Sadler <deathofathousandpapercuts@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
John Sadler [Sat, 5 Sep 2015 14:01:39 +0000 (15:01 +0100)]
rpi: avoid segfault in rpir_view_compute_rects() when EGL client destroys buffer
This commit works-around a serious issue when running with the RPi backend.
When an EGL client shuts down and destroys it's EGL window, Weston dies with
a segmentation fault in the above function (because `buffer` is now NULL).
The addition of a simple NULL check avoids the problem.
This is a minor re-formatting of the patch already submitted here:
http://patchwork.freedesktop.org/patch/34885
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85167
Signed-off-by: John Sadler <deathofathousandpapercuts@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Bryce Harrington [Tue, 1 Sep 2015 23:58:25 +0000 (16:58 -0700)]
configure.ac: bump to version 1.8.92 for the beta release
Nobuhiko Tanibata [Mon, 24 Aug 2015 00:12:37 +0000 (09:12 +0900)]
hmi-controller: fix wrong width and height are set to a layer of workspace.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Nobuhiko Tanibata [Mon, 24 Aug 2015 00:12:23 +0000 (09:12 +0900)]
hmi-controller: fix the laucher layer width
A layer for workspace is used to display icons for invoking applications
in several pages. These pages are swapped from one to next page. The
width of the layer was decided as a size of screen before reading
weston.ini. This worked correctly because there was no feature of
clipping of layer so the width of layer was not taken account.
Now clipping feature is supported. So the width shall be set to correct
one after reading weston.ini.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Nobuhiko Tanibata [Mon, 24 Aug 2015 01:24:15 +0000 (10:24 +0900)]
ivi-layout: implement surface clipping
View clip region is set in surface-local coordinates. To compute that
region, the ivi-layer destination rectangle in the global coordinates
are transformed back into the surface-local coordinates.
The transformation is computed by first forming the transformation
matric for the forward mappings, and then inverting it. The inverse
matric is used to transform the destination rectangles to the
surface-local coordinate system. The intersection of the rectangles is
the view clip mask.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Pekka Paalanen [Mon, 24 Aug 2015 11:27:07 +0000 (14:27 +0300)]
build, compositor-drm: fix output name constants another way
Bumping libdrm requirement by 3 years just for output connector name
constants was a bit much. Fix the problem introduced in
89c49b3060a115e846ba1e7fbef94d14894244f2 by conditionally using the new
additions.
Both VIRTUAL and DSI came in the same libdrm commit
566c3ce877a4be72697e15cdfc421ce965f7c37d, so we check only for DSI.
This patch also reverts
faee330c5e027011941d50533156683be3a67ca3.
Reported-by: Eugen Friedrich <friedrix@gmail.com>
Cc: Derek Foreman <derekf@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
Derek Foreman [Sat, 22 Aug 2015 04:06:02 +0000 (23:06 -0500)]
build: Require newer version of libdrm
commit
89c49b3060a115e846ba1e7fbef94d14894244f2 changed the way we name
outputs, but it also added the new output names VIRTUAL and DSI.
These aren't available until libdrm 2.4.59
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Jonas Ådahl [Mon, 26 Jan 2015 10:19:05 +0000 (18:19 +0800)]
clients: Drop deadlock circumvention hack now that we don't need it
mesa supports EGLSwapInterval 0 now, so lets remove this hack. As a
bonus we don't conflict with the XDG shell protocol that doesn't allow
committing a null-buffer, which was a side effect of this hack.
This patch reverts
e9297f8e7ee09fa39b1d4293fad6e97705ccff21. See that
commit for an explanation how this worked.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
[Pekka: added reference to the original commit]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Dawid Gajownik [Fri, 21 Aug 2015 03:20:54 +0000 (00:20 -0300)]
gl-renderer: gl_renderer_create display cleanup on error
Clean up display connection via eglTerminate() in case of EGL
initialisation error.
Signed-off-by: Dawid Gajownik <gajownik@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Wed, 19 Aug 2015 12:25:57 +0000 (15:25 +0300)]
compositor-drm: rename outputs to follow kernel style
The problem with the old table of names is that it contains duplicates.
It is possible to end up with multiple outputs with the same name. In
that case you cannot write individual configurations for these outputs
in weston.ini, because they are matched by the name.
Change all names to follow the kernel naming scheme set in
drivers/gpu/drm/drm_crtc.c. The snprintf format now follows the kernel
style, too. Use the DRM_MODE_CONNECTOR_* macros rather than implicit
table ordering.
Completely new entries in the table are "Virtual" and "DSI".
There should not be any gaps in the macro values, but if there are, deal
with a NULL entry.
Also change "UNKNOWN" to "UNNAMED" so it's easier to distinguish from
"Unknown" by the kernel.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89361
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Tested-by: Drew DeVault <sir@cmpwn.com>
Ucan, Emre (ADITG/SW1) [Thu, 20 Aug 2015 14:13:33 +0000 (14:13 +0000)]
ivi-shell: remove redundant wl_list_empty/init calls
Checking wl_list_empty() on a link offers no information: if it returns
true, wl_list_remove() is safe to do. If it returns false, you still do
not know if wl_list_remove() is safe; the link could be part of a list,
or the link could be "uninitialized" (e.g. just wl_list_remove()'d).
(From Pekka Paalanen's comment at
http://lists.freedesktop.org/archives/wayland-devel/2015-August/023987.html).
Calling wl_list_init just before wl_list_insert is redundant. Because
the links of the list are not read before it is overwritten by
wl_list_insert.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
[Pekka: line-wrapped commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ucan, Emre (ADITG/SW1) [Thu, 20 Aug 2015 14:13:30 +0000 (14:13 +0000)]
ivi-shell: clear order.layer_list before reordering it
It is only possible to remove a layer from the order.layer_list of a
screen, when ivi_layout_screen_set_render_order is called with an empty
array. Therefore, list of layers are cumulated if the API is called
many times with different list of layers.
Change how the flags are set:
- Introduce the dirty parameter for triggering the render order change.
- IVI_NOTIFICATION_REMOVE/ADD flags are set only at commit_screen_list.
Checking wl_list_empty() on a link offers no information: if it returns
true, wl_list_remove() is safe to do. If it returns false, you still do
not know if wl_list_remove() is safe; the link could be part of a list,
or the link could be "uninitialized" (e.g. just wl_list_remove()'d).
(From Pekka Paalanen's comment at
http://lists.freedesktop.org/archives/wayland-devel/2015-August/023987.html).
Calling wl_list_init just before wl_list_insert is redundant. Because
the links of the list are not read before it is overwritten by
wl_list_insert.
Use assert to control if the ivilayer->order.surface_list is empty.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
[Pekka: line-wrapped commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ucan, Emre (ADITG/SW1) [Thu, 20 Aug 2015 14:13:29 +0000 (14:13 +0000)]
ivi-shell: clear order.surface_list before reordering it
It is only possible to remove a surface from the order.surface_list of a
layer, when ivi_layout_layer_set_render_order is called with an empty
array. Therefore, list of surfaces are cumulated if the API is called
many times with different list of surfaces.
Change how the flags are set:
- Introduce the dirty parameter for triggering the render order change.
- IVI_NOTIFICATION_REMOVE/ADD flags are set only at commit_layer_list.
Checking wl_list_empty() on a link offers no information: if it returns
true, wl_list_remove() is safe to do. If it returns false, you still do
not know if wl_list_remove() is safe; the link could be part of a list,
or the link could be "uninitialized" (e.g. just wl_list_remove()'d).
(From Pekka Paalanen's comment at
http://lists.freedesktop.org/archives/wayland-devel/2015-August/023987.html).
Calling wl_list_init just before wl_list_insert is redundant, because
the links of the list are not read before it is overwritten by
wl_list_insert.
Use assert to control if the ivilayer->order.surface_list is empty.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
[Pekka: wrapped the commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
[Earlier version Reviewed-by: Nobuhiko Tanibata
<NOBUHIKO_TANIBATA@xddp.denso.co.jp>]
Ucan, Emre (ADITG/SW1) [Wed, 19 Aug 2015 11:25:01 +0000 (11:25 +0000)]
ivi-shell: bugfix, list of surfaces on a layer are cumulated when set render order is called several time in one commitchanges.
The final list of surfaces of set render order shall be applied. So link
of surfaces and list of surfaces in a layer shall be initialized. And
then the order of surfaces shall be restructured.
Use existing clear_surface_pending_list function to clear the list.
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Pekka Paalanen [Wed, 19 Aug 2015 10:52:47 +0000 (13:52 +0300)]
compositor-fbdev: fix VT switching crash
This bug was introduced in
954f183e2f9891b241c1efc0ea61ed56019a4326.
The session_notify() data was accidentally cast to fbdev_backend while
it is weston_compositor. This was possibly due to the code before the
mentioned commit casting data directly to fbdev_compositor without going
through the intended type first, which worked only because
weston_compositor was the first member in struct fbdev_compositor.
Fix the casts to be the right way around.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91654
Cc: nerdopolis1@verizon.net
Cc: Giulio Camuffo <giuliocamuffo@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Dawid Gajownik [Mon, 17 Aug 2015 21:46:43 +0000 (18:46 -0300)]
compositor-drm: cast surface to EGLNativeWindowType
gl_renderer_output_create expects `window_for_legacy' variable to be of
type EGLNativeWindowType, not EGLNativeDisplayType. This variable is
used later in eglCreateWindowSurface().
Signed-off-by: Dawid Gajownik <gajownik@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Mon, 17 Aug 2015 06:59:13 +0000 (09:59 +0300)]
configure: fix enable_simple_intel_dmabuf_client=auto
When the user does not specify --enable nor
--disable-simple-intel-dmabuf-client, we want to autodetect based on
dependencies.
cb512c018e8db66574b4e0d1263c52a05267918c implemented this,
but forgot to actually enable it if the autodetect comes positive.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Bryce Harrington [Sun, 16 Aug 2015 21:17:17 +0000 (14:17 -0700)]
configure.ac: bump to version 1.8.91 for the alpha release
Bryce Harrington [Sun, 16 Aug 2015 21:16:26 +0000 (14:16 -0700)]
releasing: Soften suggestion to update the wayland version dependency
Bryce Harrington [Sun, 16 Aug 2015 21:00:05 +0000 (14:00 -0700)]
releasing: Update release names
Bryce Harrington [Fri, 14 Aug 2015 19:44:50 +0000 (12:44 -0700)]
Fix armhf configure breakage due to missing libdrm_intel package
The buildbots discovered that recent changes break on Ubuntu 15.04's
armhf images:
configure:16137: checking for SIMPLE_DMABUF_CLIENT
configure:16144: $PKG_CONFIG --exists --print-errors "wayland-client libdrm libdrm_intel"
Package libdrm_intel was not found in the pkg-config search path.
...
configure:16194: error: Package requirements (wayland-client libdrm libdrm_intel) were not met:
No package 'libdrm_intel' found
This patch was provided by Daniel Stone. I've not tested it other than
verifying it does not cause build problems on x86_64.
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
Bryce Harrington [Fri, 14 Aug 2015 19:23:13 +0000 (12:23 -0700)]
Fix build breakage when using older gbm lacking dmabuf import
The buildbots discovered this issue on Ubuntu 14.04, which carries
libgbm 10.1.3-0ubuntu0.4. The dmabuf changes need gbm 10.2, so it fails
during build like this:
src/compositor-drm.c: In function ‘drm_output_prepare_overlay_view’:
src/compositor-drm.c:984:10: error: variable ‘gbm_dmabuf’ has
initializer but incomplete type
struct gbm_import_fd_data gbm_dmabuf = {
^
etc.
Proposed fix is to conditionalize the gbm fd import feature in
compositor-drm.
This fix was suggested by daniels. I set up a synthetic test
environment to reproduce the issue as found by the buildbots and tweaked
the patch to get it to build both with and without gbm 10.2.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
George Kiagiadakis [Thu, 12 Jun 2014 14:26:49 +0000 (16:26 +0200)]
clients: add simple-dmabuf client
v2:
- adapted to protocol changes
- added TODO comments
- minor clean-up
- change y-invert from per-plane boolean to per-buffer flag
v3:
- fix a typo: 1 -> i (noticed by Carlos Olmedo Escobar)
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Thu, 12 Jun 2014 14:12:12 +0000 (17:12 +0300)]
compositor-drm: dmabuf GBM import
v2:
- add TODO note about multi-planar import and how we should do it
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Thu, 12 Jun 2014 12:12:48 +0000 (15:12 +0300)]
compositor-drm: init linux_dmabuf support
v2 changes:
- only initialize linux_dmabuf if renderer supports it
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Thu, 12 Jun 2014 13:52:53 +0000 (16:52 +0300)]
compositor-x11: init linux_dmabuf support
v2 changes:
- only initialize linux_dmabuf if renderer supports it
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Thu, 12 Jun 2014 13:49:29 +0000 (16:49 +0300)]
gl-renderer: add dmabuf import
Import dmabuf as an EGLImage, and hold on to the EGLImage until we are
signalled a content change. On content change, destroy the EGLImage and
re-import to trigger GPU cache flushes.
We hold on to the EGLImage as long as possible just in case the client
does other imports that might later make re-importing fail.
As dmabuf protocol uses drm_fourcc codes, we need libdrm for
drm_fourcc.h. However, we are not doing any libdrm function calls, so
there is no new need to link to libdrm.
RFCv1 changes:
- fix error if dmabuf exposed unsupported
- always use GL_TEXTURE_EXTERNAL_OES with dmabuf
v2 changes:
- improve support check and error handling
- hold on to the imported EGLImage to avoid the dmabuf becoming
unimportable in the future
- send internal errors with linux_dmabuf_buffer_send_server_error()
- import EGL_EXT_image_dma_buf_import extension headers
- use heuristics to decide between GL_TEXTURE_2D and
GL_TEXTURE_EXTERNAL_OES
- add comment about Mesa requirements
- change y-invert from per-plane boolean to per-buffer flag
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Louis-Francis Ratté-Boulianne [Mon, 8 Jun 2015 13:37:05 +0000 (16:37 +0300)]
gl-renderer: introduce struct egl_image
This is a reference-counted holder of an EGLImage. For now, direct
EGLImage usage is simply converted to use egl_image. Use of reference
counting will come in a later patch.
v2:
- this is a new patch, split from gl-renderer dmabuf import support
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Mon, 29 Sep 2014 18:18:40 +0000 (14:18 -0400)]
dmabuf: implement linux_dmabuf extension
v2 changes:
- implement the revised protocol
- add basic sanity checks when creating buffer and check for support
- add way to attach user data to the dmabuf for renderer use
- bump max number of planes to 4 to follow DRM AddFb2 ioctl
- improve errors handling
- use separate linux_dmabuf_buffer fields for the different wl_resource
types
- as SERVER_ERROR code is no more, use a wl_display "generic" error for
emergency-disconneting a client we fail to process
- more documentation
- change y-invert from per-plane boolean to per-buffer flag
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Pekka Paalanen [Mon, 29 Sep 2014 18:08:29 +0000 (14:08 -0400)]
protocol: add linux_dmabuf extension (v3)
An experimental (hence the 'z' prefix) linux_dmabuf Wayland protocol
extension for creating dmabuf-based wl_buffers in a generic manner.
This does not include proper dmabuf metadata negotiation because
there is no way to communicate all dmabuf constraints from the
compositor to a client before-hand. The client has to create a
wl_buffer wrapping one or more dmabuf buffers and then listen at
the feedback object returned to know if the operation was successful.
RFCv1 changes (after a first draft without code):
- some renames of interfaces and argument, no semantic changes
- added destructor protocol to dmabuf_batch
- added feedback interface for buffer creation
v2 changes:
- use drm_fourcc.h as authoritative source for format codes
- add support for the 64-bit layout qualifier and y-inverted dmabufs
- simplify the 'add' request (no need to preserve fd numerical id)
- add explicit plane index in the 'add' request
- integrate the 'feedback' object events to the batch interface
- rename 'create_buffer' to 'create' and move it into the batch interface
- add requirements needed from the graphics stack and clients
- improve existing errors and add batch error codes
- removed error codes from the global interface
- improve documentation for arguments, enums, etc.
- rename dmabuf_batch to zlinux_buffer_params
- The y-inverted property makes more sense as a whole buffer property.
Y-flipping individual planes of the same buffer object is hardly useful.
The y-invert is also converted into a flag, so we may add more flags
later.
- add flags for interlaced buffer content
v3 changes:
- Apply Daniel Vetter's comments about wording on coherency.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Dawid Gajownik [Sun, 9 Aug 2015 15:50:40 +0000 (12:50 -0300)]
weston-launch: On error putenv returns a non-zero value
According to POSIX standard "upon successful completion, putenv() shall
return 0; otherwise, it shall return a non-zero value." Unlike in
setenv() we should not be checking only for negative values.
Signed-off-by: Dawid Gajownik <gajownik@gmail.com>
Dawid Gajownik [Fri, 7 Aug 2015 00:04:16 +0000 (21:04 -0300)]
compositor: fix crash when destroying incompletely created output
When the output can't be completely created in the backend (for example
lack of memory), weston_compositor_add_output() is never run. In such
a case output->link is not initialized. Letter, when
weston_output_destroy() is called, application crashes on
wl_list_remove(&output->link).
This problem happens when drm, fbdev, rdp, rpi or wayland backend is
used.
v2: Initialize output->link in weston_output_init() as suggested by
Derek Foreman.
Signed-off-by: Dawid Gajownik <gajownik@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>