Simon Ser
42138a073b
Revert "render/drm_format_set: remove special LINEAR case"
...
This reverts commit 6d281d96cb
.
2021-10-01 09:26:05 -06:00
Simon Ser
6d281d96cb
render/drm_format_set: remove special LINEAR case
...
This was used to make the intersection of INVALID and LINEAR result
in LINEAR. We can now just require LINEAR to be in both lists.
2021-10-01 09:21:50 -06:00
Simon Ser
ea7357b703
Require INVALID for implicit format modifiers
...
See [1] for the motivation.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/75
2021-10-01 09:21:50 -06:00
Simon Ser
833437d592
render/drm_format_set: add wlr_drm_format_has
2021-10-01 09:21:50 -06:00
Simon Ser
c4635c68d2
render/drm_format_set: add special case for LINEAR-only formats
...
Our wlr_format_set structs don't hold GBM usage flags. Instead, users
who want to get a LINEAR buffer can use the DRM_FORMAT_MOD_LINEAR
modifier even if the kernel driver doesn't support modifiers.
Add a special case to wlr_drm_format_intersect to properly handle this
situation.
2020-12-30 11:17:43 +01:00
Simon Ser
d37214cb16
render/drm_format_set: add wlr_drm_format_{create,add}
2020-12-18 09:41:12 +01:00
Simon Ser
8a6930c138
render/drm_format_set: assert len <= cap when duplicating
2020-12-08 23:35:05 +01:00
Simon Ser
29da97c185
render/drm_format_set: allocate using cap when duplicating
...
In wlr_drm_format_dup, allocate the new wlr_drm_format using cap instead
of len. This makes it so the cap field is up-to-date and the chunk of
memory isn't too small if we append new modifiers (we don't allow this
yet but might in the future).
2020-12-08 16:02:44 +01:00
Simon Ser
82443ea46b
render/drm_format_set: introduce wlr_drm_format_intersect
...
Intersects modifiers from two wlr_drm_format structs. If either format
doesn't support modifiers, the resulting format won't support modifiers.
2020-12-03 10:52:25 +01:00
Simon Ser
7c6212a0f7
render/drm_format_set: introduce wlr_drm_format_dup
2020-11-15 22:48:42 +01:00
Simon Ser
01d4506253
render/drm_format_set: disallow DRM_FORMAT_INVALID
...
It doesn't make sense to add DRM_FORMAT_INVALID to a format set. Adding
an assertion allows us to safely query the format set with
DRM_FORMAT_INVALID. See [1].
[1]: https://github.com/swaywm/wlroots/pull/2021#discussion_r385839668
2020-04-22 22:14:44 +02:00
Drew DeVault
540e23d102
Revert "render/drm: keep old drm_format if realloc fails"
...
This reverts commit c1be9b6945
.
2019-08-12 19:53:39 +09:00
Antonin Décimo
c1be9b6945
render/drm: keep old drm_format if realloc fails
2019-08-12 09:37:21 +09:00
Simon Ser
e516ea4c79
backend/drm: check format when scanning out DMA-BUF
2019-06-07 09:06:11 -04:00
Scott Anderson
c01b81c99c
render: introduce wlr_drm_format_set
...
This types adds a container for formats + modifiers.
A list that is of [format [modifier]] was chosen instead of
[format modifer] because that is how GBM accepts them.
Co-Authored-By: emersion <contact@emersion.fr>
2019-04-01 19:15:56 +03:00