-
9912d829
by Pekka Paalanen
at 2019-03-28T08:50:11Z
build: reopen master for regular development
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
8a4585c2
by Daniel Stone
at 2019-03-28T09:40:54Z
compositor: Don't ignore --use-pixman for Wayland backend
We loaded the use-pixman configuration value from both the command line
and the configuration file, but completely ignored the former. Make sure
we actually use both.
Tested with all permutations of config/command line.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
-
cbffca98
by Pekka Paalanen
at 2019-03-28T09:43:23Z
meson: link editor with gobject-2.0
editor.c calls g_clear_object(), so it should link to gobject directly instead
of relying on pangocairo pulling it in in its pkg-config.
Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/211
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
191c453f
by Pekka Paalanen
at 2019-03-28T09:43:23Z
meson: link cms-colord with glib and gobject
cms-colord.c calls things like g_string_free() and g_object_unref(), so it
needs to link glib-2.0 and gobject-2.0 explicitly, instead of relying on colord
pkg-config bringing them in.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
292aaf93
by Pekka Paalanen
at 2019-03-28T09:43:23Z
meson: link remoting with glib and gobject
remoting-plugin.c calls things like g_error_free() and g_object_set(), so it
needs to link glib-2.0 and gobject-2.0 explicitly, instead of relying on
GStreamer pkg-config bringing them in.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
fe6dd7bc
by Pekka Paalanen
at 2019-03-28T09:47:02Z
meson: DRM-backend demands GBM
All the GBM code is unconditional in compositor-drm.c, so while disabling the
GL-renderer would stop GBM from being used, GBM headers would still be needed
for building and GBM library for linking.
Leave a note to fix it properly later. At least we now check for GBM and do not
mislead with the error message.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
ff98a908
by Alexandros Frantzis
at 2019-03-28T09:51:28Z
clients/simple-dmabuf-egl: Properly check for error in gbm_bo_get_handle_for_plane
gbm_bo_get_handle_for_plane returns handle.s32 == -1 on error, at least
for the Mesa dri implementation.
Reported-by: Marius Vlad <marius.vlad@collabora.com>
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
-
f6d27606
by Benjamin Tissoires
at 2019-03-28T09:59:03Z
CI: containerize the CI
Reuse the templates from wayland/ci-templates:
whenever DEBIAN_TAG is changed, this will rebuild a new container.
This adds two things:
- better reliability (we do not randomly pull packages whenever the CI
runs and we can reproduce with this particular environment)
- faster builds, as we do not need to pull the universe at each run
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
[Pekka: bump DEBIAN_TAG]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
57875cd0
by Riku Viitanen
at 2019-03-28T10:09:52Z
Optimize PNGs with zopflipng
-
009b3cfa
by Deepak Rawat
at 2019-03-28T10:19:13Z
compositor-drm: Add support for drm plane FB_DAMAGE_CLIPS property
The plane property FB_DAMAGE_CLIPS provides a way to mark damaged
regions on the plane in framebuffer coordinates of the framebuffer
attached to the plane.
This patch adds a new member "damage" to compositor version of
drm_plane_state and set FB_DAMAGE_CLIPS property whenever damage is
available.
v2: Rebase, check if plane support FB_DAMAGE_CLIPS property before
setting it.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
-
46a1c729
by Deepak Rawat
at 2019-03-28T10:19:13Z
compositor-drm: Set damage for scanout plane
Copy the damage region to scanout drm_plane_state which will be sent to
kernel during atomic state update.
Signed-off-by: Deepak Rawat <drawat@vmware.com>
-
779db046
by Pekka Paalanen
at 2019-03-28T10:52:00Z
meson: dep fix for compositor.h needing xkbcommon.h
This fixes:
[ 5s] cc -Ilibweston/2b98b6d@@session-helper@sta -Ilibweston -I../libweston -Ilibweston/.. -I../libweston/.. -Ilibwes
ton/../shared -I../libweston/../shared -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/usr/lib6
4/dbus-1.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu99 -Wno-unused-parameter -Wno-shift-n
egative-value -Wno-missing-field-initializers -fvisibility=hidden -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong
-funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -fPIC -MD -MQ 'libweston/2b98b6d@@session-hel
per@sta/launcher-util.c.o' -MF 'libweston/2b98b6d@@session-helper@sta/launcher-util.c.o.d' -o 'libweston/2b98b6d@@sessio
n-helper@sta/launcher-util.c.o' -c ../libweston/launcher-util.c
[ 5s] In file included from ../libweston/launcher-util.c:29:
[ 5s] ../libweston/compositor.h:39:10: fatal error: xkbcommon/xkbcommon.h: No such file or directory
[ 5s] #include <xkbcommon/xkbcommon.h>
For completeness, also add the same for wayland-server.h.
Reported-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
fc76388f
by Pekka Paalanen
at 2019-03-28T11:56:44Z
Remove autotools build
Weston 6.0.0 was released with both autotools and Meson build systems. That
should be enough for downstream to migrate to Meson build on their on pace.
Maintaining two build systems is a hassle, keep the one that is easier to work
with and let the other one go.
doc/dozygen/tool*.doxygen.in are not deleted, because they have not been
integrated with Meson yet.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
5dc2ddf9
by Pekka Paalanen
at 2019-03-28T11:56:45Z
Clean up .gitignore after autotools removal
There is no such thing as building in-tree anymore, so no need to ignore build
artifacts.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
be61a1ff
by Pekka Paalanen
at 2019-03-28T11:56:45Z
tests: fix references to automake
There is no automake anymore, I suppose it is ninja that handles it now.
There are still a couple references to automake left to point out where the
conventions originated, e.g. the exit code 77.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
66581d24
by Pekka Paalanen
at 2019-03-28T11:56:45Z
README: refer to version numbers in meson.build
configure.ac is no more, and in meson.build there are no minor or patch
versions for libweston, only major.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
a6acfa83
by Marius Vlad
at 2019-03-28T12:30:25Z
compositor: Fix invalid view numbering in scene-graph
With the addition of patch 433f4e77b7729 we display the same view id (0)
for every view as we're modifying the local variable.
Displaying sub-surfaces based views is also problematic. The caller need
to modify the view number as well, so we instead we pass the address as
to allow that to happen. Otherwise we end up repeating the same number
for views without sub-subrfaces once those have been printed.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
253ba9a6
by Marius Vlad
at 2019-03-28T12:30:25Z
compositor: Fix missing new line when displaying buffer type for EGL buffer
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
651566af
by Pekka Paalanen
at 2019-03-29T11:40:12Z
build: add missing dep to x11 backend
All other backends already link to libweston, x11 backend should too.
This fixes a build failure:
[1/50] Compiling C object 'libweston/2b98b6d@@x11-backend@sha/compositor-x11.c.o'.
FAILED: libweston/2b98b6d@@x11-backend@sha/compositor-x11.c.o
cc -Ilibweston/2b98b6d@@x11-backend@sha -Ilibweston -I../../git/weston/libweston -Ilibweston/.. -I../../git/weston/libweston/.. -Ilibweston/../shared -I../../git/weston/libweston/../shared -Iprotocol -I/home/pq/local/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu99 -g -Wno-unused-parameter -Wno-shift-negative-value -Wno-missing-field-initializers -fvisibility=hidden -fPIC -MD -MQ 'libweston/2b98b6d@@x11-backend@sha/compositor-x11.c.o' -MF 'libweston/2b98b6d@@x11-backend@sha/compositor-x11.c.o.d' -o 'libweston/2b98b6d@@x11-backend@sha/compositor-x11.c.o' -c ../../git/weston/libweston/compositor-x11.c
../../git/weston/libweston/compositor-x11.c:51:10: fatal error: xkbcommon/xkbcommon.h: No such file or directory
#include <xkbcommon/xkbcommon.h>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
6f9db6c4
by Tomohito Esaki
at 2019-04-02T02:09:42Z
cairo-util: Don't set title string to Pango layout if the title is NULL
If buttons list isn't empty and title is NULL, SEGV is occured in
pango_layout_set_text(). This patch fixes this problem.
Signed-off-by: Tomohito Esaki <etom@igel.co.jp>
-
53d7c243
by Kamal Pandey
at 2019-04-04T14:15:45Z
FIX: weston: clients: typo in simple-dmabuf-egl.c
Fix variable EGL_NO_IMAGE to EGL_NO_IMAGE_KHR in
clients/simple-dmabuf-egl.c
Signed-off-by: Kamal Pandey <pandeykamal13526@gmail.com>
-
250f1066
by Héctor Orón Martínez
at 2019-04-09T10:08:23Z
support byte-by-byte reproducible build
build path ends in the final binary package causing the
build not to be reproducible byte-by-byte.
Reference:
https://bugs.debian.org/899358
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
923a1e96
by Luca Weiss
at 2019-04-14T10:38:25Z
Fix incorrect include
In file included from ../clients/multi-resource.c:38:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
^~~~~~~
-
b81fc517
by Harish Krupo
at 2019-04-16T05:21:36Z
meson.build: Fix warning for configure_file
We claim to support meson versions >= 0.47 but the `install:` argument
in configure_file was introduced in version 0.50. This produces the
following meson warning:
WARNING: Project specifies a minimum meson_version '>= 0.47' but uses
features which were added in newer versions:
* 0.50.0: {'install arg in configure_file'}
>From the documentation for the install argument [1]:
" When omitted it (install) defaults to true when install_dir is set and
not empty, false otherwise."
So, remove the `install:` argument and just depend on `install_dir` for
installing.
Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/225
[1] https://mesonbuild.com/Reference-manual.html#configure_file
Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
-
3a28bd66
by Marius Vlad
at 2019-04-16T14:38:13Z
meson.build/libweston: Fix clang warning for export-dynamic
Identical to 8a8558dd, where we need to pass `-Wl` as linker args.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
4ab901eb
by Pekka Paalanen
at 2019-04-18T09:30:03Z
libweston: fix protocol install path
These protocols are from libweston, not weston.
Even the pkg-config files is called libweston-6-protocols.pc.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
53c37fa3
by Pekka Paalanen
at 2019-04-18T09:30:03Z
build: remove dir_include
It was unused.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
cb74afd4
by Pekka Paalanen
at 2019-04-18T09:30:03Z
build: declare separate dependency for compositor.h
These are not specific to the launchers but to compositor.h, so name them that
way.
Once we can rely on the mentioned Meson PR, we can simplify this further.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
a78cf775
by Pekka Paalanen
at 2019-04-18T09:31:45Z
Rename timeline-object.h to libweston/timeline-object.h
This patch sets up the stage for similarly renaming compositor.h which will
justify this. That patch will be big, so moving timeline-object.h first makes
it easy to see the changes to the build and install directives.
This and all the following moves essentially break the API, so libweston major
is bumped.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
3d5d9476
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename compositor.h to libweston/libweston.h
The main idea is to make libweston users use the form
#include <libweston/libweston.h>
instead of the plain
#include <compositor.h>
which is prone to name conflicts. This is reflected both in the installed
files, and the internal header search paths so that Weston would use the exact
same form as an external project using libweston would.
The public headers are moved under a new top-level directory include/ to make
them clearly stand out as special (public API).
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
7571027f
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename public backend headers
The backend headers are renamed from compositor-foo.h to backend-foo.h to
better describe their purpose. These headers are public libweston API for each
specific backend.
The headers will also be used like
#include <libweston/backend-drm.h>
instead of
#include <compositor-drm.h>
to give them a more explicit namespace.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
27b377f5
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename plugin-registry.h to libweston/plugin-registry.h
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
9eda0ea8
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename windowed-output-api.h to libweston/windowed-output-api.h
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
96dc4492
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename matrix.h to libweston/matrix.h
matrix.h is a public installed header and even used by libweston.h.
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
91b1010d
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename config-parser.h to libweston/config-parser.h
It is a public installed header used by libweston.h.
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
ecbdcfd3
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename zalloc.h to libweston/zalloc.h
It is a public installed header used by libweston.h.
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
eebb7dc9
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename xwayland-api.h to libweston/xwayland-api.h
See "Rename compositor.h to libweston/libweston.h" for rationale.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
cda1488c
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Rename version.h to libweston/version.h
This is an installed public header, and without the subdir would surely
conflict with something else.
include/libweston/meson.build is necessary for putting the generated header in
the right subdirectory so that '#include <libweston/version.h>' can work.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
e04159b2
by Pekka Paalanen
at 2019-04-18T09:31:46Z
xwayland: do not include weston.h
weston.h is a Weston frontend header, while this is a libweston plugin. A
libweston plugin cannot depend on Weston. Luckily the header is not actually
needed.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
8ebd9817
by Pekka Paalanen
at 2019-04-18T09:31:46Z
Move libweston-desktop.h
This too is a public installed header.
The public headers are moved under a new top-level directory include/ to make
them clearly stand out as special (public API).
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
4e952328
by Pekka Paalanen
at 2019-04-18T09:50:55Z
build: turn vertex-clipping.c into a dependency
Making this into a dependency object not only carries the .c files with it, but
it also brings the include directories as well, which means the users can
simply use the object without guessing the paths.
This should help with moving GL-renderer into a new subdirectory.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
4b572737
by Pekka Paalanen
at 2019-04-18T09:50:55Z
libweston: export weston_linux_sync_file_read_timestamp()
This is an internal export for GL-renderer, so that it does not need to build
linux-sync-file.c a second time. This follows the example of
linux-explicit-synchronization.c which is also used by GL-renderer.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
3a2c67aa
by Pekka Paalanen
at 2019-04-18T09:50:55Z
gl-renderer: does not need matrix.c
The symbols of matrix.c are already exported by libweston, no need to build
them again.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
81475a5c
by Pekka Paalanen
at 2019-04-18T09:52:41Z
libweston: move gl-renderer into a subdir
GL-renderer is expected to grow more files, both by addition and by splitting.
Moving them into a new subdirectory helps people to understand which files are
relevant.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
ee4c7a24
by Harish Krupo
at 2019-04-19T16:24:26Z
window.c: Don't assume registry advertisement order
The toytoolkit assumes that wl_seats are advertised after
wl_data_device_manager and creates a data_device during wl_seat
registry binding. This patch removes this assumption by creating
data_devices for all the wl_seats created up until then.
Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/201
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
737ac0d4
by Harish Krupo
at 2019-04-19T16:36:37Z
data-device: send INVALID_FINISH when operation != dnd
The documentation of wl_data_offer::finish states that it should be
used to signify that a drag and drop operation is completed. So send
WL_DATA_OFFER_ERROR_INVALID_FINISH when the client calls the finish
request but the operation isn't dnd.
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
43152a3a
by Harish Krupo
at 2019-04-19T16:36:44Z
Fix: clients/window: Premature finish request when copy-pasting
As per the wl_data_offer::finish documentation, the request is only
valid for drag n drop operations and signifies that a dnd is completed.
Send finish request only when we have a dnd operation active.
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
1bdf3632
by Sebastian Wick
at 2019-04-20T10:57:06Z
weston-terminal: Fix weston-terminal crash on mutter
Set up handlers for wl_data_source v3 events
Signed-off-by: Sebastian Wick <sebastian@sebastianwick.net>
-
a1450a8a
by Randy Li
at 2019-04-22T10:46:42Z
make error() portable
error() is not posix but gnu extension so may not be available on all
kind of systemsi e.g. musl.
Signed-off-by: Randy 'ayaka' Li <ayaka@soulik.info>
Signed-off-by: Randy Li <randy.li@rock-chips.com>
-
38c66ccb
by Marius Vlad
at 2019-04-22T14:24:52Z
weston-launch: Fix warning on error() not being avaiable due to removal of header
Commit a1450a8a7 removed errno header but forgot to remove all error()
calls.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
7bd14029
by Simon Ser
at 2019-04-22T17:02:19Z
ci: run with werror
-
4071225c
by Antonio Borneo
at 2019-04-29T16:11:45Z
clients: close unused keymap fd
In the simple examples in which keymap is not handled, the open
descriptor has to be properly closed.
After each suspend/resume sequence the keymap is send again to
every client. On client weston-simple-egl the leak causes a
segfault when no more file descriptors can be opened.
Close the file descriptor and lazily copy/paste the comment
already available in simple-dmabuf-v4l.
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
-
45d38856
by -
at 2019-05-02T17:35:29Z
zunitc: Fix undeclared identifier 'NULL'
Since v6 release, -Dtest-junit-xml=false build regressed because its
ifdef branch no longer includes stddef.h and thus NULL, either directly
or through another header. Using musl-1.1.22 and llvm-8.0.0.
-
39578636
by Antonio Borneo
at 2019-05-02T20:10:30Z
log: remove "%m" from format strings by using strerror(errno)
The printf() format specifier "%m" is a glibc extension to print
the string returned by strerror(errno). While supported by other
libraries (e.g. uClibc and musl), it is not widely portable.
In Weston code the format string is often passed to a logging
function that calls other syscalls before the conversion of "%m"
takes place. If one of such syscall modifies the value in errno,
the conversion of "%m" will incorrectly report the error string
corresponding to the new value of errno.
Remove all the occurrences of the specifier "%m" in Weston code
by using directly the string returned by strerror(errno).
While there, fix some minor indentation issue.
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
-
78ef4268
by Marius Vlad
at 2019-05-06T17:16:38Z
libweston: Remove functions with no implementation/definition
Seems that these functions: weston_compositor_fade()/weston_compositor_unlock()
lost their implementation a while ago.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
bc137e34
by Harish Krupo
at 2019-05-09T09:58:13Z
gitlab-ci: Use gitlab.fdo URL for wayland-protocols
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
880b485d
by Marius Vlad
at 2019-05-10T12:01:59Z
libweston: Decouple weston_debug_compositor from weston_compositor
This patch allows initialization of weston-debug/log framework much earlier
than weston_compositor, which in turn will provide the option start
logging before weston_compositor has been created.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
1e2fda2e
by Marius Vlad
at 2019-05-10T12:01:59Z
compositor: Convert weston-debug framework to use weston_debug_compositor
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
3d7d978c
by Marius Vlad
at 2019-05-10T12:02:00Z
libweston: Rename weston_debug_compositor to weston_log_context
As we transition towards a more generic API for weston loggging
framework rename weston_debug_compositor to weston_log_context to show
the fact that this is not really debug but a logging context.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
5d5e3358
by Marius Vlad
at 2019-05-10T12:02:00Z
libweston: Rename weston_debug_scope to weston_log_scope
This is a continuation of the previous patch to align more closely to
the weston log framework.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
7e4db953
by Marius Vlad
at 2019-05-10T12:02:00Z
libweston: Rename weston_debug_scope_ to weston_log_scope_
Rename also the functions which work on weston_log_scope.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
6f098663
by Marius Vlad
at 2019-05-10T12:02:00Z
weston-debug: Remove weston_compositor from weston_log_context
This is no longer needed. Also assert if the context passed is NULL and
compositor log context is already set.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
f4f4c2bc
by Marius Vlad
at 2019-05-10T12:02:00Z
libweston: Add weston-debug header to libweston
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
c0d205ba
by Marius Vlad
at 2019-05-10T12:02:00Z
include: Install weston-debug header
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
4e538141
by Marius Vlad
at 2019-05-14T14:29:57Z
build: libweston doesn't need -export-dynamic
According to https://gitlab.freedesktop.org/wayland/weston/merge_requests/159#note_148104
it doesn't make sense to use export-dynamic on libraries.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
b40e0518
by Pekka Paalanen
at 2019-05-16T12:32:34Z
build: make libinput-backend a helper lib
Rather than having fbdev and drm backends include the libinput files ad hoc,
wrap them in a static library. Using the dependency object for that helper
library will then automatically pull in any necerray include dirs for the
users.
This helps with moving the backends into subdirectories.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
6bc50b12
by Pekka Paalanen
at 2019-05-16T12:32:34Z
build: make backlight a helper lib
Right now only used by the DRM-backend, but there is a test program that should
use this as well.
This helps with building the test program and moving DRM-backend into a
subdirectory.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
644eb64a
by Pekka Paalanen
at 2019-05-16T12:32:34Z
tests: build setbacklight
Was missed in the Meson migration.
This is built only if DRM-backend is built, because it exercises a sub-feature
of the DRM-backend.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
f0f37bca
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-drm: move into new subdir
Move the DRM-backend into a new sub-directory to make it stand out from
libweston core. This facilitates splitting drm.c into more files later.
vaapi-recorder is used only by DRM-backend, move that too.
libbacklight is used only by DRM-backend and a manual test program, and is
moved as well.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
8059d317
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-headless: move into new subdir
For consistency with other backends.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
b70ee941
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-rdp: move into new subdir
For consistency with other backends.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
4f1573e4
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-wayland: move into new subdir
For consistency with other backends.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
526b8540
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-x11: move into new subdir
For consistency with other backends.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
c8acc5f2
by Pekka Paalanen
at 2019-05-16T12:32:34Z
backend-fbdev: more into new subdir
For consistency with other backends.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
cda278dd
by Manuel Stoeckl
at 2019-05-20T08:21:31Z
man: Update "See also" references for weston.1
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
-
6666dee5
by Manuel Stoeckl
at 2019-05-20T08:21:31Z
man: Add weston-bindings(7) describing desktop shell shortcuts
The desktop-shell-specific bindings were identified from
shell_add_bindings in desktop-shell/shell.c. Various general shortcuts
(like Ctrl+Alt+F) are provided by files in libweston/ and compositor/ .
Also introduce references to the new manual in weston(1) and weston.ini(5).
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
-
e51478c1
by Antonio Borneo
at 2019-05-24T13:51:53Z
Fix build-time warning with meson 0.50.1
Commit 6666dee52b1e ("man: Add weston-bindings(7) describing
desktop shell shortcuts") adds in file "man/meson.build" the line
install: true,
This line triggers a warning with meson 0.50.1:
WARNING: Project targetting '>= 0.47' but tried to use
feature introduced in '0.50.0': install arg in configure_file
Accordingly with
https://github.com/mesonbuild/meson/issues/5048
the line was silently ignored by meson before 0.50.0
One possible fix for this warning would require updating the
minumum version of meson required by weston, but then forcing every
builder to update meson.
Instead, since all the other instances in "man/meson.build" of
configure_file don't use the feature "install:", it seams safe to
simply remove the feature for the instal of "weston-bindings.man".
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
-
2edbcbd9
by Scott Anderson
at 2019-05-29T06:30:06Z
compositor: Fix incorrect use of bool options
WESTON_OPTION_BOOLEAN takes a pointer to an int as an argument, but
there were several cases of being passed a pointer to a bool instead.
This changes it to use a local int instead, and then write that value to
the bool.
Signed-off-by: Scott Anderson <scott.anderson@collabora.com>
-
21a1f407
by Silva Alejandro Ismael
at 2019-05-31T19:39:43Z
compositor: fix segfaults if wl_display_create fails
Added check to log the error if wl_display_create return NULL.
Fixes: #101
Signed-off-by: Silva Alejandro Ismael <silva.alejandro.ismael@gmail.com>
-
137b811e
by Fabrice Fontaine
at 2019-06-10T12:02:29Z
Fix build with kernel < 4.4
weston includes input-event-codes.h since version 5.0.91 and
https://github.com/wayland-project/weston/commit/6e229ca26381bc8191fd9af1e439c311da709aff
input-event-codes.h is available only since kernel 4.4 and
https://github.com/torvalds/linux/commit/f902dd893427eade90f7eaf858e5ff8b150a5a12
To fix this build failure, replace include on linux/input-event-codes.h
by linux/input.h
Fixes:
- http://autobuild.buildroot.org/results/210c2759900f15ea0030d088f6f45cd8bb199b29
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-
2dff4dd6
by Harish Krupo
at 2019-06-11T10:11:35Z
desktop-shell: Don't re-position views when output_list is empty
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
dc3edc04
by Harish Krupo
at 2019-06-11T10:11:35Z
desktop-shell: Re-position views when outputs change
When the last output is destroyed or when a new output is created after
the last output is destroyed, we need to re-position the views to ensure
that all the views are displayed on the output.
Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/210
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
82c8ca16
by Daniel Stone
at 2019-06-11T10:31:04Z
dbus: Don't return value from void function
Just discard the value, rather than trying to return a value from a void
function.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
a9278d28
by Daniel Stone
at 2019-06-11T10:31:04Z
timespec: Don't return value from void function
timespec_add_msec() doesn't return any values, so don't try to return
any.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
81433582
by Daniel Stone
at 2019-06-11T10:36:55Z
weston: Properly test for output-creation failure
We were testing the wrong variable to see if output creation had failed:
instead of testing the return of the function we'd just called, we were
testing something we'd already checked earlier.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
5898cd32
by Tomohito Esaki
at 2019-06-11T11:08:48Z
desktop-shell: unmap a view which was faded out
When Fading out a destroyed surface view finishes, the view is rendered
with very little alpha. After that, since the output isn't updated
unless a event on the output doesn't occurs, the view is still on the
output. By unmapping the view, the output repaint scheduled without the
surface.
Signed-off-by: Tomohito Esaki <etom@igel.co.jp>
-
34473d70
by Daniel Stone
at 2019-06-11T12:59:37Z
build: Suppress 'pedantic' GCC warnings
GCC's 'pedantic' warnings warn about a bunch of things which are true of
ISO C but not the toolchains we care about (GCC, Clang). Suppress those
warnings to allow us to build with Meson's warning_level=3.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
e2f9c1b7
by Daniel Stone
at 2019-06-11T13:00:39Z
Default build to warning_level=3
After suppressing the pedantic errors, we can now enable a higher
warning_level by default, so developers can catch warnings earlier.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
68d49d77
by Tomohito Esaki
at 2019-06-13T10:13:59Z
compositor-drm: run finish_frame when dpms is turned off in update_complete
A output repaint loop isn't scheduled beacuse the output repaint_status
is AWAITING_COMPLETION when dmps is turned off in update_complete().
Therefore, the display attached to the output is remain inactive even if
weston wakes up. By going through finish_frame, the output
repaint_status is fixed to correct status.
Signed-off-by: Tomohito Esaki <etom@igel.co.jp>
-
8d23ab78
by Robert Beckett
at 2019-06-13T17:40:56Z
backend-drm: handle multiple drm nodes with logind
When using logind launcher, we receive a PauseDevice "gone" message
from logind session management for each device we close while looking
for KMS devices.
Make logind notify the backend of the device add/remove so that the
backend can decide what to do, instead of assuming that if it is a
DRM_MAJOR device the session should be (de)activated. The backend can
then react to its specific device.
Fixes #251
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
-
9eb974aa
by Silva Alejandro Ismael
at 2019-06-17T14:35:54Z
build: Fix hint to disable remoting
If a dependency is missing, the error message should tell the build option to disable it.
Show the correct build option in the error message of the remoting plugin.
Signed-off-by: Silva Alejandro Ismael <silva.alejandro.ismael@gmail.com>
-
d93c0f70
by Stefan Agner
at 2019-06-20T07:04:12Z
backend-rdp: fix memory leak
Free command data after all rects have been updated. This fixes a
rather huge memory leak when using the RDP backend.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
b0e16d4c
by Stefan Agner
at 2019-06-20T14:39:13Z
backend-rdp: allow to force compression off
By default the client communicates its preference with regards to
compression to the server. However, some clients always use
compression, which is not ideal for certain environments (e.g.
low performance embedded devices in a local network with plenty
of bandwidth). Allow to disable compression server-side which will
override the clients request for compression.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
87fab1ca
by Daniel Stone
at 2019-06-25T13:00:57Z
compositor-drm: Only assign planes with atomic
Without atomic modesetting, we have no way to know whether or not our
desired configuration is usable. It might fail for a number of reasons:
scaling limits, bandwidth limits, global resource (e.g. decompression)
unit contention, or really just anything.
Not only this, but there is no good way to ensure that our configuration
actually lands together in the same refresh cycle - hence the 'atomic'
in atomic modesetting. Some drivers implement a synchronously blocking
drmModeSetPlane, whereas others return immediately. Using overlay planes
can thus decimate your framerate.
The pre-atomic API is not extensible either, so we need numerous out
clauses: fail if we're cropping or scaling (sometimes), or changing
formats, or fencing, or ...
Now we've had atomic support stable for a couple of releases, just
remove support for doing anything more fancy than displaying our
composited output and a cursor with drivers which don't support atomic
modesetting.
Support for using overlay planes was already disabled by default when
using the legacy API, and required a debug key combination to toggle it
on by flipping the sprites_are_broken variable. We can ensure that we
never try to use it on legacy by simply ignoring the hotkey when in
legacy mode.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
31838bf1
by Daniel Stone
at 2019-06-25T13:00:57Z
compositor-drm: Remove legacy plane and vblank usage
As of the previous commit, we never create state which uses overlay
planes on non-atomic drivers. We can thus remove the calls to
drmModeSetPlane.
The only time we ever waited for vblank events was when we had called
drmModeSetPlane and needed to make sure we waited until it was active.
We can thus also remove all the vblank event machinery.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
71309894
by Marius Vlad
at 2019-06-25T14:05:54Z
doc: Move helper scripts to doc/scripts
No functional change, just re-arrange bits in doc/.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
bbf6ea0b
by Marius Vlad
at 2019-06-25T14:05:54Z
build: Add sphinx/breathe support for generating documentation
This is adds basic configuration files for doxygen and for breathe,
which is a doxygen-to-sphinx bridge that can document C symbols.
Breathe is configured with default project 'weston' and implicitly adds
:members: and :undoc-members: to breathe configuration options.
This allows a shorter way to call breathe directives without the need
specify the project and also to display implicitly all the members,
documented or not.
A 'docs' run_target to force the docs to be re-built has been added.
Initially (the first time the build system is ran) the documentation
will automatically be built, but later re-builds will require the use of
the 'docs' target. This avoid further delays in building weston but in
the same time allows the possiblity to update/improve the documentation
bits to those who want that.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
1bc6ceba
by Marius Vlad
at 2019-06-25T14:05:54Z
README: Add a few words about building weston documentation
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
a2dace23
by Marius Vlad
at 2019-06-25T14:05:54Z
libweston: Fix/clean-up doxygen warnings
This fixes warnings for weston-debug, input, compositor, log and
linux-explicit-sync. Warnings range from swapping '[in]', '[out]' with
the function arguments to wrong parameter names.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
eeabe17e
by Marius Vlad
at 2019-06-25T14:05:54Z
pixel-formats: Fix doxygen warnings about missing format
We already have documentation in header which conflicts with the one
the source code. Remove it entirely as it confuses user as well.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
48392643
by Marius Vlad
at 2019-06-25T14:05:54Z
clients: Fix/resolved doxygen warnings
Missing/wrong parameters and '[out]' issues.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
5baeaeca
by Marius Vlad
at 2019-06-25T14:05:54Z
README/CONTRIBUTING: Markdown fixes
Found while being parsed by doxygen (when used recursively), this fixes
the markdown bits as to be displayed properly.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
3d620bc0
by Marius Vlad
at 2019-06-25T14:05:54Z
doc/sphinx: Further configure doxygen
Turn warnings into errors so we can spot them immediately.
While at it: no need to generate class graphs as we're not using it and
make doxygen run quieter.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
ae263410
by Marius Vlad
at 2019-06-25T14:05:54Z
doc/sphinx: Add doxygen aliases for easier rst embedding
With these aliases we can use rST directives inside comment blocks. This
adds also a doxygen command '\rststar' where ignores the asterisk --
typical to multi-line comment blocks.
While at it, add a simple example on how to use them.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
78984ee9
by Marius Vlad
at 2019-06-25T14:05:54Z
libweston: Define head, output and compositor group
Also, add tag symbols related to 'weston_head'.
The bridge between sphinx and doxygen (breathe) has a useful directive:
doxygengroup. By using it we can scoop out symbols we'd like to display
documentation from/of.
At the same time some bits of the code has been using '\memberof' (a
doxygen command useful in C code to establish class like
relationship between objects and functions) but this seems not to be
recognized by the sphinx bridge.
Until we find a better solution, we replace '\memberof' command with
'\ingroup' one as to tag the symbols with an "object". This patch does
that for 'weston_head' object.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
55d8736e
by Marius Vlad
at 2019-06-25T14:05:54Z
libweston: Add ingroup tag for weston_output
This is a continuation of "e2cc7aa40fd: libweston: Define head, output and
compositor group".
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
9fdda7f5
by Marius Vlad
at 2019-06-25T14:05:54Z
libweston: Add ingroup tag for weston_compositor
This is a continuation of "e2cc7aa40fd: libweston: Define head, output and
compositor group".
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
57e2cc22
by Marius Vlad
at 2019-06-25T14:05:54Z
doc/sphinx: Add 'weston_compositor', 'weston_output' and 'weston_head' API
Demonstrates how to call/use the 'doxygen*' breathe directives. Make
use of previous patches that tag symbols using 'ingroup' doxygen
command.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
08e1d42a
by Marius Vlad
at 2019-06-25T14:05:54Z
gitlab-ci: Install doxygen/sphinx/breathe and enable building documentation
Pinned down sphinx to 2.1.0 and breathe to 4.13.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
0a13641f
by Marius Vlad
at 2019-06-25T14:05:54Z
gitlab-ci: Enable gitlab page for publishing documentation
While adding pages, remove CI_JOB_ID and CI_JOB_SHA from PREFIX, as this
apparently is not needed. Make build-native-meson a dependency for the
pages stage.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
d0861f90
by Marius Vlad
at 2019-06-25T14:21:00Z
gitlab-ci: Fix pages generation for the documentation
Fixes 0a13641ff: "gitlab-ci: Enable gitlab page for publishing documentation",
to point to correct sphinx documentation.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
0f5bb512
by Daniel Stone
at 2019-06-26T11:27:14Z
doc: Remove clang-parsing definitions
These definitions were just set to the default (off), but their presence
causes Fedora's Doxygen to emit a warning as it is not compiled with
Clang support.
Remove them as they are no-ops anyway.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
bc4ccc20
by Daniel Stone
at 2019-06-26T11:27:14Z
pixel-formats: Remove duplicate doc string
pixel_format_get_info() is already documented in the headers; no need to
also document it next to the code.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
d83c1eca
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Convert extension pseudo-bools to real bool
Use the actual boolean type instead of an integer for variables which
only hold true or false.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
8e3c8c4b
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Convert remaining pseudo-bools to real bool
Use the actual boolean type instead of an integer for variables which
only hold true or false.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
a7722ee9
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Don't use swap_buffers_with_damage with fan debug
Fan debug mode repaints the whole surface in order to clear any 'trails'
left over from previous fan paints. If this happens, fall back to using
regular eglSwapBuffers rather than eglSwapBuffersWithDamageEXT, since
the damage region we would pass will be too small.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
55bcb93f
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Use helper for conversion to EGL rects
eglSwapBuffersWithDamage has to convert a damage region from Weston's
global co-ordinate space, into the co-ordinate space for EGL rendering
into a buffer for that output.
The conversion from the global co-ordinate space in logical pixels to
the output space in buffer pixels is slightly long and error-prone,
involving translating by the output's offset within the global
co-ordinate space, multiplying by output scale, and also translating to
allow for any borders we paint around the output.
After this is done, we need to flip the co-ordinates in the Y axis to
account for the lower-left-origin co-ordinate space used by EGL.
Since we want to reuse this for partial_update, but using a different
source region, extract this conversion into a well-commented helper we
can reuse.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
dad2f404
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Rename border_damage variable
Technically it is storing which areas of the border are damaged.
However, we already have damage-region variables which need to be
translated by the border region. Rename the variable to not contain the
word 'damage' to reduce confusion.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
30f58637
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Rename buffer_damage variable
The buffer_damage variable stores accumulated damage from previous
frames. This is the area that, before considering our current repaint
request, we need to repaint in order to bring the older buffer up to
date with the last buffer we rendered into.
Rename to previous_damage so it's a bit more clear what this refers to.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
f1cecef2
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Demystify output repaint slightly
Add some comments in the function to make it clear what's going on,
especially as we twist and turn between a lot of things called 'damage'
meaning different things in different co-ordinate spaces.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
0a86a81c
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Add EGL_EXT_partial_update query
Query for the extension itself and the core entrypoint.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
df2095fa
by Daniel Stone
at 2019-06-26T11:28:03Z
gl-renderer: Support EGL_KHR_partial_update
partial_update is an EGL extension which allows us to inform the driver
ahead of time the limits of the areas we'll be writing to. This helps
performance for GPU hardware which renders into a local tile buffer:
informing the driver of the rendering extents means it can avoid
fetching unchanged tiles into the tile buffer and subsequently writing
them out.
The extension complements rather than replaces EGL_EXT_buffer_age (used
before partial_update to know which areas we need to update) and
EGL_KHR_swap_buffers_with_damage (used after partial_update to inform
the winsys of the changed region).
Note however that partial_update deals in buffer-damage regions ('what
has changed since the last time I used _this_ buffer?'), whereas
swap_buffers_with_damage deals in surface-damage regions ('what has
changed since the last time I rendered?'). An explanatory diagram can be
found in the specification:
https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_partial_update.txt
Fixes: #134
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
c505af88
by -
at 2019-06-26T21:00:43Z
desktop-shell: Click top left and align clock
Pads launchers with the empty space that used to be around them. Moving
pointer to 0,0 and clicking launches the preferred app. First launcher
has more padding at its start to look nice.
Moves the clock to the right edge with same padding. Keeps one of the
two values for text extents that the code was already retrieving but
never read. Horizontal panel position centers the clock.
Sets text in the panel, meaning tooltips and the clock, to consistent 14
units of the default system font at 85% of the max brightness, so it's
less tiring on eyes.
-
dd1bc50b
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Create header for backend internals
Create a new header called drm-internal.h, and move many of drm.c's
declarations and helpers to it.
This will allow us to split the DRM backend into multiple files.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
3448cfce
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Pull EDID extraction into helper
Create a helper function which populates a drm_head with the information
extracted from its connector's EDID and any other properties we can
find, such as physical size and connection status.
This is currently quite small, but may become more complex in future as
we parse EDID better. It also prepares to move this function into
another file in the next commit.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
fbe6c1db
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Move mode handling to separate file
Create a new file for the DRM backend's handling of output modes, e.g.
resolution, aspect ratio, preferred mode selection, EDID parsing.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
4c2fc705
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Move KMS API use to separate file
Create a new file which handles most of the actual KMS API use. This
covers the property handling (in which we map between KMS properties and
our internal representations), as well as actually applying state
through atomic modesetting or the legacy SetCrtc/PageFlip/DPMS APIs.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
7580b3c0
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Move FB handling to a separate file
Move everything to do with creation, destruction, and reference handling
of drm_fbs to a new file.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
6b466f25
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Move state helpers to separate file
Most of the state helpers (create, destroy, duplicate, etc) state, are
relatively straightforward and can live in a separate file.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
e404b72f
by Daniel Stone
at 2019-06-26T22:08:36Z
compositor-drm: Split assign_planes() into separate file
drm_assign_planes() is called to separate views out and decide what will
be taken out for plane composition and what will be left for the
renderer to compose.
It calls drm_output_propose_state() in order to find a good
configuration, which itself has a number of helpers that it calls. Break
these out into a separate file.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
6d9fda71
by random human
at 2019-06-27T17:44:19Z
clients/presentation-shm: use xdg_shell instead of wl_shell
wl_shell is deprecated, and using xdg_shell allows the client to run on
compositors which do not implement the old protocol. Functionality
should be identical.
Signed-off-by: Astatos Aner <random.bored.human@gmail.com>
-
5d7877ad
by Marius Vlad
at 2019-06-28T10:39:11Z
doc/sphinx: Force sphinx to re-build everything as to avoid stale docs
With the introduction of the 'docs' target we make sure that we always
build the documentation, but currently breathe is unaware of the fact
that the doxygen XML database was changed in between runs. It is obvious
when changing only source code not rST bits.
This patch makes sphinx ignore the saved environment and always
rebuild the docs.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
29beeafd
by Tomohito Esaki
at 2019-07-01T01:57:25Z
backend-drm: make linear modifier to default
Make the linear modifier to the default of DRM format modifiers if
supported modifiers isn't get from kernel driver.
-
e97391c4
by Roman Gilg
at 2019-07-01T08:24:25Z
compositor: Support xdg_output_unstable_v1
The xdg-output resources are listed in each head struct. They become idle when
the respective weston_output has been removed again. The client is supposed to
destroy them explicitly afterwards.
After starting an XWayland client xrandr displays the logical size as expected.
Signed-off-by: Roman Gilg <subdiff@gmail.com>
-
64a92265
by Marius Vlad
at 2019-07-01T12:20:30Z
doc/sphinx: No need for doxygen custom target
Unfortunate left over which was not removed once we had the script in
place to regenerate the documentation. A side-effect was the fact that
we still ran the script even if 'docs' target was called, effectively
nullifying the fact that 'docs' target was ran at all. For instance,
'install' would've been executing the script even if 'docs' target
was called before.
This removes the doxygen_target entirely and the depends of sphinx
target on it, makes building and installing docs a bit faster.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
640109cf
by Michael Olbrich
at 2019-07-01T15:50:08Z
ivi-layout: use libweston-desktop api is to send configure events everywhere
Whenever shell_surface_send_configure() is called
weston_desktop_surface_set_size() should be used instead for desktop
surfaces. It is already done for IVI_LAYOUT_TRANSITION_VIEW_FADE_ONLY, do
it everywhere else too.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-
6ef2d45a
by Michael Olbrich
at 2019-07-01T15:51:57Z
ivi-layout: unmap desktop surfaces in ivi_view_destroy()
weston_desktop_surface_unlink_view() does now call weston_view_destroy() so the
weston_view is not destroyed here. This is a problem because the view remains in
the weston_layer view_list. If ivi_view_destroy() is called from
ivi_layout_surface_destroy() and the view list is rebuilt in the 'removed'
signal, then the list gets corrupted when the view is destroyed immediately
afterwards.
Fix this by calling weston_view_destroy() unconditionally for all view.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-
06aeb0ea
by Scott Anderson
at 2019-07-04T08:48:50Z
protocol: Add content-protection protocol
This protocol allows a client to ask the compositor to only allow it to
be displayed on a "secure" output. This initial version of the protocol
supports HDCP.
This is loosely based on the chromium secure-output protocol [1].
This protocol is mostly useful for closed system, where the client can
trust the compositor, such as set-top boxes. This is not a way to
implement any kind of Digital Rights Management on desktops. The
compositor would be free to lie to the client, anyway.
Signed-off-by: Scott Anderson <scott.anderson@collabora.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
[1]
https://chromium.googlesource.com/chromium/src/+/master/third_party/wayland-protocols/unstable/secure-output/secure-output-unstable-v1.xml
-
2690a770
by Ankit Nautiyal
at 2019-07-04T08:48:50Z
libweston: Add support to set content-protection for a weston_output
For making an output secure, the content-protection should be set for
each of head attached to that output. So whenever the protection for
a weston_output is desired, it means that protection is desired for
each of the weston_head attached to that weston_output.
This patch introduces a new enum in libweston to represent the
requested/current protection statuses, equivalent to the type enum
defined by the weston-secure-output protocol. The new enum helps to
extend the content-protection status and requests to libweston and
the backends.
This patch also adds a new member desired_protection to store the
desired protection for an output in weston_output.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
4f64ff8b
by Ankit Nautiyal
at 2019-07-04T08:48:50Z
libweston: Compute current protection for weston_output and weston_head
The actual protection status for a given weston_head depends upon the
corresponding drm_head's connector HDCP properties. On the other hand,
the actual protection for a weston_output is the minimum of the
protection status of its attached heads.
As a head's protection changes, the current protection of the output
to which the head is attached is recomputed.
This patch adds the support to keep track of the current
content-protection for heads and the outputs.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
4b6e73d6
by Ankit Nautiyal
at 2019-07-04T08:48:50Z
libweston: Add support to set content-protection for a weston_surface
The protection requested for a given surface, must reach through the
weston_surface::pending_state, in the commit-cycle for the
weston_surface, so that it gets updated in the next commit.
As some protection is requested for a given weston_surface, it means
protection must be set for each of the outputs which show the surface.
While setting the protection of a weston_output, care must be taken
so as to avoid, degrading the protection of another surfaces, enjoying
the protection. For this purpose, all the weston_surfaces that are
shown on a weston_output are checked for their desired protection.
The highest of all such desired protections must be set for the
weston_output to avoid degrading of existing protected surfaces.
A surface requesting protection for a lower content-type can still be
provided protection for a higher type but the converse cannot be
allowed.
This patch adds support to set content-protection for a suface, which
inturn sets the content-protection for each of the outputs on which
it is shown, provided, none of the existing surface's protection
request is downgraded.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
5cfe03c8
by Ankit Nautiyal
at 2019-07-04T08:48:50Z
libweston: Add content-protection protocol implementation
This patch adds the content-protection protocol implementation, to
enable a weston client application to request for content-protection
for its content via HDCP.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
f74c35b1
by Ankit Nautiyal
at 2019-07-05T08:43:24Z
libweston: Notify client for change in content-protection status
The change in an output's content-protection may trigger a change in
the surface's content-protection status, and inturn the
content-protection available for the client.
This patch recomputes the content-protection level for a surface,
in case there is a change in content-protection level of an output,
showing the surface. In case of a change in the surface's
content-protection, the client associated with that surface is
notified.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
2844f8ea
by Ankit Nautiyal
at 2019-07-05T08:43:30Z
compositor: Enable HDCP for an output using weston.ini
This patch enables a user to opt for HDCP per output, by writing into
the output section of weston.ini configuration file. HDCP is always
enabled by default for the outputs.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
62626cbf
by Harish Krupo
at 2019-07-05T08:43:30Z
gl-renderer: Obscure protected content on unprotected display
The content protection protocol requires that in enforced mode, parts of the
surfaces which lie on outputs with protection level lower than that of the surface
be censored. This patch uses a solid shader to color such regions with
dark red.
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
-
8b40deaa
by Ankit Nautiyal
at 2019-07-05T08:43:30Z
clients: Add content-protection client app
This patch adds a client app which can be used to show the
implementation of weston content-protection protocol. The app can
request for Type-0 and Type-1 content or request for disabling
content-protection to the content-protection server.
It listens for the content-protection status change event from the
server and accordingly display the required content.
The content Type-0, Type-1 and unprotected contents are prepared
using cairo surface, with different color and text to distinguish
between the contents.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
0bfebebb
by Stefan Agner
at 2019-07-07T22:30:44Z
compositor-drm: use DRM constants
The GBM and DRM constants have the same meaning. In preparation
to make the DRM backend compile without libgbm, prefer the DRM
constants where GBM is not needed.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
5dd3e999
by Stefan Agner
at 2019-07-07T22:35:06Z
backend-drm: drop gbm.h from c files
The header file is anyway included in drm-internal.h, we can safely
drop it from the c files.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
974390a5
by Stefan Agner
at 2019-07-08T21:53:30Z
backend-drm: get handle in gbm specific code
Get GBM BO handle in GBM specific code. This allows to compile
drm_output_set_cursor without GBM.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
3ea03bb8
by Tomohito Esaki
at 2019-07-09T14:22:25Z
remoting: make a gstreamer pipeline configurable
Allow a gstreamer pipeline to be configurable via an weston.ini. It is
necessary that source is appsrc, its name is "src", and sink name is
"sink" in pipeline. Also, remoting plugin ignore port and host
configuration if the gst-pipeline is specified.
-
3ebd8704
by Daniel Stone
at 2019-07-12T17:00:32Z
gl-renderer: Account for offset in output region translation
In 55bcb93fefd6 ("gl-renderer: Use helper for conversion to EGL rects"),
we extracted and lovingly commented the transformation from global to
output co-ordinate space used for EGL_KHR_swap_buffer_with_damage, into
a new helper function.
The commenting correctly noted the steps we need to perform the
transformation: shifting by the output's offset into global space,
followed by applying the output's scale and rotation transformations.
Unfortunately, the code did not live up to the high standards of the
comment, and forgot to translate by the output's offset. This meant that
for multiple outputs, we would probably end up with wildly out-of-bounds
co-ordinates.
Fix the code to first translate by the output's offset in global space,
ensuring that both our swap_buffers_with_damage, and our partial_update
co-ordinate sets, can spark joy for those blessed with more than one
output.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
9c81224e
by Daniel Stone
at 2019-07-12T17:00:32Z
gl-renderer: Don't leak transformed region
Unfortunately, our y_invert helper also forgot to free the region it
transformed to. Clean up our allocation before we exit.
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
c90fccc2
by Antonio Borneo
at 2019-07-12T17:16:52Z
backend-drm: fix race during system suspend
Depending on system loading, weston-launcher could drop the drm
master access before the compositor and all the clients receive
the notification. In this case, some commit could be sent to the
drm driver too late and get refused with error EACCES.
This error condition is not properly managed and causes weston to
hang.
Change the return type of start_repaint_loop() and repaint_flush()
from void to int, and return 0 on success or -1 if the repaint has
to be cancelled.
In the callers of start_repaint_loop() and repaint_flush() handle
the return value and cancel the repaint when needed.
In backend-drm detect the error EACCES and return -1.
Note: to keep the code cleaner, this change inverts the execution
order between weston_output_schedule_repaint_reset() and
repaint_cancel().
No need to wait for suspend or for any notification; in case the
weston reschedules a repaint, it will get EACCES again.
At resume, damage-all guarantees a complete repaint.
This fix is for atomic modeset only.
Legacy modeset suffers from similar problems, but it is not fixed
by this change. Since drm_pending_state_apply() never returns
error for legacy modeset, this change has no impact on legacy
modeset.
Signed-off-by: Antonio Borneo <antonio.borneo@st.com>
Fixes: https://gitlab.freedesktop.org/wayland/weston/issues/117
-
1aa3f52f
by Pekka Paalanen
at 2019-07-16T11:43:57Z
contributing: add copy of DCO
The DCO was fetched from https://developercertificate.org/ on Feb 4, 2019.
DCO-1.1.txt is a verbatim copy of it.
We should carry a copy of this legal document to be explicit on what wording we
refer to. A link to the URL is not enough, because it may go stale or change
contents without notice.
This clarifies on what the S-o-b actually means. The meaning itself is the same
as before.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
c569bdc2
by Robert Beckett
at 2019-07-18T06:35:41Z
libweston: make session_active a bool
compositor->session_active should be a bool as it tracks a boolean
condition.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
-
49dc3201
by Robert Beckett
at 2019-07-18T06:35:41Z
backend-drm: dont emit sesion signal if already at same state
logind will send a device changed at start of day, prompting a session
active change, but the session will already be active from compositor
creation.
Avoid unnecessary signal emition and drm state invalidation.
The logind launcher sets the session active when the graphics device is
assigned to weston from systemd. Unfortunately 8d23ab78 didnt check whether the
session was already active before setting it active and emitting the session
active signal.
The handler for that signal then proceeds to invalidate the entire graphics
state, causing the next redraw to reconfigure all outputs (to the same routing
as they were already).
This then massively increases the likelihood of trying to configure a crtc that
has a commit already in flight.
Add the old behaviour of only emitting a signal on a changed state.
This avoids the issue for now by reducing the chances of a clash. Future
work will need to fix the issue properly (better handling of state_invalid e.g.
wait for quiescence, better monitoring for crtc usage clashes etc).
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
-
1c0d04bf
by Pekka Paalanen
at 2019-07-18T06:43:38Z
libweston: do not include config-parser.h
config-parser.h is a helper API that libweston core must never depend on. Using
it is a compositor frontend decision.
Including it in libweston.h would give the wrong message.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
4d792832
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate weston_environment_get_fd() to weston-launch header
This is private so it doesn't belong to public libweston API header.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
c2e18e89
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Removed unused tty_* functions
These are nowhere defined, so it seems the we're only left with these
declarations.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
a72e3716
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Introduce libweston-internal.h
Introduce a new private header file that only internal parts of the
library are allowed to use and shouldn't be exposed in the public header
of libweston.
Start by adding by adding functions that operate on the 'weston_buffer*'.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
56f3a68a
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_compositor'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
58cac08c
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_plane'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
0bf3f5ac
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_seat'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
9eb2064b
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on input objects
This include 'weston_keyboard', 'weston_touch', 'weston_pointer' and
other released classes.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
f1a6594a
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_surface'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
4e1d0973
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_spring'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
7e4f58fa
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_view'
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
3ff296e9
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that perform various transformations
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
a9b69b4b
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate content_protection from public header
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
0260fed3
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate what is left out the libweston public header
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
e41c1bff
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Introduce backend.h
Introduce a new private header file that only internal backends are
allowed to use. Starts by migrating functions that operate on the
'struct weston_head'.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
63ef078a
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_output' into backend header
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
5d649b61
by Marius Vlad
at 2019-07-18T06:43:38Z
libweston: Migrate functions that operate on 'weston_seat'
All 'notify_()*' belong in the private backend header file.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
e48bfc7c
by Pekka Paalanen
at 2019-07-18T06:43:38Z
libweston: Move 'struct weston_backend' to the internal backend header
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
e0a858a5
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-debug: Introduce weston_log_subscription and weston_log_subscriber objects
Adds a minimalistic API for managing the subscription object. The
subscribe functionality will be brought in once we re-organize a bit
weston-debug-stream and split it properly. It extends the logging
context with a linked list of potential subscription and adds a linked
list of subscriptions in the log scope.
This patch represents the start of a logging framework for weston. It's
being built around weston-debug, with the intent to superseded it, and
make weston-debug a client of the framework. Further more the logging
framework should replace current logging handler and allow other types
of streams to be used.
Currently present in libweston under weston-debug we have log scopes, debug
streams and a logging context.
With this patch, two (internal) objects are being added: the concept of
a subscriber and the concept of subscription. The subscription object
is a ephemeral object, implicitly managed which is created each time one
would want to a subscribe to a scope. The scope will maintain a list of
subscriptions and will continue to be explicitly managed.
The streams will use the subscriber object as a base class to extend
upon. By doing so it allows to customize the stream with specific
functions that manipulate the underlaying storage. The subscriber object
will require a subscribe function and specific stream functions and like
the scope, will be explicitly managed.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
7814f301
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-debug: Convert weston_debug_stream to use the subscriber base class
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
8f329e25
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-debug: Make it easier to separate weston_debug_stream
This way we can split easier weston_debug_stream into a separate file.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
69e7571e
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-debug: Migrate weston_debug_stream to weston_log_wayland file
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
967a6c2d
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-log-wayland: Rename weston_debug_stream to weston_log_wayland
No changes in functionality have been made.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
c901e891
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-debug: Rename weston-debug to weston-log to better reflect its purpose
No changes in functionality have been made.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
9f71a4ad
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-log: Introduce subscribe functionality
As described in e10c9f89826bb: "weston-debug: Introduce...", the
subscriber object need further functionality to make use of it.
Current form of the weston-debug protocol would not need this, as it
creates underneath a new subscriber each time a client connects and
subscriptions are created/destroyed automatically with the help of
wayland protocol. For other types of streams, we require to manually
create a subscriber and to subscribe to log scopes.
This patch introduces the ability to create subscriptions, and
implicitly to subscribe to (previously created) scopes.
In the event the scope(s) are not created we temporary store the
subscription as a pending one: a subscription for which a scope doesn't
exist at the time of the subscription. When the scope for which the
subscription has been created we take care to create the subscription as
well.
While at it the documentation bits are modified accommodate the subscribe
method and its further functionality.
Lastly, it removes an unlikely case when a scope is not created so we
avoid any kind of dandling (pending) subscription in case there is
subscription to it. We can only do something about in the destroy part
of the scope.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
5ae0e621
by Marius Vlad
at 2019-07-18T07:49:39Z
weston-log/weston-log-wayland: Inline private subscription functions
This avoids duplicated bits, by calling the scopes's callback (if any)
and adding the subscription to the scope's subscription list. Further
more, the scope's name when creating the subscription is not needed so
removed that as well.
In mirror, also inline removing of subscription for scope's subscription
list. Fix a potential corner case when the user can request a
subscription to an invalid scope in stream_destroy().
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
dad882a1
by Marius Vlad
at 2019-07-18T10:32:23Z
weston-log: Rename scope's 'begin_cb' callback to 'new_subscriber'
Rather than using 'begin_cb' rename it to a more suitable name.
Further more instead of using the scope use the subscription to pass as
an argument. The source scope is attached to the subscription when
creating it so we can access it that way.
This also adds a _complete and a _printf method for the subscription
such that the callbacks can use to write data to only _that_
subscription and to close/complete it, otherwise writing to a scope
results in writing to all subscriptions for that scope which is not
correct.
In the same time, the scope counter-parts of _write and _complete will
now use the subscription function as well.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Daniel Stone <daniels@collabora.com>
-
8b3ab3cd
by Marius Vlad
at 2019-07-18T10:34:04Z
weston-log-file: Introduce file type of stream
With the logging infrastructure in place this patch add a new user: file
type of stream backed-up by a std file descriptor.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
f387f840
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Plug-in the file stream
Pass log scopes from the command line to subscribe log scopes
dynamically to the 'logger' subscriber.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
284d5345
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Destroy the compositor before the log scope
Destroying the compositor after destroying the log scope will not print
out the messages in the tear down/clean-up phase of the compositor, so
add a new tear_down function which allows keeping a valid reference to
the compositor. This way we can destroy the compositor before destroying
the scope and keep the debug messages.
While at it remove the log context destroy part from the clean-up
of the compositor and make it stand on its own.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
b599ad77
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Create the 'log' scope much earlier
Logging should start as early as possible so create the log scope as
early as possible, before subscribing to it.
Open the logfile before creating the 'logger' subscriber, making sure
we're logging to the file properly.
Also migrate `weston_log_set_handler()` to avoid potential calls to
`weston_log` before installing the log handler.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
ef4c268f
by Marius Vlad
at 2019-07-18T10:34:04Z
weston-log: Remove weston_log() calls from weston-log
Avoids a potential dependency on the log scope being set-up before
actually creating the scope. Destroy part of the log context could
suffer from the same issue if the log scope is destroyed before.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
9c3804f8
by Marius Vlad
at 2019-07-18T10:34:04Z
weston-log-flight-rec: Introduce flight recorder stream
Like a black box in an airplane, the flight recorder can be used to
accumulate data and, when needed, to display its contents.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
b5ac5a9a
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Plug-in the flight recorder
Create a flight recorder subscriber and allow subscribring to scopes
over the command line.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
3ee9d8e2
by Marius Vlad
at 2019-07-18T10:34:04Z
libweston: Put back weston_compositor_add_debug_binding() as public
The ability to install debug keybinds is useful so bring it back to the
public libweston API.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
59255583
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Add debug key-binding to display/dump flight recorder contents
Uses (debug key-binding mod+shift+space) KEY_D to display/dump
the contents of the flight recorder.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
e2d2ab7e
by Marius Vlad
at 2019-07-18T10:34:04Z
compositor: Remove from main displaying available log scopes
Place the subscribe parts and displaying of available scopes out of
main as it makes no sense to keep them there.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
4e03629f
by Marius Vlad
at 2019-07-18T10:34:04Z
libweston: Remove internal weston-log set-up function out of public header
We have dedicated header for the internal parts of the logging
framework, use that for the set-up part instead of the libweston public
API header.
Further more this removes weston_vlog() from public header as well and
moves them to weston-log-internal.h file.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
3d3ba959
by Marius Vlad
at 2019-07-18T10:34:04Z
weston-log: Removed compositor_destroy_listener from the log context
Nobody is using it.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
8b8b803a
by Marius Vlad
at 2019-07-18T10:34:04Z
weston-log: Start adding documentation for the logging/debugging framework
Adds initial grouping for sphinx/breathe for the logging/debugging
framework. We add a few groups: log (public API), internal-log (private API,
not exported) and debug-protocol, specific to the weston
debug protocol.
In latest version of breathe, '\memberof' command is recognized as such.
But it conflicts with '\ingroup' command and can't be used in the same
time (leading to duplicate symbols), so we follow a simple rule: object
tagging with '\ingroup' then use '\memberof' command for the functions
that work on that object.
There's also a caveat here: we have objects that are private (opaque)
but the functions are public. For those cases we resort to using
'internal-log' for the object (class) and 'log' for the functions.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
35ff4a8d
by Marius Vlad
at 2019-07-18T10:34:04Z
libweston/log: Add 'wlog' group for weston_log() related functions
This allows a better integration with the documentation of logging
framework.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
8110e8de
by Marius Vlad
at 2019-07-18T10:34:04Z
doc/sphinx: Add documentation for the logging/debugging framework
This details the logging/debugging framework with the latest changes,
making use of the groups added by "weston-log: Start adding
documentation" and "libweston/log: Add 'wlog' group".
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
8a171adc
by Michael Olbrich
at 2019-07-19T03:58:57Z
gitlab-ci: switch to buster
This is needed for pipewire.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-
d5d5aa91
by Michael Olbrich
at 2019-07-19T06:01:55Z
Add pipewire plugin
It is quite similar to the remoting plugin. It just exports the frames via
pipewire instead of the builtin GStreamer pipeline.
It implements the same virtual output API. Virtual outputs can be created
by adding 'pipewire-output' sections to weston.ini.
The generated frames can be accessed with any pipewire client. e.g. with
GStreamer:
gst-launch-1.0 pipewiresrc ! video/x-raw,format=BGRx ! ...
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-
04f7646d
by Simon Ser
at 2019-07-19T16:03:05Z
build: bump to version 6.0.91 for the alpha release
-
a784b475
by Ankit Nautiyal
at 2019-07-22T07:50:05Z
man: Update weston.ini, that no backend supports HDCP as yet
Currently, the HDCP support in drm-backend is under review and no
other backend supports HDCP yet. This patch is just to update the
weston.ini with this information.
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
-
f6e7d2ce
by Stefan Agner
at 2019-07-23T16:08:04Z
screen-share: destroy seat on remove
Destroy seats when they get removed. This makes sure that seats
properly disappear when screen-share RDP clients disconnect.
There will be no excessive amount of mouse pointer anymore after
several client connection/disconnections.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
db905f46
by Stefan Agner
at 2019-07-26T11:47:15Z
shared/platform: avoid build warning when building without gl-renderer
When building without GL renderer the compiler prints the following
warning:
../clients/subsurfaces.c: In function ‘egl_state_create’:
../clients/subsurfaces.c:225:35: warning: passing argument 1 of
‘weston_platform_get_egl_display’ makes pointer from integer without a
cast [-Wint-conversion]
225 | weston_platform_get_egl_display(EGL_PLATFORM_WAYLAND_KHR,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
...
Define the fallback implementation of weston_platform_get_egl_display
to take an integer which is the underlaying datatype of EGLenum.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
b5c70d79
by Quentin Glidic
at 2019-07-31T09:45:28Z
meson: Use libweston-major versioning on protocols directory
To fully allow parallel-installation of libweston, we have to make sure
anything that is implemented in libweston is in a versioned directory.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
da2e574c
by Stefan Agner
at 2019-08-01T08:19:15Z
pixman: avoid unnecessary y-flip for screen capture
Commit 4fc5dd0099c2 ("compositor: add capability CAPTURE_YFLIP")
introduced a capability flag which indicates whether y-flipping is
necessary. As already indicated in that commit message, it seems
that pixman flipps the y-axis only due to historic reasons.
Drop y-flipping and use the WESTON_CAP_CAPTURE_YFLIP flag to
indicate that y-flipping is not necessary. This simplifies code
and improves screen share performance (on my test by about 3% down
to 18% CPU load on the sharing instance of Weston).
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
a89266f4
by Jonas Ådahl
at 2019-08-02T14:57:56Z
protocol/meson.build: Bump wayland-protocol requirement to 1.18
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
3802241c
by Alexandros Frantzis
at 2019-08-02T15:00:08Z
libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1
Although we already supported minor version 2 of the explicit sync
protocol, we couldn't advertise it previously, since it was not in any
released version of wayland-protocols. With the release of
wayland-protocols 1.18, which includes minor version 2 of this protocol,
and the recent update in weston to require 1.18, we can now safely
advertise minor version 2.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
-
d9cec126
by Simon Ser
at 2019-08-02T15:03:46Z
releasing: update for the new release process
A few things have changed:
- Meson is used instead of autotools
- Wayland and Weston releases are not synchronized anymore
- Artifact deployment happens via wayland.freedesktop.org's Git repo
While at it, also convert the file to Markdown. Instructions to locally install
Xwayland/libinput have been dropped.
Signed-off-by: Simon Ser <contact@emersion.fr>
-
1a3c6df5
by Simon Ser
at 2019-08-02T16:11:52Z
build: bump to version 6.0.92 for the beta release
-
bed9b81a
by Marius Vlad
at 2019-08-06T11:34:17Z
compositor: Use only 'log' scope to print libwayland messages
No need to duplicate messages.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
6630f2ac
by Marius Vlad
at 2019-08-06T17:36:06Z
shared/: Please compiler when passed certain compile flags
Fixes the following warn/error when using combination of flags like
building with debug, when disabling optimization and/or when enabling ASAN:
../shared/option-parser.c:61:1: error: control reaches end of non-void function [-Werror=return-type]
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
7216d4c4
by Marius Vlad
at 2019-08-12T18:31:46Z
compositor: Bring back the old timestamp format for the log scope
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
324d8465
by Manuel Stoeckl
at 2019-08-12T18:43:30Z
clients/simple-egl: Exit when display has an error
Check return values for wl_display_dispatch_* functions, so that
the program stops running when the compositor that it is connected
to crashes.
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
-
45f5e536
by Emmanuel Gil Peyrot
at 2019-08-15T12:03:48Z
Fix a crash when closing an X11 window with a selection
This was caused by weston_wm_handle_xfixes_selection_notify() calling
weston_seat_set_selection() with a NULL source, apparently only
sometimes when closing an Xwayland window.
-
2b2c9a6f
by Stefan Agner
at 2019-08-16T07:51:20Z
screen-share: align read_pixels call with screenshooter
Calculate y_orig separately first makes it easer to understand the
code and aligns with how pixels are read in screenshooter.c.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
64e29641
by Stefan Agner
at 2019-08-16T07:51:20Z
screen-share: fix error handling
Make sure damage region gets properly unreferenced in error cases.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
ab840fc8
by Stefan Agner
at 2019-08-16T07:51:20Z
screen-share: move damage calculation after screen resize
Calculate damage region after resizing the cache image. This
avoids unnecessary calculation of damaged regions on resize,
makes sure that the whole screen is considered damaged on
resize and simplifies error handling.
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
bf5b6219
by Stefan Agner
at 2019-08-16T07:51:20Z
screen-share: use pixman_image_composite32 instead of pixman_blt
The function pixman_blt may return false in case there is no
accelerated blit function available. In this case the remote shared
screen stays black.
This has been observed on Weston compiled for aarch64. In currrent
pixman 0.38.4 there is no accelerated pixman_blt function for
aarch64 available.
Use pixman_image_composite32 instead which is guaranteed to have a
working fallback implementation.
Fixes: #253
Signed-off-by: Stefan Agner <stefan@agner.ch>
-
670ac1c0
by Simon Ser
at 2019-08-16T15:48:51Z
build: bump to version 6.0.93 for the RC1 release
-
843b2385
by Marius Vlad
at 2019-08-19T09:40:42Z
weston-log: Return bytes written for 'printf()' and 'vprintf()' functions
Information is needed for 'vlog()' and 'vlog_continue()' (others
depend on them).
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-
e5684885
by Marius Vlad
at 2019-08-19T09:52:29Z
compositor: Return the number of bytes written as to format properly
Otherwise 'log_extensions()' will not know how to properly format the
data.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
ec8c876e
by sichem
at 2019-08-23T11:47:44Z
make weston_binding_destroy public
-
5f592c78
by Manuel Stoeckl
at 2019-08-23T11:53:13Z
weston-terminal: Ignore SIGPIPE
This ensures that the default signal action doesn't kill weston-terminal
when the terminal tries to paste into a pipe whose read end has already
been shut down. (For example, a pipe from a misconfigured program or from
one which crashes/exits before the terminal calls write().)
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
-
d32dfcf8
by Daniel Stone
at 2019-08-23T20:51:43Z
backend-drm: Enforce content protection for hardware planes
62626cbfec08 ensures that the GL render will not render a view's content
to the screen when the surface has requested a higher content-protection
level than the output currently offers.
When the HDCP MR was split into the core content-protection support in !83
and specific DRM support for HDCP in !48 (not yet landed), this opened a
hole where the DRM backend could promote a view to a hardware plane,
even if the output offered a lower protection level than the surface
wanted to enforce.
In the DRM backend, check the desired protection level, and refuse to
promote the view to a hardware plane if the output does not offer
sufficient protection. This will lead to presentation falling back to
the renderer, which may censor the content, reduce quality, etc.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Fixes: 4b6e73d61767 ("libweston: Add support to set content-protection for a weston_surface")
-
3180fa8a
by Simon Ser
at 2019-08-23T20:58:15Z
build: bump to version 7.0.0 for the official release
-
8dc4f5dc
by Héctor Orón Martínez
at 2019-09-03T12:00:29Z
Merge upstream-experimental branch
Based on upstream 7.0.0 tag
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
3076ecdf
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
Prepare next upstream release
drop debian/patches/reproducible-build-899358.patch, merged upstream
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
c6db658f
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
debian/control: bump wayland dependency version
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
4a30d8b3
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
debian/control: add new dependencies
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
4be809f0
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
bump libweston-desktop ABI to 7
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
c28a161d
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
install weston-debug.xml in ABI versioned path
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
f10a358d
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
debian/weston.manpages: add weston-bindings manpage
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
18f88576
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
debian/libweston-7-0.install: install pipewire plugin
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
e7100b42
by Héctor Orón Martínez
at 2019-09-03T12:00:52Z
debian/libweston-7-0.symbols: update
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
-
496121d7
by Héctor Orón Martínez
at 2019-09-03T12:03:39Z
Release Debian version weston-7.0.0-1~exp1
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>