Simon Ser
a245201dad
render/allocator/gbm: add bo_flags arg to create function
...
This allows callers to opt out of SCANOUT, for instance.
2023-11-30 21:10:31 +01:00
Simon Ser
bf75706555
render/allocator/gbm: add _with_drm_fd to create function name
...
Reserve wlr_gbm_allocator_create() for a potential future function
which takes an already-existing gbm_device as input.
2023-11-30 21:07:48 +01:00
Simon Ser
0b15b4a6ae
render/allocator: log message when GBM is disabled
...
When the backend and renderer would need GBM but it's disabled at
compile-time, log a message to make this situation easier to debug.
2023-10-06 09:10:31 +00:00
Simon Ser
7a9f8d8d6b
Use struct initializers instead of memset()
...
This is a bit more type-safe.
2023-07-07 17:31:11 +02:00
Simon Ser
be73da28b2
allocator: only use DRM auth if we are master
...
Legacy DRM auth will only work if we are DRM master. Keep using an
unauthenticated DRM FD if we are not DRM master. This should be
enough for GBM.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3674
2023-06-19 19:36:17 +00:00
Alexander Orzechowski
ef4baea0e2
Use wl_signal_emit_mutable
2022-08-18 07:16:16 -04:00
Simon Ser
99f63b03e7
Remove remaining wl_signal_emit calls
...
Replace them with wlr_signal_emit_safe, which correctly handles
cases where a listener removes another listener.
Reported-by: Isaac Freund <ifreund@ifreund.xyz>
2022-06-05 10:36:11 +00:00
Simon Ser
bb2946f737
build: make GBM optional
...
Now that the DRM backend no longer depends on GBM, we can make it
optional. The GLES2 renderer still depends on it because of our EGL
device selection.
This is useful for compositors with their own renderers, and for
compositors using the Vulkan renderer.
2022-05-30 13:30:08 +00:00
Simon Ser
6c350799b2
Zero-initialize structs in init functions
...
Ensures there is no field left to its previous undefined value after
calling an init function.
2022-04-28 10:09:50 +02:00
Samuel Čavoj
5c17452ae0
Pass O_CLOEXEC to drmModeCreateLease calls
...
The lease_fd is currently being leaked to child processes
Link: https://github.com/swaywm/sway/issues/4286#issuecomment-1065987957
2022-03-13 13:28:48 +01:00
Simon Ser
39b68ea47a
buffer: extract interface to separate header
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3389
2022-03-03 15:39:05 +01:00
Simon Ser
e4f748c6e9
render/allocator: fallback to renderer DRM FD in autocreate
...
If the backend doesn't have a DRM FD, fallback to the renderer's.
This accomodates for the situation where the headless backend hasn't
picked a DRM FD in particular, but the renderer has picked one.
2021-11-25 15:12:32 +00:00
Simon Zeni
02a1ae169e
render/allocator: make wlr_allocator part of the public API
2021-11-09 15:26:36 +00:00
Simon Ser
1b65a80e9d
render/allocator: use empty DRM lease to re-open node
...
This allows us to obtain a new DRM file description without relying
on filesystem permissions.
2021-10-14 21:23:41 +02:00
Simon Ser
13cdb84ee8
render/allocator: use render node if available in reopen_drm_node
...
If we aren't trying to create a dumb buffer allocator, and if the
DRM device has a render node (ie, not a split render/display SoC),
then we can use the render node instead of the primary node. This
should allow wlroots to run under seatd when the current user
doesn't have the permission to open primary nodes (logind has a
quirk to allow physically logged in users to open primary nodes).
2021-10-04 12:25:27 +02:00
Simon Ser
7df2ae88fa
render/allocator: use legacy authentication for primary nodes
...
Closes: https://github.com/swaywm/wlroots/issues/3156
2021-09-03 11:44:12 -04:00
Simon Ser
d9d8fc1ab9
render/allocator: re-open GBM FD
...
Using the same DRM file description for the DRM backend and for the
GBM allocator will result in GEM handle ref'counting issues [1].
Re-open the DRM FD to fix these issues.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/110
2021-09-01 15:17:05 -04:00
Simon Ser
3ce2ea9e16
Move allocator stuff into new directory
...
Add render/allocator/ and include/render/allocator/ to hold
everything allocator-related.
2021-08-25 09:57:20 -04:00