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
Simon Ser
8a971695bd
test: introduce liftoff_mock_require_primary_plane
...
This allows to mimick i915's requirement of failing all commits
which don't have the primary plane enabled.
We could expand our test matrix to test with the param *and* without
it, but since enabling the param just makes the atomic check more
strict there's no real benefit of doing that. Enabling the param
can only make tests fail more often, not the other way around.
2021-08-13 12:28:13 +02:00
Simon Ser
149e149643
Improve alloc debug logging
...
Don't increase indent when skipping a plane. Better indent layer
and plane logs.
2021-08-13 09:23:16 +02:00
Simon Ser
8360818a7e
Zero-initialize alloc_step and alloc_result
...
Avoids having to deal with uninitialized memory issues.
2021-08-12 19:30:34 +02:00
Simon Ser
cc3eec82fd
Print alloc debug logs as a tree
...
The allocation process explores a tree, let's represent that tree
in the debug logs.
2021-08-12 19:27:17 +02:00
Simon Ser
f88df73fad
Log when a test-only commit fails
2021-08-12 19:12:08 +02:00
Simon Ser
b941c3eb03
Log number of layers in output_log_layers
...
This can help figuring out if there are disabled layers.
2021-08-12 18:36:52 +02:00
Simon Ser
8f8c4d18a5
test: make sure NDEBUG is not defined
...
If NDEBUG is defined, then assert() becomes a no-op. Make sure it's
not.
2021-08-12 18:15:50 +02:00
Simon Ser
fe76702dfb
Log number of candidate planes
...
This can be useful to figure out why liftoff_output_apply returns
an empty plane allocation.
2021-08-09 13:08:48 +02:00
Simon Ser
30ba835645
Log when no layer has been a plane
2021-08-09 12:58:35 +02:00
Simon Ser
9a6a7aaa87
Make fp16_to_double static
...
This prevents this internal symbol from being leaked in the
library's symbol table.
2021-08-09 12:50:32 +02:00
Simon Ser
7f07d398d1
Improve prop value pretty-printing in output_log_layers
...
Always print the sign when logging a signed value. Print the
full floating point value when logging an fp16 prop. SRC_X amd
SRC_Y are fp16 too.
2021-08-09 12:48:30 +02:00
Simon Ser
6321e7c5aa
Add needs_composition APIs
...
Right now, compositors are expected to query liftoff_layer_get_plane_id to
decide whether a layer needs to be composited.
However there are cases where a layer has no plane, but still doesn't need
composition (e.g. when FB_ID is zero or when alpha is zero, in the future when
the layer is out of CRTC bounds etc).
Add a new API to make users' life simpler.
Closes: https://github.com/emersion/libliftoff/issues/54
2021-08-09 11:56:55 +02:00
Simon Ser
87e5dcfe72
build: bump version to 0.2.0
2021-08-09 11:29:05 +02:00
Simon Ser
89c1d37547
Make liftoff_layer_set_property return negative errno
...
This allows the caller to check for errors.
2021-08-09 11:27:08 +02:00
Simon Ser
516cf9404d
Stop including stdbool.h from libliftoff.h
...
We don't use bool there anymore.
2021-07-30 16:22:58 +02:00
Simon Ser
f5a2b541ce
Make liftoff_device_register_all_planes return an int
...
For consistency with liftoff_output_apply.
2021-07-30 16:19:29 +02:00
Simon Ser
61fd4c099a
Make liftoff_output_apply return an int
...
Callers may want to get more details about the failure, in
particular EPERM indicates that the user isn't DRM master (can
happen on VT switch).
2021-07-27 12:28:00 +02:00
Simon Ser
a58b638736
build: bump version to 0.1.0
2021-07-01 14:34:53 +02:00
Simon Ser
37a5f27e89
readme: link to the example/ dir
2021-07-01 13:24:28 +02:00
Simon Ser
2e4254b124
readme: link to compositor guidelines
2021-07-01 13:23:26 +02:00
Simon Ser
b94f1e104f
doc/compositor: new document
2021-07-01 13:20:46 +02:00
Simon Ser
326c8d67ad
Fixup reference to liftoff_layer_get_plane_id in docs
2021-07-01 13:14:23 +02:00
Simon Ser
f1c2ac1981
readme: update short description
2021-07-01 11:55:25 +02:00
Simon Ser
27614202d2
readme: add missing liftoff_device_register_all_planes call
2021-07-01 11:52:58 +02:00
Simon Ser
bcb6e3cfb8
Replace liftoff_layer_get_plane_id with liftoff_layer_get_plane
...
Users can get back the plane ID with liftoff_plane_get_id.
2021-07-01 11:49:36 +02:00
Simon Ser
8260fa67d7
Introduce liftoff_plane_get_id
...
This allow users calling liftoff_device_register_all_planes to
easily figure out what a liftoff_plane represents.
2021-07-01 11:39:52 +02:00
Simon Ser
562f8b0af6
Allow to choose which planes are managed by libliftoff
...
Closes: https://github.com/emersion/libliftoff/issues/10
2021-07-01 11:37:10 +02:00
Simon Ser
1616f8ae6a
test/alloc: document test_layer and test_setup
2021-06-24 19:05:01 +02:00
Simon Ser
799dddd6c4
ci: drop codecov
...
Instead generate the HTML reports ourselves, and rely on builds.sr.ht
artifacts.
2021-04-30 10:17:59 +02:00
Simon Ser
b08bbaa5e6
Split liftoff_log_init into set_handler and set_priority
...
This allows callers to change only one of those, without the other.
Also rename importance to priority and func to handler.
2021-03-31 12:44:24 +02:00
Simon Ser
12eb851a40
readme: reference the example/ dir
2021-03-29 17:39:25 +02:00
Simon Ser
c4ef21af35
Move layer_is_visible to layer.c
2021-02-24 11:40:01 +01:00
Simon Ser
470af77869
Rename pkg-config file to "libliftoff"
2021-02-24 11:01:23 +01:00
Simon Ser
88eb35b084
build: remove libraries keyword arg from pkgconfig.generate
...
This fixes the following warning:
../subprojects/libliftoff/meson.build:53: DEPRECATION: Library liftoff was
passed to the "libraries" keyword argument of a previous call to generate()
method instead of first positional argument. Adding liftoff to "Requires"
field, but this is a deprecated behaviour that will change in a future
version of Meson. Please report the issue if this warning cannot be avoided
in your case.
2021-02-24 10:59:23 +01:00
Simon Ser
27462556db
Document that liftoff_device_create takes ownership of the FD
2021-02-23 18:10:47 +01:00
Simon Ser
fbc4cf8dba
Stop enabling UNIVERSAL_PLANES
...
UNIVERSAL_PLANES is implicitly enabled by ATOMIC. No need to require both.
2020-12-22 15:06:13 +01:00