Commit graph

68 commits

Author SHA1 Message Date
Simon Ser
dac885222b
Add support for reading immutable plane zpos
If zpos is present, instead of guessing the zpos from the plane type, just use
it. If two planes have the same zpos, we consider their relative position as
undefined.

We don't handle the case where some planes have zpos set but some others don't.

References: https://github.com/emersion/libhwc/issues/4
2019-09-09 19:46:44 +03:00
Simon Ser
42db49c6fe
Guess zpos from plane type
Many drivers don't expose the zpos plane property. We can guess it from the
plane type though: primary, overlay, cursor. Except some drivers expose
underlays too: underlays, primary, overlay, cursor. Underlay planes don't have a
special type, they are just marked as overlays. To detect them, check whether
their plane ID is less than the primary plane ID.

References: https://github.com/emersion/libhwc/issues/3
2019-09-08 18:33:09 +03:00
Simon Ser
d90d7bdc36
Check plane is compatible with CRTC
This allows us to rule out some potential solutions.

Closes: https://github.com/emersion/libhwc/issues/2
2019-09-08 17:41:25 +03:00
Simon Ser
66bedbc854
Reset best allocation to NULL
Without this, if no allocation has been found, garbage will be read from
alloc.best.
2019-09-08 17:39:55 +03:00
Simon Ser
b3eb0e323c
Basic brute-force plane allocation
This is the very first complete allocator. There are many things that can be
improved, but at least it works.

Closes: https://github.com/emersion/libhwc/issues/8
2019-09-08 16:32:38 +03:00
Simon Ser
165d013b80
Change planes to be a linked list instead of an array
We'll need this anyway when we allow users to choose which planes to give us.
Let's not start building algorithms on top of arrays.
2019-09-08 15:26:50 +03:00
Simon Ser
14848bb802
Iterate over layers in example 2019-08-23 19:49:56 +03:00
Simon Ser
c3f546328e
Add basic docs 2019-08-23 19:37:53 +03:00
Simon Ser
7bea0c7bf7
Better hwc_display_apply error handling 2019-08-23 19:27:13 +03:00
Simon Ser
1ca4a03224
Disable all planes before building the mapping 2019-08-23 19:20:05 +03:00
Simon Ser
c5601aef5d
Add another layer to the example 2019-08-23 18:59:44 +03:00
Simon Ser
559bd2bf3a
Don't pick a busy plane in layer_choose_plane 2019-08-23 18:59:20 +03:00
Simon Ser
9a6237026a
Reset all mappings in hwc_display_apply 2019-08-23 18:56:44 +03:00
Simon Ser
6d5221370e
Disable unused planes 2019-08-23 18:48:13 +03:00
Simon Ser
00f85c4eca
Add missing static qualifiers 2019-08-23 18:20:42 +03:00
Simon Ser
4bce10a7a5
Add LICENSE 2019-08-21 23:13:35 +03:00
Simon Ser
d70b45b36d
Add README 2019-08-21 23:12:11 +03:00
Simon Ser
9fe471dd6b
Initial experiments 2019-08-21 23:07:37 +03:00