summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: bump to version 1.9.0 for the official release1.9.01.9Bryce Harrington2015-09-211-4/+4
|
* releasing: Note need for pgp signing announcementBryce Harrington2015-09-171-2/+3
|
* configure.ac: bump to version 1.8.93 for the RC1 release1.8.93Bryce Harrington2015-09-151-1/+1
|
* clients: If available, prefer top level surfaces for move or rotateDerek Foreman2015-09-151-0/+23
| | | | | | | | | | 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>
* shell: Make sure we actually have a resource in end_busy_cursorDerek Foreman2015-09-141-0/+1
| | | | | | | | | | 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>
* rpi: fix segfault at startup in rpi_flippipe_init() v2John Sadler2015-09-101-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* terminal: Don't crash when selecting non-ascii charactersDerek Foreman2015-09-101-1/+1
| | | | | | | | | | | | | | 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>
* compositor-fbdev: Remove bizarre division by sizeofDerek Foreman2015-09-101-1/+1
| | | | | | | | 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>
* Revert "compositor-drm: disable hardware cursors"Pekka Paalanen2015-09-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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>
* clients: Fix height typo in clamp_view()Bryce Harrington2015-09-091-1/+1
| | | | | | | | | | | 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>
* rpi: prevent segfault on shut-down due to NULL backendJohn Sadler2015-09-081-0/+2
| | | | | | | | | | | | | | 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>
* rpi: avoid segfault in rpir_view_compute_rects() when EGL client destroys bufferJohn Sadler2015-09-081-0/+3
| | | | | | | | | | | | | | | | | 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>
* configure.ac: bump to version 1.8.92 for the beta release1.8.92Bryce Harrington2015-09-011-1/+1
|
* hmi-controller: fix wrong width and height are set to a layer of workspace.Nobuhiko Tanibata2015-08-261-2/+2
| | | | | | 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>
* hmi-controller: fix the laucher layer widthNobuhiko Tanibata2015-08-261-27/+44
| | | | | | | | | | | | | | | 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>
* ivi-layout: implement surface clippingNobuhiko Tanibata2015-08-261-6/+141
| | | | | | | | | | | | | | | | 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>
* build, compositor-drm: fix output name constants another wayPekka Paalanen2015-08-242-1/+3
| | | | | | | | | | | | | | | | | | 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>
* build: Require newer version of libdrmDerek Foreman2015-08-241-1/+1
| | | | | | | | | | | 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>
* clients: Drop deadlock circumvention hack now that we don't need itJonas Ådahl2015-08-211-32/+0
| | | | | | | | | | | | | | 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>
* gl-renderer: gl_renderer_create display cleanup on errorDawid Gajownik2015-08-211-1/+3
| | | | | | | | 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>
* compositor-drm: rename outputs to follow kernel stylePekka Paalanen2015-08-211-19/+23
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ivi-shell: remove redundant wl_list_empty/init callsUcan, Emre (ADITG/SW1)2015-08-211-62/+18
| | | | | | | | | | | | | | | | | 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>
* ivi-shell: clear order.layer_list before reordering itUcan, Emre (ADITG/SW1)2015-08-211-44/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ivi-shell: clear order.surface_list before reordering itUcan, Emre (ADITG/SW1)2015-08-212-46/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>]
* ivi-shell: bugfix, list of surfaces on a layer are cumulated when set render ↵Ucan, Emre (ADITG/SW1)2015-08-201-11/+1
| | | | | | | | | | | | | | 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>
* compositor-fbdev: fix VT switching crashPekka Paalanen2015-08-201-2/+2
| | | | | | | | | | | | | | | | | | 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>
* compositor-drm: cast surface to EGLNativeWindowTypeDawid Gajownik2015-08-191-1/+1
| | | | | | | | | 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>
* configure: fix enable_simple_intel_dmabuf_client=autoPekka Paalanen2015-08-171-0/+1
| | | | | | | | | | 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>
* configure.ac: bump to version 1.8.91 for the alpha release1.8.91Bryce Harrington2015-08-161-1/+1
|
* releasing: Soften suggestion to update the wayland version dependencyBryce Harrington2015-08-161-1/+1
|
* releasing: Update release namesBryce Harrington2015-08-161-1/+1
|
* Fix armhf configure breakage due to missing libdrm_intel packageBryce Harrington2015-08-141-4/+8
| | | | | | | | | | | | | | | | | | 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>
* Fix build breakage when using older gbm lacking dmabuf importBryce Harrington2015-08-142-0/+7
| | | | | | | | | | | | | | | | | | | | | | 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>
* clients: add simple-dmabuf clientGeorge Kiagiadakis2015-08-144-0/+616
| | | | | | | | | | | | | | | | 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>
* compositor-drm: dmabuf GBM importPekka Paalanen2015-08-141-4/+29
| | | | | | | | 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>
* compositor-drm: init linux_dmabuf supportPekka Paalanen2015-08-141-0/+17
| | | | | | | | 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>
* compositor-x11: init linux_dmabuf supportPekka Paalanen2015-08-141-0/+8
| | | | | | | | 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>
* gl-renderer: add dmabuf importPekka Paalanen2015-08-144-0/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gl-renderer: introduce struct egl_imageLouis-Francis Ratté-Boulianne2015-08-141-8/+62
| | | | | | | | | | | | 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>
* dmabuf: implement linux_dmabuf extensionPekka Paalanen2015-08-145-0/+620
| | | | | | | | | | | | | | | | | | | 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>
* protocol: add linux_dmabuf extension (v3)Pekka Paalanen2015-08-142-2/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* weston-launch: On error putenv returns a non-zero valueDawid Gajownik2015-08-101-1/+1
| | | | | | | | 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>
* compositor: fix crash when destroying incompletely created outputDawid Gajownik2015-08-071-0/+1
| | | | | | | | | | | | | | | | | 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>
* fullscreen-shell: Fix modeset on transformed outputsJason Ekstrand2015-08-071-2/+21
| | | | | | | | | | Previously, we blindly created a mode for the output based on surface size and completely ignoring the output transform. This caused modesets to fail on outputs that were transformed by 90 or 270 degrees. We should be swapping the width and the height in this case. Reviewed-by: Derek Foreman <derekf@osg.samsung.com> Tested-by: Derek Foreman <derekf@osg.samsung.com>
* input: when destroying a seat, remove keyboard focus firstDerek Foreman2015-08-071-1/+2
| | | | | | | | | If we destroy all the devices before trying to remove keyboard focus we'll segfault because we destroyed the keyboard. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Ryo Munakata <ryomnktml@gmail.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* Coding style fixesDawid Gajownik2015-08-0714-82/+97
| | | | | | | | | - opening braces are on the same line as the if statement - opening braces are not on the same line as the function name - space between for/while/if and opening parenthesis Signed-off-by: Dawid Gajownik <gajownik@gmail.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
* Use [x]zalloc instead of [x]malloc + memsetRyo Munakata2015-08-073-12/+6
| | | | | Signed-off-by: Ryo Munakata <ryomnktml@gmail.com> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
* xwm: don't let X windows steal the focusGiulio Camuffo2015-08-061-10/+32
| | | | | | | | When we get a focus in event from an X window which is not the one we last set as the active window, reset the focus. Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
* rpi-renderer: use weston_output matrix instead of a private matrixDerek Foreman2015-08-061-65/+3
| | | | | | | | We already do this math in compositor.c so let's not duplicate it here. Additionally, the copy here has broken zoom, so this also fixes zooming. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Acked-by: Daniel Stone <daniels@collabora.com>
* input: add a weston_pointer_clear_focus() helper functionDerek Foreman2015-08-066-17/+37
| | | | | | | | | | | | | | | | | | | | | | | | | Valgrind has shown that in at least one place (default_grab_pointer_focus) we're testing uninitialized values coming out of weston_compositor_pick_view. This is happening when default_grab_pointer_focus is called when there is nothing on the view list, and during the first repaint when only the black surface with no input region exists. This patch adds a function to clear pointer focus and also set the sx,sy co-ordinates to a sentinel value we shouldn't compute with. Assertions are added to make sure any time pointer focus is set to NULL these values are used. weston_compositor_pick_view() now returns these values too. Now the values are always initialized, even when no view exists, and they're initialized in such a way that actually doing computation with them should fail in an obvious way, but we can compare them safely for equality. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Daniel Stone <daniels@collabora.com>