Age | Commit message (Collapse) | Author | Files | Lines |
|
set_background request assumes we have set-up a bg surface which might
not be the always case. Just avoid dereferencing before testing for a
valid background surface role.
Bug-AGL: SPEC-5205
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reported-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I3481d7eda83c8d6e7605dc0e8fec240029405808
|
|
Fixes the following build failure on arm32:
| ../git/src/compositor.c: In function 'log_timestamp':
| ../git/src/compositor.c:1848:39: error: format '%li' expects argument of type 'long int', but argument 6 has type '__suseconds64_t' {aka 'long long i
nt'} [-Werror=format=]
| 1848 | snprintf(buf, len, "%s[%s.%03li]", datestr,
| | ~~~~^
| | |
| | long int
| | %03lli
| 1849 | timestr, (tv.tv_usec / 1000));
| | ~~~~~~~~~~~~~~~~~~~
| | |
| | __suseconds64_t {aka long long int}
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I9c9a532e2535501035867ed29a2d296900509489
|
|
libweston now provides a protocol which we can use for doing
screenshots, not needing to provide one ourselves. This imports
a simple client used in Weston but it has some changes to match
our current args.
Bug-AGL: SPEC-5095
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I00c9e976975447c74668fbfe1045b9177c623064
|
|
Bug-AGL: PEC-5104
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib57d93378847cf2c7fa07782d983a179fa4a7ce8
|
|
Fix declaration of stub function used when the RDP backend is
not enabled.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
|
|
This updates with the Weston's front-end.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id421bdd04fc6943e991cbf51e9478450411721ef
|
|
Some minor changes were added to the RDP backend, so these just updates
our loading code to it.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I411c825c098a4201a0d017856da3d979f5d9f6ff
|
|
The AGL compositor frontend uses ivi_output to denote an output and pass
it around, with the implication that's available on retrieval later on.
In order for that to actually work, and by the mechanism we are
retriving it we need to install a destruction handler a bit earlier,
such that is available.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ifbbfff67c75f98fe4ce84613674fb308880bf7e6
|
|
This prints out eariler when a backend failed to load.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I0414d65199177c70c9d98fd6920f70e18b415f4b
|
|
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib60ad86aa893d812ce4cf2babbb28b860c9b94a4
|
|
This follows Weston frontend code for loading up and head/output
enablement. RDP, Wayland and X11 backend loading are all handled
through the same common code, while the DRM one has a clear distinct
one. This greatly simplifies the loading phase and provides a more
easier, intuitive code review.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I97d39004dea0e030478f27ea18989887b8e2cc82
|
|
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I5d7284de09485a42dd84075b5fa2268a81982745
|
|
Headless backend was introduced to test out the compositor but never
materialized. Besides removing headless loading of the backend, also
do a bit of clean-up and remove vnc and pipewire strings as we currently
have no such backend capability at this moment.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I87fdc0aa6c41bdcc8b1f53880860df7139ca7ae8
|
|
With libweston 13 we don't have a create with head option. Just use the
one available has underneath that's what is using as well.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I236d9caa193dafdd20dc2636a517c4e5bf597bd7
|
|
This afffects the background/panels and black curtain installment,
with regular activation still using the older approach.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: If8f8272fa29e02535eb5751a3119eb6deba0c3ae
|
|
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id2a3001e02f1be62c621f942be69e5006c20e7a3
|
|
Some missing bits to adapt to loading correctly the backends.
Bug-AGL: SPEC-5096, SPEC-5061
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ibc97d9701ca6dfd7326362fcd2dcf3af681ad704
|
|
Also, wet_process.cleanup now takes extra data argument.
Bug-AGL: SPEC-5061
Change-Id: I2e7e6d976663a41d0a53866d6bde4df0531f1790
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
|
And since weston_compositor structure now doesn't provide backend
field, move it to the parent ivi_compositor structure.
Bug-AGL: SPEC-5061
Change-Id: Ia0463ecdf149172c67857131530fc42e56fe5190
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
|
Offsets and coordinates are now handled and passed around via
corresponding weston_coord_* structures.
Bug-AGL: SPEC-5061
Change-Id: Ifa6958cce71eca80e4412545c3542842cd4d64da
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
|
Bug-AGL: SPEC-5061
Change-Id: If56c7121b48ab5f826534e3dc538052f4bdef1ac
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
|
This is just an aftermath of the change in 'meson.build, src: update for
weston 12' which missed up the change for not having the x11 backend.
Bug-AGL: SPEC-4578
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iff2112ece5d378d7d9f8fe67ed05bd9c5d354155
|
|
Update dependencies for libweston-12 in meson.build, as well as
adjust sources due to libweston-desktop/libweston-desktop.h
moving to libweston/desktop.h
This adds support libweston 12 which includes the following changes:
- use MODULEDIR, for both weston and libweston when loading
- use backend, renderer when starting up and pass those up
Bug-AGL: SPEC-4578
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I269e877ee3ae8cf8f1447bda05e11422244a416e
|
|
Bug-AGL: SPEC-4617
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I3147cbfbc5a5c3913d8e361b907f5c19bf539276
|
|
Bump Weston library dependencies to work with Weston 11.0.0.
The following changes are needed to port the compositor to the
latest changes from libweston 11.
Specifically we now use weston_surface_unref() instead of
weston_surface_destroy(). The weston_head parameter is now needed
when creating an output in weston_compositor_create_output().
We now use weston_buffer_create_solid_rgba() instead of
weston_surface_set_color() to create our black curtain. A further
upstream updates has been added to include some of the shell-utils
wrapper but we'll get those in the next release of libweston.
Finally, in order to attach heads and enable the outputs, we need to
start from 1, rather than 0, and we now need lazy output placement for
multiple outputs, following basically what weston is doing.
Bug-AGL: SPEC-4578
Bug-AGL: SPEC-4617
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie4aa7bc09b99d85b6bda49437c5f4789012244e1
|
|
Update wayland-scanner dependency to mark it as native, as detection
fails with newer meson without it. This also matches what is done in
Weston's meson.build.
Bug-AGL: SPEC-4578
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
|
|
To include a quick fix regarding building the compositor
with rdp backend support.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I2611af2b867285b5529dbcdeceed4bfd2869ec9b
|
|
This is because we build with warns as failures and possibly the rdp
backend loading isn't enabled.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia184b1a6fa2ec25b07329f10777c9d47451d53fe
|
|
We've added split type of functionality with support for loading the RDP
backend, such that this warrants an version update as well.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I28e35f53bb1d9a9d3deed204596bd8ef090cb579
|
|
From the ini configuration file.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I12e47844771494f72db5e387d468bef70ceb5edf
|
|
Apparently, erase() would make the iterator invalid so we need grab
the next one to have the work correctly.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I290fa1231eb6b37ab63c5f5c0bd8fe90d4363a77
|
|
Similar to Weston this loads the backend-rdp shared library.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib4e1d408fbb7e1eb0a09135c85a3275d424f7015
|
|
And with it also handle the re-mapping/unmapping of previous active
window such we don't run into weird behaviours, and be able to revert
back to the original output dimensions when going back to normal
windows.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I3703de998b0baa8a2b9d72276dcd56b315d3ca1a
|
|
This continues implementing the sticky window functionality to
be able to keep a window, set as sticky, always displayed while
having the ability to activate/switch to other windows.
This could be useful in a handful of sitauations like keeping the nav
application on, while activing other windows.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I94c835c0d8f9f7e334e4c75389d78bd267b71a87
|
|
This adds support for passing by the width argument such that users can
specify the width dimensions of the split window. Given that we might
another previous active window we also need to split that accordingly
depending on the orientation.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I39239c1af0358eaa671146d0f36a3a334e945067
|
|
If that window is a background one, this patch avoids doing that. The
background surface role needs to always be available. Discovered while
testing it out with flutter embedder.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia46b7ae590ea4feafa8a67efeb8ad540f6d2dfa0
|
|
This allow to further customize how to handle the split window.
There's no implementation in the compositor for allow this functionality
to take place, but doing so can be at a later point in time.
Tagging the split window as sticky should allow activation of other
windows while keeping the split window always displayed.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iae4d18d2a857497c11d0e77bf43f654e2b8ed501
|
|
It might be useful in the future to let clients choose how much of the
window to split so allow passing that. Note that there's no actual
implementation but if there's a need in the future it can be easily
added so it's better to add this now.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I82f36e86f56b0a65cbacac8368b63f68df69a350
|
|
This change would reset to default (none) orientation when activating a
different window, than those split and currently active.
The use-case is that when activating a different window all previous
split ones would reset to their original state (none orientation), such
that when the user tries to activate any former split windows it would get
the window without being split plus the other active window in the same
time. IOW going back and activating an former split window would also
display the other window which would complicate things a bit.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I315d42b656962bf3f68f140466ab58429a0e972c
|
|
Going back to regular, with a none orientation would allow to re-activate the
window. This wouldn't happen because we haven't been able to reset
the active window
Keeps things sane for the user and would allow navigating back to
those windows. Further patches should improve and avoid this entirely if
the split window is sticky.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic2cc7fd2839f5a664957d3f111c400559d93cf3f
|
|
Rather than guessing why the windows do not activate.
Found some use cases where this would be useful to be explicit.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I65383f8b3467f3b3093786907b194dce3cf635af
|
|
This adds an implementation for it and includes the output name,
previously being missed.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I95181adebe1ff6cddf81796444774277fec28a9a
|
|
This introduces a new set_split request to allow changing the tile
orientation of the window. See the protocol XML for more implementation
details.
Of importance difference from the previous implementation is that
this patch makes use of the xdg-shell protocol, such that orientation
is being handled over the configure event to the client.
The protocol specifies a width to allow the client to control how much
of the output be assign the split window and also a sticky window
functionality.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia8b7d04a7514f55d647c3ea76b13bab51a3586aa
|
|
Add template files for gitlab
Bug-AGL: SPEC-4474
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Change-Id: I811994c1179932fe83a6b5f1ceb674f65ec1c568
|
|
Deactivating fullscreen is a special case so we need to handle it
similarly to dialog/popups.
This adds an additional schedule for repaint in the fullscreen part to
force a redraw, otherwise deactivation/activation would need to inflict
any sort of damage to trigger a redraw.
Bug-AGL: SPEC-4348
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I258543f43514af07dfed7b36531816e90561cc61
|
|
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib26d0b9f9d47e7d2e2d42b47a9702ba31d03f3b9
|
|
This bigger patch changes the way gRPC proxy client connects to the
server, more specifically how it binds to the same agl_shell interface
as the shell client.
I debated if this should be split into more pieces but I think it makes
more sense to have contained into a single patch as it doesn't make
sense to have some bits off and some bits on, as both the server and the
client side need to be changed at the same time.
This biggest change with this patch is to avoid a potential race condition
between the gRPC proxy client and the shell-client, but also to simplify
the way the gRPC client connects to the server as there aren't sufficient
guards in the server to the provent various corner cases to take place.
Rather than attempting to fix that, simplifying the entire bit and
allow only a single agl-shell client and a sigle gRPC proxy client
connected at a single time and remove any other potential clients
trying to connect at all, later on.
Context and usage:
Both the gRPC proxy and shell-client bind to the same agl_shell
interface, meaning that both use the shell-client (homescreen,
flutter-ics-homescreen, flutter-auto, wam) and the gRPC proxy can
issue agl_shell requests, with some minor differences --
setting background and panels which do not make sense for
gRPC proxy client.
The compositor can signal back to clients when a bind was OK or
not with the bound_ok/bound_fail event. Previously to
adding the bound_ok/bound_fail events, any other client trying to use
agl_shell interface, more than once, would get a protocol violation.
With the bound_ok/bound_fail events clients would instead receive this
event and could theoretically act upon it.
The race that this patch tries to overcome is that the gRPC client will
periodically attempt to verify if there's a shell-client already
connected to server by binding to agl_shell interface and waiting for
bound_fail event. In case it got bound_ok, it would disconnect and
attempt at latter point in time, until it got the bound_failed event, and thus
signalling that there's shell client already connected, allowing to
proceed further.
This worked fine most of the time, depending on how fast the shell
client also bind to agl_shell. For a brief period of time, it might be
that shell client also gets a bound_fail, requiring it to retry at a
later point in time. The disconnected/reconnect of the gRPC proxy would
then complicate matters as the client resources will get overwritten. So
rather than trying to try that fix that, a better approach is to
simplify the way this works entirely.
The change in this patch is that the gRPC proxy doesn't
connect/disconnect periodically but rather it waits for the compositor
to signal when it is ready to bind to agl_shell interface.
That happens with the help of the doas event status, from the
agl_shell_ext interface. If this event status is alright (OK) then it means
the gRPC can then bind to agl_shell interface.
If it gets a failed status it would just wait and then issue another
doas request and continue as such forever until it got an alright
status. The distinct is that in this case the gRPC proxy would not disconnect
and then reconnect retrying the same thing.
This change to simplify some of the assumption in server, and
client side implementation would just race with the shell client when
binding to the agl_shell interface.
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib74f789553d3b130ee8e61d0068e617dc2209a58
|
|
And make sure we clear off the remaing client resources when doing an
unbind.
It seems we would hit it when checking set_background/ready/set_panel
requests, resulting in a protocol violation and finally terminating the
connection.
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie5ed881511ec2ac4501d2a5cac349abc7f83c1fe
|
|
This is unlikely to happen in practice, but discovered while doing a
code audit, so let's let be on the safe side and don't attempt to deref
as we'll get invalid memory.
Bug-AGL: SPEC-5018
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib874a7194ab3a7019a304ec4c1974824c78b26cc
|
|
We haven't add an official release since the beginning of the year, when
we introduced the gRPC API. So do another one, as we've changed a bit
the say the gRPC starts.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Idc2feace89a0cd77d1788e629fff9b5f2f443fce
|