Commit graph

289 commits

Author SHA1 Message Date
Simon Ser
6e8998c8a8 Add API to query candidate planes
This can be used to implement Wayland's linux-dmabuf-unstable-v1's
feedback mechanism.

Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/70
2023-02-15 18:20:22 +01:00
Simon Ser
62cd0aad09 test: add dynamic@change-fb-modifier 2023-02-15 18:14:13 +01:00
Simon Ser
ab72b0d5c6 Stop re-using a previous configuration when FB attributes change
If FB attributes change, we might be able to take advantage of a
plane we couldn't  use before.

Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/71
2023-02-15 18:14:13 +01:00
Simon Ser
a669c85be6 test/libdrm_mock: implement drmCloseBufferHandle() stub 2023-02-15 18:14:13 +01:00
Simon Ser
e03edeffba test/libdrm_mock: implement drmModeGetFB2()
By default, drmModeGetFB2() behaves as-if the kernel didn't support
the IOCTL. That way we don't need to update all tests to set sensible
FB info.

If a test is specifically interested in testing drmModeGetFB2()
behavior, it can call liftoff_mock_drm_set_fb_info().
2023-02-15 18:14:13 +01:00
Simon Ser
d39d1837fb test/libdrm_mock: add helpers to convert from/to object index
libdrm_mock's KMS object IDs record the type and index.
2023-02-15 17:56:50 +01:00
Simon Ser
e1ccdff079 build: set pkg-config URL 2023-02-15 11:50:33 +01:00
Simon Ser
97e0695932 build: remove unnecessary version param in pkgconfig.generate() 2023-02-06 11:20:24 +01:00
Simon Ser
363951a084 build: override Meson dependency
Eases use as a subproject.
2023-02-06 11:18:16 +01:00
Simon Ser
73c44aa52a readme: disambiguate short description a bit 2022-10-07 07:04:24 +02:00
Simon Ser
f83d81c91e readme: indicate which compositors use the library 2022-10-07 07:02:55 +02:00
Simon Ser
47b92cb22f Switch to kernel-doc style references in comments 2022-09-28 21:00:06 +02:00
Simon Ser
bcfca8f602 build: bump version to 0.4.0-dev 2022-08-18 09:18:44 +02:00
Simon Ser
c4488eeff9 build: bump to version 0.3.0 2022-08-18 09:17:49 +02:00
Simon Ser
9c84f7945a Introduce liftoff_layer_unset_property()
This can be used when a propperty doesn't have a default/no-op
value, such as COLOR_ENCODING and COLOR_RANGE.
2022-08-05 23:10:14 +02:00
Simon Ser
1d425f542c plane: ignore pixel blend mode when set to Pre-multiplied
This behaves the same when the property isn't supported.
2022-08-03 23:00:13 +02:00
Simon Ser
4d6989b389 plane: ignore FB_DAMAGE_CLIPS if plane is missing prop
Reporting the damage is optional, if the driver doesn't expose the
prop it means it doesn't care about damage.
2022-08-03 22:55:35 +02:00
Simon Ser
0ce48717b4 plane: ignore SCALING_FILTER when set to Default
This behaves the same when the property isn't supported.
2022-08-03 22:55:33 +02:00
Simon Ser
79f1647d67 ci: turn off tar verbosity when compressing coverage report 2022-07-27 09:08:00 +02:00
Simon Ser
1eb42e264e ci: enable meson --fatal-meson-warnings
And remove unnecessary -Dauto_features=enabled, since this library
doesn't have any feature options.
2022-07-27 09:07:05 +02:00
Simon Ser
091511af44 ci: build with ASan 2022-07-27 09:05:01 +02:00
Stephan Lachnit
dd154d6914
build: set c_std to c11
This follows https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/249 and fixes a pedantic warning when including libdrm as wrap.

Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2022-07-26 10:25:49 +02:00
Stephan Lachnit
493685ff1b
test: add includes to partial drm dependency
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2022-07-26 10:24:12 +02:00
Simon Ser
4a42a1a6a9 build: fix library version
Fixes the following error:

    ../meson.build:31:0: ERROR: Invalid Shared library version "0.3.0-dev". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.
