Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

render: add wlr_renderer_get_dmabuf_render_formats #2483

Merged
merged 8 commits into from
Nov 30, 2020

Conversation

emersion
Copy link
Member

@emersion emersion commented Nov 18, 2020

The main motivation for this PR is to ensure we select a format we can render to in the headless backend.

It contains also some breaking changes that clarify what formats advertised by wlr_renderer are good for.


Breaking changes:

  • wlr_egl_get_dmabuf_formats has been renamed to wlr_egl_get_dmabuf_texture_formats
  • wlr_renderer_get_formats has been renamed to wlr_renderer_get_shm_texture_formats
  • wlr_renderer_get_dmabuf_formats has been renamed to wlr_renderer_get_dmabuf_texture_formats
  • wlr_renderer_format_supported has been removed (instead, use wlr_renderer_get_shm_texture_formats)

Make it clear formats returned are only suitable for import/sampling.
These formats can't be used to be rendered to.
Instead, callers can just use wlr_renderer_get_formats and iterate over
the list.

This function was unused in wlroots.
It describes which DMA-BUF formats can be used to render.
When allocating buffers, use a format suitable for rendering. This
avoids picking a format that won't work.
Rename wlr_renderer_get_dmabuf_formats to
wlr_renderer_get_dmabuf_texture_formats. This makes it clear the formats
are only suitable for creating wlr_textures.
Rename wlr_renderer_get_formats to wlr_renderer_get_shm_texture_formats.
This makes it clear those formats are only suitable for shm import.
The Wayland protocol requires those to be supported.
Replace it with wlr_egl.dmabuf_render_formats.
@emersion emersion merged commit 83a5d03 into swaywm:master Nov 30, 2020
@emersion emersion deleted the render-formats branch November 30, 2020 10:08
@emersion emersion mentioned this pull request Mar 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking Breaking change in public API
Development

Successfully merging this pull request may close these issues.

None yet

1 participant