aboutsummaryrefslogtreecommitdiff
path: root/render/meson.build
AgeCommit message (Collapse)Author
2023-04-25Add a new renderer APISimon Ser
Goals: - Extensibility: we need to be able to add new params to the calls to render a texture/rect. For instance we'll need to add fences to the render texture operation for explicit sync purposes. - No implicit state: no more bind_buffer, begin, end. - No matrices: these hurt Pixman and we don't need them. - Clip regions for optimized damage repainting. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3188
2022-11-28render/dmabuf: add dmabuf_import_sync_fileSimon Ser
References: https://lore.kernel.org/dri-devel/20220506180216.2095060-1-jason@jlekstrand.net/
2022-06-24render: use internal_features to indicate EGL supportSimon Ser
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.
2022-05-30build: make GBM optionalSimon Ser
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.
2021-11-02render: completely disable gles2 if requested but libEGL is foundJan Beich
For `required` to disable search the value needs to be of `feature` type. Checking `gles2` via `in` keyword returns a `bool` but `required: false` makes the dependency optional instead of disabled.
2021-10-18render/vulkan: add Vulkan renderernyorain
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>
2021-08-25Move allocator stuff into new directorySimon Ser
Add render/allocator/ and include/render/allocator/ to hold everything allocator-related.
2021-05-19render/gbm_allocator: add support for gbm_bo_get_fd_for_planeSimon Ser
See [1]. This allows us to remove the workaround for GBM API limitations. [1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5442
2021-05-05render: add DRM dumb buffer allocatorSimon Zeni
2021-04-17render: make GLES2 renderer optionalayaka
Allow selecting whether the GLES2 renderer gets enabled. Co-authored-by: Simon Ser <contact@emersion.fr>
2021-04-17render: introduce pixman rendererSimon Zeni
2021-04-17render: introduce shared memory allocatorSimon Ser
It allocates in local main memory via shm_open, and provides a FD to allow sharing with other processes. This is suitable for software rendering under the Wayland and X11 backends.
2021-03-25Move render/shm_format functions to render/pixel_formatSimon Zeni
2021-03-25render/pixel_format: introduce pixel format info tableSimon Zeni
2021-02-23render/shm_format: add wl_shm_format conversion helpersSimon Ser
2021-01-15render: extract gles2 build files to subdirSimon Ser
This will make it easier to toggle when we make our GLES2 renderer optional.
2020-11-15render: introduce wlr_swapchainSimon Ser
The swapchain maximum capacity is set to 4, so that we have enough room for: - A buffer currently displayed on screen - A buffer queued for display (e.g. to KMS) - A pending buffer that'll be queued next commit - An additional pending buffer in case we want to invalidate the currently pending one
2020-11-15render: introduce wlr_gbm_allocatorSimon Ser
2020-11-15render: introduce wlr_allocatorSimon Ser
2019-12-23meson: Various improvementsScott Anderson
Bumps minimum version to 0.51.0 - Remove all intermediate static libraries. They serve no purpose and are just add a bunch of boilerplate for managing dependencies and options. It's now managed as a list of files which are compiled into libwlroots directly. - Use install_subdir instead of installing headers individually. I've changed my mind since I did that. Listing them out is annoying as hell, and it's easy to forget to do it. - Add not_found_message for all of our optional dependencies that have a meson option. It gives some hints about what option to pass and what the optional dependency is for. - Move all backend subdirectories into their own meson.build. This keeps some of the backend-specific build logic (especially rdp and session) more neatly separated off. - Don't overlink example clients with code they're not using. This was done by merging the protocol dictionaries and setting some variables containing the code and client header file. Example clients now explicitly mention what extension protocols they want to link to. - Split compositor example logic from client example logic. - Minor formatting changes
2019-12-20Refactor EGL/GL API loadingSimon Ser
Remove glapi.sh code generation, replace it with hand-written loading code that checks extension strings before calling eglGetProcAddress. The GLES2 renderer still uses global state because of: - {PUSH,POP}_GLES2_DEBUG macros - wlr_gles2_texture_from_* taking a wlr_egl instead of the renderer
2019-11-20Add -Wmissing-prototypesSimon Ser
This requires functions without a prototype definition to be static. This allows to detect dead code, export less symbols and put shared functions in headers.
2019-04-01render: introduce wlr_drm_format_setScott Anderson
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>
2018-10-15render: fix meson including libdrmCole Mickens
2018-10-15Fix libdrm includesScott Anderson
This removes any assumptions about how the libdrm headers are installed, and uses the pkg-config include directories as we're "supposed to". This only adds a partial dependency, since we don't actually need to link against libdrm.
2018-08-24Change how glgen.sh outputs filesScott Anderson
This fixes building wlroots as a subproject.
2018-08-24Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""Scott Anderson
This reverts commit 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0.
2018-08-23Revert "Merge pull request #1194 from ascent12/meson_feature"Drew DeVault
This breaks wlroots when used as a meson subproject. This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
2018-08-22Make style more consistentScott Anderson
2018-05-31Merge branch 'master' into screencontentemersion
2018-03-15matrix: move to types/emersion
2018-02-14Add missing dependenciesRodrigo Lourenço
2018-02-12Reformat all #include directivesemersion
2018-01-18output: add wlr_output::damage, fixes #572emersion
2017-11-22Change glapi.sh to generate both filesScott Anderson
2017-10-08Add GL/EGL extension loader generatorScott Anderson
2017-08-30Refactor meson build filesTony Crisci
Use tabs for indentation and break up function calls over 80 col.
2017-08-13Fix #64Drew DeVault
2017-08-11Refactor meson and move xdg-shell into wlrootsDrew DeVault
2017-08-10Refactor EGL handlingDrew DeVault
2017-08-08Rename wlr_surface -> wlr_texture; attach -> uploadnyorain
2017-08-05Use meson build systemnyorain
2017-07-11Revert "Merge pull request #27 from ascent12/meson"Drew DeVault
This reverts commit 85805da021006697c85489c3e30717c2b807441c, reversing changes made to 8189c64d7f07a756abf5a6189719f02b2f1af967.
2017-07-11Use subdirScott Anderson