This repository was archived by the owner on Oct 25, 2021. It is now read-only.
Releases: emersion/libliftoff
Releases · emersion/libliftoff
0.1.0
libliftoff v0.1.0
This is the first release of libliftoff.
libliftoff is still an experimental library, no guarantees are made
regarding the stability of its API.
Jan Beich (2):
test: bump POSIX version for CLOCK_MONOTONIC
build: ignore warnings in libdrm headers
Matt Hoosier (1):
example: improve CRTC search algorithm
Roman Gilg (7):
Log re-use only on change
Log layer priority only on change
Add log verbosity helper
Skip layer debug early
Indent log on property applying and layer assignment
Respect implicit type on layer props log
Omit logging inactive layer information
Simon Ser (162):
Initial experiments
Add README
Add LICENSE
Add missing static qualifiers
Disable unused planes
Reset all mappings in hwc_display_apply
Don't pick a busy plane in layer_choose_plane
Add another layer to the example
Disable all planes before building the mapping
Better hwc_display_apply error handling
Add basic docs
Iterate over layers in example
Change planes to be a linked list instead of an array
Basic brute-force plane allocation
Reset best allocation to NULL
Check plane is compatible with CRTC
Guess zpos from plane type
Add support for reading immutable plane zpos
List planes by allocation order
Don't assign layer to plane if missing props
Extract allocation arguments to a struct
Fix early bailout when we already have a better allocation
Add basic support for zpos
Rename library to liftoff
Fix segfault when dup fails in liftoff_display_create
Add test framework
Use PRIu32 for printing plane IDs
test: mock atomic commit improvements
test: add liftoff_mock_drm_get_plane
test: introduce structured alloc tests
test: fix atomic commit layer compatibility
test: add an alloc test with 3 layers
test: add basic zpos tests
test: add various zpos tests
test: make our mock drmModeAtomicReq support more properties
Make composited layers prevent plane allocation underneath
test: add alloc@zpos-4x-domino-fail
test: add alloc@zpos-4x-domino-partial
Move composited layer on top constraint up
Document how plane allocation works
Extract plane_data init logic to function
test: prevent layers from being assigned to primary plane
Add layer_intersects
Add intersection checks for composited layer on top check
Add intersection check for planes under the current one
Remove last_plane_zpos from plane allocation state
ci: add .build.yml
Fix format string in liftoff_display_apply
test: add zpos-4x-disjoint-alt
Add intersection check for layers over the current one
Rename on_top to over
Rename plane_alloc and plane_data
readme: add basic usage
Move example to its own directory
Unset CRTC_ID on planes before plane allocation
example/simple: disable CRTCs we don't use
example: extract helpers into separate file
example: refactor dumb FB helper
example/simple: don't hardcode number of layers, use white background
example/compositor: new example
readme: add missing variable decl in example
example/compositor: add flag to specify number of layers
Add opaque structs forward declaration in libliftoff.h
Add logging functions
readme: add CI badge
Add liftoff_output_set_composition_layer
example/compositor: take advantage of the composition layer
test: add composition tests
Split plane functions into a separate file
example/compositor: handle out-of-bounds coords when compositing
Add TODO about remaining plane counting optimization
ci: add codecov
test: refactor build
test: add liftoff_mock_commit_count
Extract plane allocation constraints in functions
example: add a description of each example
Track layer property changes
example: add dynamic example
test: add a dynamic test
readme: add link to intro blog post
Introduce display_test_commit
Introduce liftoff_log_errno
Move plane allocation algorithm to alloc.c
Add build-* to .gitignore
example/multi-output: new example
test: add a new test for layer priority
Remove outdated TODO
log: reset log callback to default when NULL is passed
test: add benchmark
test/libdrm_mock: bump resource limitations
Keep track of the update frequency of each layer
Rename display to device
Fixup display → device bulk rename
Don't re-use previous allocation if a layer has been removed
Replace liftoff_device_apply with liftoff_output_apply
Rename display.c to device.c
test: add empty test
test: make mock drmModeAtomicAddProperty return cursor
Unset plane->layer and layer->plane on destroy
Fix DEBUG logs printed when level is set to ERROR
Don't re-use prev alloc on composition layer change
Remove chatty debug log
Log layer configuration before alloc
Add a way to force FB composition
Fix segfault when FB_ID isn't set
Don't allocate planes for layers without a FB
test: add a test with a layer without any prop set
test: add a test with a zero FB_ID
Allow NULL to be passed to destructors
Fix format string for plane ID
test/libdrm_mock: a test-only commit applies properties
Move device_test_commit to device.c
Retry atomic commit on EINTR and EAGAIN
build: install public header file
readme: add contributing section
readme: add link to FOSDEM 2020 talk
Print composition layer in logs
Replace assert(0) with abort()
test: add internal mutable prop list
test: allow to attach props to mock planes
Add support for the alpha property
test: add test for alpha prop
Add support for the rotation property
test: a test-only commit doesn't apply properties
test/libdrm_mock: add prefix to logs
Take disabled layers into account in non_composition_layers_len
Don't pick a plane for fully transparent layers
test: add test with fully transparent layer
ci: add freebsd CI
Allow caller to pass commit flags
Remove DRM_MODE_PAGE_FLIP_EVENT from commit flags
example: fix exit status after failed drmModeAtomicCommit
test: refactor dynamic test
Force re-alloc when setting FB to 0
Replace liftoff_layer_property.changed with prev_value
Force re-alloc when previous FB_ID was 0
test: add dynamic unset-fb and set-fb tests
Don't re-alloc on IN_FENCE_FD change
Don't re-alloc when alpha changes
Don't re-alloc when FB_DAMAGE_CLIPS changes
test: add missing plane alpha prop to prop@ignore-alpha
test: add test with immutable zpos plane props
Improve doc comments
Stop enabling UNIVERSAL_PLANES
Document that liftoff_device_create takes ownership of the FD
build: remove libraries keyword arg from pkgconfig.generate
Rename pkg-config file to "libliftoff"
Move layer_is_visible to layer.c
readme: reference the example/ dir
Split liftoff_log_init into set_handler and set_priority
ci: drop codecov
test/alloc: document test_layer and test_setup
Allow to choose which planes are managed by libliftoff
Introduce liftoff_plane_get_id
Replace liftoff_layer_get_plane_id with liftoff_layer_get_plane
readme: add missing liftoff_device_register_all_planes call
readme: update short description
Fixup reference to liftoff_layer_get_plane_id in docs
doc/compositor: new document
readme: link to compositor guidelines
readme: link to the example/ dir
build: bump version to 0.1.0