aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-12backend/drm: return secondary backend DRM FDSimon Ser
It can be useful for compositors to get the real DRM FD instead of the one from the parent compositor. For instance, some compositors might want to perform some DRM IOCTLs there to check the driver name, fetch some DRM resources, etc. This will also be a requirement for direct scanout on secondary GPUs.
2023-12-12linux-dmabuf-v1: ignore scanout output for secondary DRM backendsSimon Ser
We don't support direct scanout on such backends yet.
2023-12-12backend/drm: add wlr_drm_backend_get_parent()Simon Ser
Allows compositors to figure out whether a DRM backend is secondary on a multi-GPU setup.
2023-12-11render/pixman: add wlr_pixman_renderer_get_buffer_image()Roman Gilg
This is similar to wlr_pixman_texture_get_image and can be useful for compositors to access the rendering data.
2023-12-10ci: drop stale dependenciesSimon Ser
ffmpeg, epoll-shim, libpng were dependencies for client examples. These have been split into a separate repository so we no longer need to install them.
2023-12-08build: automatically compute soversionSimon Ser
Instead of requiring a manual soversion bump each time we do a release, automatically compute it from the version number. In the early days we used to not bump soversion, so there is an hardcoded offset. This will need to be updated once we ship 1.0, so assert that we're still on 0.x.
2023-12-07tinywl: check initialized instead of initial_commitKirill Primak
oops
2023-12-07tinywl: don't send configures to uninitialized xdg_surfacesKirill Primak
2023-12-05render/gles2: add wlr_gles2_renderer_get_buffer_fbo()Simon Ser
Replacement for wlr_gles2_renderer_get_current_fbo(). Wayfire uses it for instance.
2023-12-04compositor: drop surface precommit eventSimon Ser
This is unused.
2023-12-04cursor: send surface scale eventsSimon Ser
wlr_cursor is responsible for sending enter/leave events, but doesn't send fractional-scale-v1 and wl_surface.preferred_buffer_scale events. This is not an easy thing to do from a compositor, so let's just do it in wlr_cursor itself.
2023-12-04render: disable linux-dmabuf without DRM FDSimon Ser
linux-dmabuf used to not need a DRM FD, however since v4 a DRM FD is required for the main_device event.
2023-12-04render/vulkan: use _SRGB image view when possibleManuel Stoeckl
This is the last of a set of commits which ensures that both textures and render buffers can be accessed through _UNORM and _SRGB image views. While _UNORM image views are not yet used for 8-bpc image formats, they will be needed in the future to support color transforms for both textures and render buffers.
2023-12-04render/vulkan: constify vulkan_format_props_find_modifierManuel Stoeckl
2023-12-04render/vulkan: create VkImage with option for _SRGB view, if possibleManuel Stoeckl
2023-12-04render/vulkan: detect which _UNORM formats support _SRGB viewsManuel Stoeckl
2023-12-04render/vulkan: extract shm texture format query into functionManuel Stoeckl
2023-12-04render/vulkan: track and use _UNORM variants of _SRGB formatsManuel Stoeckl
Later commits will start using _SRGB image views again, where appropriate.
2023-12-04wlr_damage_ring: Fix inverted conditionalAlexander Orzechowski
2023-12-04wlr_scene: fix transformed outputs backend damage clearingAlexander Orzechowski
When we cleared the pending backend damage when the output committed, we would not take into account the output transform. It's easiest to fix this by just changing pending_commit_damage to always have transformed coordinates.
2023-12-04wlr_scene: Apply output damage onceAlexander Orzechowski
We would apply it twice if we failed direct scanout. Once when we attempt direct scanout and again when we composite.
2023-12-03wlr_scene: Don't damage whole damage ring when exiting direct scanoutAlexander Orzechowski
Direct scanout damage will just accumulate on the damage ring while in direct scanout and properly damage when we exit anyway. On the flip side since we now manage backend damage submission ourselves, this won't break that either.
2023-12-03wlr_scene: Use wlr_damage_ring_rotate_buffer()Alexander Orzechowski
Compositors who use _build_state are no longer required to call damage_ring_rotate themselves. This is a minor breaking change.
2023-12-03wlr_scene: Track output damage separatelyAlexander Orzechowski
The damage ring is only supposed to keep track of damage within the swapchain
2023-12-03swapchain: Add wlr_swapchain_has_bufferAlexander Orzechowski
2023-11-30renderer: Drop buffer bindingAlexander Orzechowski
2023-11-30render: Nuke old read pixels APIAlexander Orzechowski
Sadly, the new API is not backwards compatible with the old API. Since we have already switched all users in wlroots to the new API compositors are already practically mandated to implement the new API. Let's get rid of the old one since there is no point.
2023-11-30screencopy_v1: Use new read pixels APIAlexander Orzechowski
2023-11-30backend/x11: Use wlr_texture_read_pixelsAlexander Orzechowski
2023-11-30render: Implement texture_preferred_read_formatAlexander Orzechowski
2023-11-30wlr_texture: Introduce wlr_texture_preferred_read_formatAlexander Orzechowski
2023-11-30render/vulkan: Implement texture_read_pixelsAlexander Orzechowski
2023-11-30render/gles2: Implement texture_read_pixelsAlexander Orzechowski
Also get rid of gles2_texture.owns_texture. We only use the tex/fbo
2023-11-30render/pixman: Implement texture_read_pixelsAlexander Orzechowski
2023-11-30wlr_texture: Introduce wlr_texture_read_pixels_options helpersAlexander Orzechowski
2023-11-30wlr_texture: Introduce wlr_texture_read_pixelsAlexander Orzechowski
2023-11-30output: replace wlr_render_timer arg with wlr_buffer_pass_optionsSimon Ser
This scales better when more render pass options are added.
2023-11-30types/output: emit destroy event before destroying globalSimon Zeni
2023-11-30render/gles2: save/restore context when creating/submitting a render passSimon Ser
This is useful for e.g. lazily blitting a texture for readback purposes while rendering.
2023-11-30render/gles2: document EGL context gotchasSimon Ser
2023-11-30output: drop stale references to wlr_output_attach_render()Simon Ser
It turns out we forgot about the function declaration in the header. Also some docs were still referring to that function. Move the wlr_output_attach_render() docs to wlr_output_begin_render_pass().
2023-11-30render/gles2: reword wlr_gles2_texture commentsSimon Ser
These comments were a bit misleading: - "GL_TEXTURE_2D == mutable": not really, imported non-external-only DMA-BUFs would also use this target, but are not mutable. - "Only affects target == GL_TEXTURE_2D": same here. - "If imported from a wlr_buffer": not really, would be NULL if imported from a shm wlr_buffer. Adjust these comments to better reflect reality and adjust the check in gles2_texture_update_from_buffer().
2023-11-30render/gles2: Inline texture invalidationAlexander Orzechowski
Let's us share more code with the other code path
2023-11-30render/gles2: Don't attach texture as buffer addonAlexander Orzechowski
Since wlr_gles2_buffer is now managing importing for us, there is no reason for us to continue doing this.
2023-11-30render/gles2: Don't track image in textureAlexander Orzechowski
We can get it from the buffer
2023-11-30render/gles2: Don't double import dmabufAlexander Orzechowski
We can double import a dmabuf if we use it as a texture target and a render target. Instead, let's unify render targets and texture dmabuf imports to use wlr_gles2_buffer which manages the EGLImageKHR
2023-11-30render/gles2: Destroy textures firstAlexander Orzechowski
Since imported textures will be based off of gles2_buffer we have to destroy textures first or else they will have an invalid reference to the buffers they are imported from.
2023-11-30renderer/gles2: Bail rendering to external buffers when binding themAlexander Orzechowski
We can't do it while we're creating them because we'll want to use gles2 buffers for textures soon.
2023-11-30render/gles2: Lazily create buffer fboAlexander Orzechowski
2023-11-30backend/drm: remove wlr_drm_renderer.backendSimon Ser
This is unused.