- Feb 06, 2024
-
-
Add a few tests ensuring the box32 quad clipping wrapper works as expected. Signed-off-by:
Loïc Molinari <loic.molinari@collabora.com>
-
The non-zero area check of clipper_quad_clip() is incorrect for quads initialized with a polygon starting with a vertical edge. In order to handle polygons starting with an horizontal edge and polygons starting with a vertical one, it must check opposite vertices for equality. The test previously described as "Box intersects entire smaller aligned quad" is now described as "Clockwise winding and top/left initial vertex". This test keeps the same values as before but all combinations of winding order and first edge orientations are also tested. The QUAD() macro isn't used anymore to do so. Signed-off-by:
Loïc Molinari <loic.molinari@collabora.com>
-
Add quad clipping tests checking intersections at all edges and corners of axis-aligned and unaligned quads with negative and positive values. Signed-off-by:
Loïc Molinari <loic.molinari@collabora.com>
-
Simplify box and quad declarations using dedicated macros. Hard-coded literals are used instead of preprocessor constants for the sake of brevity and because, as several new tests will be added, it appears to be easier to understand those when values are inlined. Descriptions have been revised to better understand the intent of each test. Previous descriptions used a coord system with Y pointing up, new descriptions use Y pointing down in order to improve consistency with the rest of the code base and to have a common ground when talking about winding order. All the tests keep the same input values with the exception of the last 2 tests with (new) descriptions: "Rotated quad with edges adjacent to box corners" and "Rotated quad with edges cutting out box corners". These tests had a different winding order and have been modified so that all tests use a clockwise order (new axis convention). The last test also gets a counter-clockwise version in order to ensure the opposite winding order is correctly supported too. Signed-off-by:
Loïc Molinari <loic.molinari@collabora.com>
-
When the first vertex passed to the clipper is clipped into two vertices, the second vertex can sometimes be emitted as the first clipped vertices while the first vertex is emitted as the last one. A new utility function assert_vertices() is added to handle that case. The function also checks the number of clipped vertices and the clipped vertices in one go. Signed-off-by:
Loïc Molinari <loic.molinari@collabora.com>
-
- Feb 02, 2024
-
-
JeffyChen authored
The fullscreen should take precedence if the client requests both window states at the same time. Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com>
-
- Feb 01, 2024
-
-
A possible solution to warn out users that messages will be dropped otherwise. Fixes: #858 Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
- Jan 30, 2024
-
-
There is a typo in the call to `zwp_input_method_context_v1_modifiers`: the `mods_latched` and `mods_locked` arguments have wrong values. Fixed by forwarding the correct masks. Signed-off-by:
Pierre Le Marre <dev@wismill.eu>
-
- Jan 29, 2024
-
-
Pekka Paalanen authored
I want re-use this variable for printing the colorimetry mode list as well in a future patch, so a generic name is less confusing. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
Performance-wise this is moot, but since we are detecting if the raw EDID data changed, might as well use it. Now we have a path where the head's device_changed is almost guaranteed since EDID changed, and that's useful for the next patch. We can only do this, because the core initializes a head with values that we would be setting anyway when EDID is missing, e.g. disconnected head on compositor start-up. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
Store the EDID data as-is, so that we can tell when the EDID blob has changed. This is not too useful yet, because all the weston_head_set_*() API raises the device_changed flag only if the information actually changes. However, I want to expose the libdisplay-info di_info structure through weston_head, and those cannot be (as) easily compared. We need to know when the EDID blob changes, so we can call weston_head_set_device_changed() appropriately when updating di_info. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Jan 26, 2024
-
-
Pekka Paalanen authored
One of the three fixture setups of alpha-blending test requires color-lcms.so. If color-lcms.so is not built, that fixture fails. Make it skip as necessary, making the test suite pass with color-management-lcms=false build option. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Pekka Paalanen authored
This is very trivial test, which does not skip correctly when built with color-management-lcms=false. It fails instead. Since alpha-blending test already covers everything that color-manager test did, remove color-manager test. My editor eliminated a stray whitespace, too. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Added an entry with examples into the man page and also into frontend/main.c for the '--help' interface. Signed-off-by:
Nicholas Niro <blowfist@xroutine.net>
-
This command is being executed in parallel with the westen instance, just like the autolaunch config. I recently came across the kiosk-shell and found out I could start a program exclusive weston instance using it and that opened my eyes to new possibilities. With the desktop-shell, it is necessary to set up quite a few options like the panel launchers, the background image/color and a few other things and that indeed make the configuration file mandatory. With the kiosk-shell all you really care about is the underlying program, the vast majority of the configuration file options are not relevant for that shell. That made me wonder how convenient it would be to forego the configuration file and implement the autolaunch option directly in the weston program. That indeed worked pretty well and that is why I decided to propose this merge request. I think this avenue opens up a different set of uses cases for weston where rather than just have one "big" desktop-shell instance, we could have multiple smaller and potentially specific usage instances. Yes, it can be done with configuration files currently. But what it boils down to is convenience. Maybe this convenience will enable other people to start more than just one weston instance in the future. For instance, to quickly watch an image or opening up a pdf file. This patch was made in a matter that is meant to be consistent with the intuitive way other programs accept a command input, like so : weston <some options> -- some_command option1 ... optionN Further work would be necessary to remove the requirement for the '--' option. To do that, we would need to check if the option is a valid command and not just a mistyped option. There may be some conflict with the current autolaunch implementation. I'm not sure if both 'command' and 'autolaunch' could be used at the same time using this implementation. I think it would be necessary to have a distinct watch and pid variable in the 'wet' context variable for the command to support this. Signed-off-by:
Nicholas Niro <blowfist@xroutine.net>
-
This toggles parse_options to ignore the rest of the remaining options. Signed-off-by:
Nicholas Niro <blowfist@xroutine.net>
-
- Jan 25, 2024
-
-
Dylan Aïssi authored
Signed-off-by:
Dylan Aïssi <dylan.aissi@collabora.com>
-
Dylan Aïssi authored
Signed-off-by:
Dylan Aïssi <dylan.aissi@collabora.com>
-
Dylan Aïssi authored
Signed-off-by:
Dylan Aïssi <dylan.aissi@collabora.com>
-
- Jan 22, 2024
-
-
Robert Mader authored
Just like we already do for planes with proper zpos. Otherwise we'll often end up choosing the primary plane instead of an overlay one in `drm_output_find_plane_for_view()`. Signed-off-by:
Robert Mader <robert.mader@collabora.com>
-
This seems to think formats needs to be NULL terminated, but it doesn't and gl_renderer_get_egl_config asserts that all formats_count elements are not NULL. This happens when EGL_KHR_no_config_context is not supported. Signed-off-by:
Ray Smith <rsmith@brightsign.biz>
-
- Jan 19, 2024
-
-
Robert Mader authored
It adds the followig paragraph: ``` Starting from version 5, the invalid_format protocol error is sent if all planes don't use the same modifier. ``` We already assumed this in some places and, most importantly, it's required by the kernel. Thus alter `dmabuf_attributes.modifier` to make it clear that different modifiers for multi-planar dmabufs were never supported. Signed-off-by:
Robert Mader <robert.mader@collabora.com>
-
Robert Mader authored
Signed-off-by:
Robert Mader <robert.mader@collabora.com>
-
- Jan 16, 2024
-
-
JeffyChen authored
We should use the actual stride to create tmp pixmap. Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com>
-
JeffyChen authored
The gl_renderer_do_read_pixels() is expecting stride in bytes. Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com>
-
- Jan 15, 2024
-
-
commit 79212ba9 fixed a bug by introducing a new one. Before that point we could clip paint node damage to stale visibility data. After that point we post damage for occluded views, leading to large amounts of pointless drawing. Add back the clip to visible region, in weston_output_flush_damage_for_plane(), where we have up to date visibility region information. fixes 79212ba9 Signed-off-by:
Derek Foreman <derek.foreman@collabora.com>
-
This used to not be a problem as both `struct stacking` and `struct window` start with a pointer to `struct display`. Signed-off-by:
Colin Kinloch <colin.kinloch@collabora.com>
-
- Jan 12, 2024
-
-
If client changes the buffer transform or size and re-commit the surface before surface dirtys buffer (weston_surface_attach), the viewport source validity check may fail. Because the width_from_buffer and height_from_buffer cannot be updated based on new buffer transform. Therefore, add the situation of size dirty (WESTON_SURFACE_DIRTY_SIZE) to source validity check, width_from_buffer and height_from_buffer can be updated in time when the buffer transform and scale change. Signed-off-by:
Chao Guo <chao.guo@nxp.com>
-
The `drm_output_deinit` should use the drm device passed by the function, should not use the `b->drm` device. Signed-off-by:
Zhou Liang <174381115@qq.com>
-
If both the head and writeback are not found, then we should add connectors to the drm device passed by the function, not the b->drm device. Signed-off-by:
Zhou Liang <174381115@qq.com>
-
In a multi-GPU environment, different cards may contain connectors with the same ID, and drm_head_find_by_connector just use the connector_id to find the connector, it may find the wrong connector. Fix this by find the connector based on the drm device and connector id. Signed-off-by:
Zhou Liang <174381115@qq.com>
-
- Jan 11, 2024
-
-
Robert Mader authored
If a view is non-opaque - such as an overlay over a video - we shouldn't force it to be on the primary plane, as that's where the underlying content should be placed, such as the video view. dc0de9ee already mentioned: "This check should be changed in future to only filter for opaque views, but that's for another time." Adding "Fixes" at this is arguably a bug fix: Fixes: dc0de9ee (backend-drm: Move overlay vs. primary plane check earlier) Fixes: 2538aacc (backend-drm: Construct a zpos candidate list of planes) Signed-off-by:
Robert Mader <robert.mader@collabora.com>
-
- Jan 10, 2024
-
-
Derek Foreman authored
Currently we flush damage for the "primary plane" every repaint, but this is folly. The drm backend may skip rendering entirely if using an all-planes composition. This could leave the renderer plane in a messy state if a surface on an overlay plane disappears. Instead, let the backends flush the primary plane damage when they know they need to render. Fixes #864 Signed-off-by:
Derek Foreman <derek.foreman@collabora.com>
-
- Jan 09, 2024
-
-
Marius Vlad authored
And with it, bump libweston to next major version, 14. We seems like we never used that argument so better just removed it. Signed-off-by:
Marius Vlad <marius.vlad@collabora.com>
-
- Jan 05, 2024
-
-
JeffyChen authored
The idle_animation_destroy task should be removed when destroying animations by the other callers such as handle_animation_view_destroy(). Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com>
-
- Dec 18, 2023
-
-
Otherwise shseat->focused_ivisurf can point to deleted memory. This does not happen with the hmi-controller because it explicitly assigns a new focused surface. But the ivi-shell should not relay on the controller here. Signed-off-by:
Michael Olbrich <m.olbrich@pengutronix.de>
-
Latest musl has removed the declaration from string.h [1] as it only implements POSIX version alone and string.h in glibc implements GNU version of basename. This now results in compile errors on musl. This might be a warning with older compilers but it is error with Clang-17+ as it treats -Wimplicit-function-declaration as error Switch the use in backlight_init function to use POSIX version [1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 Signed-off-by:
Khem Raj <raj.khem@gmail.com>
-
"Frontend" is a much more descriptive name for the code that is in the directory called "compositor". Fixes: #633 Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
Looks like these don't actually need it. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-
- Dec 15, 2023
-
-
Pekka Paalanen authored
This was added in 4def21c1. 0c1ab2ad removed all uses of NULL weston_compositor, making the workaround unnecessary. Drop the workaround, it's dead code. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.com>
-