2022-05-24 12:23:01 +02:00
Simon Ser
8a95d52890 build: bump version to 0.3.0-dev
Makes it clear this is a development version. See [1].

[1]: https://github.com/swaywm/sway/pull/6730
2022-05-24 12:15:11 +02:00
Simon Ser
ac919002ca build: bump version to 0.3.0 2022-02-10 13:57:06 +01:00
Simon Ser
378ccb4f84 test/alloc: add zpos-3x-zero-alpha
References: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/59
2022-01-31 14:29:16 +01:00
Simon Ser
223e288ae6 test/alloc: add zpos-3x-zero-fb-id
References: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/59
2022-01-31 14:26:20 +01:00
Simon Ser
b9ca919009 Ignore invisible layers in layer_intersects
Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/59
2022-01-31 14:25:54 +01:00
Simon Ser
7a06f8c597 test/alloc: rename composition-zero-fb-id to composition-no-props
This is more consistent with other test names.
2022-01-31 14:05:58 +01:00
Simon Ser
3004a0dcbd test/alloc: move zero-fb-id-fail to test data 2022-01-31 14:03:47 +01:00
Simon Ser
998d8c6a59 test/alloc: drop test_needs_composition logic
This was fine for simple test cases, but would need to become
more complicated for cases where e.g. zero FB_ID or alpha is
involved. Let's just hardcode the expected value in the test data
instead.
2022-01-31 14:00:20 +01:00
Simon Ser
61a8b85059 test/alloc: pass full test_case to run_test
More metadata will be added to the test_case struct soon.
2022-01-31 14:00:20 +01:00
Simon Ser
addeaf6097 test/alloc: replace test_layer.zpos with test_prop
This allows setting arbitrary props.
2022-01-31 13:39:47 +01:00
Simon Ser
32f97b1c51 test/alloc: check test_layer.compat length
Avoid iterating past the array bounds as a safety net. We should
have more than enough room for now, but let's make sure we don't
get caught.
2022-01-31 13:30:45 +01:00
Simon Ser
3ced3be25a test/alloc: make test data const
We should never mutate the test data.
2022-01-31 13:29:58 +01:00
Simon Ser
2e1dd93b60 test/alloc: add zpos-2x-fail 2021-12-14 18:57:04 +01:00
Simon Ser
1db99c213c test/alloc: add zpos-2x-reverse 2021-12-14 18:57:04 +01:00
Simon Ser
76f456d62e Check layers zpos over the primary plane
The following commits contain tests for the pathological cases.
2021-12-14 18:57:04 +01:00
Simon Ser
40ba530616 ci: add .gitlab-ci.yml 2021-12-14 17:05:49 +01:00
Simon Ser
28d074e5ab ci: drop py3-setuptools from Alpine packages
The upstream bug has been fixed.
2021-10-25 15:16:23 +02:00
Simon Ser
6166e23127 Migrate to gitlab.freedesktop.org 2021-10-25 15:01:58 +02:00
Simon Ser
b7a6958bca ENOSPC is not fatal for test-only commits
drm_atomic_plane_check may return it for an invalid SRC coord.
2021-10-08 13:00:40 +02:00
Simon Ser
70eca070b6 Make plane_get_property static 2021-09-30 14:57:19 +02:00
Simon Ser
408b6e5463 test/test_prop: add unmatched test case
Add a test case where the plane doesn't have a property set on the
layer.
2021-09-30 14:54:33 +02:00
Simon Ser
aa30b8fb97 Log number of atomic test-only commits 2021-09-30 09:41:39 +02:00
Simon Ser
bc0d0617ac Remove test/include/
Let's just put header files in test/, no need for a separate subdir.
2021-08-13 22:04:28 +02:00
Simon Ser
32683879e7 Add newline after function return type
Aligns our style with Linux' and Weston's.
2021-08-13 22:02:33 +02:00
Simon Ser
120ad6fb73 build: turn on additional warnings
Functions without a prototype can be static, we don't want to deal
with alloca, and undefined definitions should be tested with #ifdef.
2021-08-13 15:40:35 +02:00
Simon Ser
447a9e8921 Document why the primary plane is a special case
For instance, i915 requires the primary plane to be enabled.
2021-08-13 12:38:05 +02:00