Age | Commit message (Collapse) | Author |
|
RMFB implicitly performs a modeset to turn off any CRTC which is
using the FB. This prevents seamless transitions between two DRM
masters from working.
Use the new CLOSEFB IOCTL which doesn't turn off anything and leave
it up to the compositor to turn off outputs on shutdown if it wants
to.
|
|
|
|
|
|
protocol/meson.build adds protocol header files to wlr_files. No
need to add them via include dirs.
|
|
|
|
Just like _WLR_FILENAME and _WLR_ATTRIB_PRINTF, this makes it more
obvious that this isn't part of our API.
|
|
References: https://github.com/xkbcommon/libxkbcommon/pull/315
|
|
For informational purposes.
|
|
If left unspecified, these defaults to the project name and version.
|
|
This avoids re-building the whole project when switching one
Meson option. This shrinks down the compiler invocation command
line, making it more readable and making it easier to inspect
which flags are passed in (the generated file can be opened).
Additionally this is more consistent with our external feature
handling, which uses <wlr/config.h> already.
|
|
Some compositors are not interested in wlr_session, for instance
nested compositors.
Disabling wlr_session removes the udev dependency.
|
|
References: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/272
|
|
The new version offers const pixman_region32_t APIs, which we will
make use of in the following commits.
|
|
Allows users to use a Meson subproject for Pixman.
|
|
The DRM, libinput and session use udev. They are all hosted under
backend/.
|
|
|
|
|
|
Instead of having a C file with strings for each shader, move each
shader into its own file. Use a small POSIX shell script to convert
the files into C strings (can't wait for C23 #embed...).
The benefits from this are:
- Improved readability and syntax highlighting.
- Line numbers in shader compiler errors are easier to make sense of.
- Consistency with the Vulkan renderer.
- Shaders will become more complicated as we add color management
features.
|
|
Libdrm now uses enabled/disabled/auto for the drivers, migrate to these
new defaults.
Error message from meson:
wlroots| subprojects/wlroots/subprojects/libdrm/meson.build:21:0: Exception: Value "false" (of type "string") for combo option "Enable support for Intel's KMS API." is not one of the choices. Possible choices are (as string): "enabled", "disabled", "auto".`
|
|
For each format and modifier, log supported usage. Log a
human-readable format/modifier string.
|
|
|
|
No need to manually maintain this table now.
The wlroots names and the libdrm (= kernel) names all match.
References: https://gitlab.freedesktop.org/mesa/drm/-/commit/50f8d517733d24fce6693ffae552f9833e2e6aa9
|
|
|
|
Instead of checking whether the wlr_egl dependencies are available
in the GLES2 code, introduce internal_features['egl'] and check
that field.
When updating the EGL dependency list, we no longer need to update
the GLES2 logic.
|
|
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.
|
|
Same as [1].
[1]: https://github.com/swaywm/sway/pull/6730
|
|
|
|
muon, a meson implementation in C, is more strict with its types and
revealed this discrepancy between meson behavior and documentation.
|
|
All of these projects use meson.override_dependency() so we can
stop referencing their internal variable name to grab the
depndencies we need.
|
|
According to [1] this should be done at each release with breaking ABI
changes.
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/wikis/Core-contributor-guide#releasing-a-new-version
Fixes: 7360810f2e5c ("build: bump to version 0.16.0")
|
|
|
|
This patch makes it so we bind to zwp_linux_dmabuf_v1 version 4 and
we use it to grab the main device. v4 sends supported formats via a
table so we need to handle this as well.
v4 allows wlroots to remove the requirement for Mesa's internal
wl_drm interface.
|
|
|
|
This avoids open-coding our own logic. The resulting code is more
readable.
References: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/146
|
|
Two new events are added: name and description. The name is
immutable. The description can be updated on-the-fly.
|
|
wayland-client isn't really used by wlroots core, so let's move the
dep to where it's needed in the Wayland backend.
|
|
|
|
This new renderer is implemented with the existing wlr_renderer API
(which is known to be sub-optimal for some operations). It's not
used by default, but users can opt-in by setting WLR_RENDERER=vulkan.
The renderer depends on VK_EXT_image_drm_format_modifier and
VK_EXT_physical_device_drm.
Co-authored-by: Simon Ser <contact@emersion.fr>
Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
|
|
|
|
|
|
Co-authored-by: Simon Ser <contact@emersion.fr>
|
|
meson.build_root() is deprecated.
References: https://github.com/mesonbuild/meson/pull/8629
|
|
|
|
This reverts commit 28d23ba6bda4f799b8d6689555cd33a40adda17e.
The prelinking and symbol filtering pass breaks builds with link-time
optimization enabled.
|
|
Static libraries are not affected by our symbol file, so private symbols
are globally visible by default.
Use objcopy to make symbols that we do not want to expose local.
Closes: https://github.com/swaywm/wlroots/issues/1892
Closes: https://github.com/swaywm/wlroots/issues/2952
|
|
This moves the magic incantation into libdrm and is clearer. See
[1] for details.
While at it, fixup the doc comment and improve logging.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/commit/523b3658aa8efa746417e916c987de23740ce313
|
|
This implements the new xdg-activation-v1 protocol [1].
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/50
|
|
|
|
Allow selecting whether the GLES2 renderer gets enabled.
Co-authored-by: Simon Ser <contact@emersion.fr>
|
|
|