Simon Ser
1968ada213
tearing-control-v1: synchronize state with surface
2023-12-25 18:55:30 +01:00
Simon Ser
0ea6b6e2cc
session-lock-v1: use wlr_surface_synced
2023-12-25 18:55:21 +01:00
Simon Ser
90e12fb978
pointer-constraints-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
a6122c3ec5
layer-shell-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
0e3d2222c2
xdg-decoration: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
96aec06b0a
subcompositor: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
4b3553409a
xdg-shell: use wlr_surface_synced for popups
2023-12-25 11:47:15 +01:00
Simon Ser
9201431c29
xdg-shell: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
69d9a4e2cb
xdg-shell: use wlr_surface_synced for wlr_xdg_surface
2023-12-25 11:47:15 +01:00
Simon Ser
7e1ae5548c
compositor: add wlr_surface_role.client_commit
2023-12-25 11:47:15 +01:00
Simon Ser
d847516765
compositor: add wlr_surface_synced
...
A lot of protocols extend the wl_surface state. Such protocols need
to synchronize their extended state with wl_surface.commit and
cached states. Add a new utility for this purpose.
2023-12-25 11:47:15 +01:00
Simon Ser
34d5af4172
compositor: add wlr_surface_state_has_buffer()
2023-12-25 11:47:15 +01:00
Simon Ser
43734f7c62
compositor: fix wlr_surface_has_buffer() doc comment
...
The function does not check whether the upload succeeded: it does
not check the wlr_client_buffer.
2023-12-25 11:47:14 +01:00
Simon Ser
66b6c349e7
compositor: remove unnecessary wlr_surface.has_buffer
...
No need to store this bit, we can infer it from buffer_width and
buffer_height.
2023-12-25 11:43:41 +01:00
Simon Ser
85f44f3684
pointer-constraints-v1: add cursor_hint.enabled
...
This allows compositors to check whether the cursor hint is set.
2023-12-25 10:36:26 +00:00
Simon Ser
fc7a0b93dd
backend/drm: add wlr_drm_backend_get_parent()
...
Allows compositors to figure out whether a DRM backend is
secondary on a multi-GPU setup.
2023-12-12 14:42:52 +00:00
Roman Gilg
3531007b75
render/pixman: add wlr_pixman_renderer_get_buffer_image()
...
This is similar to wlr_pixman_texture_get_image and can be useful for
compositors to access the rendering data.
2023-12-11 19:47:55 +01:00
Simon Ser
1f64f3925c
render/gles2: add wlr_gles2_renderer_get_buffer_fbo()
...
Replacement for wlr_gles2_renderer_get_current_fbo(). Wayfire uses
it for instance.
2023-12-05 18:57:43 +01:00
Simon Ser
6a2ff0dffe
compositor: drop surface precommit event
...
This is unused.
2023-12-04 19:32:44 +01:00
Manuel Stoeckl
d6859da3b4
render/vulkan: use _SRGB image view when possible
...
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-04 15:13:31 +00:00
Manuel Stoeckl
566c413d8f
render/vulkan: constify vulkan_format_props_find_modifier
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
fd4548bb93
render/vulkan: detect which _UNORM formats support _SRGB views
2023-12-04 15:13:31 +00:00
Manuel Stoeckl
eab89d6c76
render/vulkan: track and use _UNORM variants of _SRGB formats
...
Later commits will start using _SRGB image views again,
where appropriate.
2023-12-04 15:13:31 +00:00
Alexander Orzechowski
06d301bf1a
wlr_scene: Track output damage separately
...
The damage ring is only supposed to keep track of damage within
the swapchain
2023-12-03 05:29:05 +00:00
Alexander Orzechowski
6e03d3015e
swapchain: Add wlr_swapchain_has_buffer
2023-12-03 05:29:05 +00:00
Alexander Orzechowski
d3a339a03e
renderer: Drop buffer binding
2023-11-30 20:11:50 -05:00
Alexander Orzechowski
3ed1268f64
render: Nuke old read pixels API
...
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-30 20:01:12 -05:00
Alexander Orzechowski
57b18d26d0
wlr_texture: Introduce wlr_texture_preferred_read_format
2023-11-30 19:56:54 -05:00
Alexander Orzechowski
09f16b2a9c
render/vulkan: Implement texture_read_pixels
2023-11-30 19:56:54 -05:00
Alexander Orzechowski
e7055b4840
render/gles2: Implement texture_read_pixels
...
Also get rid of gles2_texture.owns_texture. We only use the tex/fbo
2023-11-30 19:56:41 -05:00
Alexander Orzechowski
e85e8bc324
wlr_texture: Introduce wlr_texture_read_pixels_options helpers
2023-11-30 19:55:51 -05:00
Alexander Orzechowski
4c6caa7c48
wlr_texture: Introduce wlr_texture_read_pixels
2023-11-30 19:55:12 -05:00
Simon Ser
a165261f7f
output: replace wlr_render_timer arg with wlr_buffer_pass_options
...
This scales better when more render pass options are added.
2023-11-30 19:48:01 +01:00
Simon Ser
e8b187cc92
render/gles2: save/restore context when creating/submitting a render pass
...
This is useful for e.g. lazily blitting a texture for readback
purposes while rendering.
2023-11-30 17:47:11 +01:00
Simon Ser
1208ba6c28
render/gles2: document EGL context gotchas
2023-11-30 17:46:50 +01:00
Simon Ser
c31ca04264
output: drop stale references to wlr_output_attach_render()
...
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-30 16:52:11 +01:00
Simon Ser
876d789ad5
render/gles2: reword wlr_gles2_texture comments
...
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-30 16:38:25 +01:00
Alexander Orzechowski
9bf51e744e
render/gles2: Don't attach texture as buffer addon
...
Since wlr_gles2_buffer is now managing importing for us, there is
no reason for us to continue doing this.
2023-11-30 10:13:18 -05:00
Alexander Orzechowski
829e34b305
render/gles2: Don't track image in texture
...
We can get it from the buffer
2023-11-30 10:13:18 -05:00
Alexander Orzechowski
cb5f67431b
render/gles2: Don't double import dmabuf
...
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-30 10:13:18 -05:00
Alexander Orzechowski
484e248446
renderer/gles2: Bail rendering to external buffers when binding them
...
We can't do it while we're creating them because we'll want to use
gles2 buffers for textures soon.
2023-11-30 10:13:18 -05:00
Alexander Orzechowski
0d9cd6932a
render/gles2: Lazily create buffer fbo
2023-11-30 10:13:18 -05:00
Simon Ser
67c77fdbdc
backend/drm: remove wlr_drm_renderer.backend
...
This is unused.
2023-11-30 14:44:46 +00:00
Simon Ser
f935ff0ef6
backend/drm: move drm_plane_finish_surface() to drm.c
...
This function touches queued_fb/current_fb, which the renderer has
nothing to do with.
2023-11-30 14:44:46 +00:00
Simon Ser
260dbdf704
backend/drm: split wlr_drm_fb related functions into separate file
2023-11-30 14:44:46 +00:00
Alexander Orzechowski
d7ecdad4e0
render: Drop rendering_with_buffer
...
This is always true now that we can only render with a buffer.
2023-11-29 16:00:24 -05:00
Alexander Orzechowski
7702a19739
output: Drop back_buffer
2023-11-29 16:00:24 -05:00
Alexander Orzechowski
fc6000251c
output: Drop wlr_output_attach_render
2023-11-29 16:00:23 -05:00
Alexander Orzechowski
3faf9883dc
renderer: Drop wlr_renderer_begin
2023-11-29 15:13:24 -05:00
Simon Ser
2093564616
damage_ring: add wlr_damage_ring_rotate_buffer()
...
This adds an alternate way to use wlr_damage_ring without the
concept of buffer age. Buffer age is a concept inherited from EGL
but there is no real reason why we should continue to use that in
wlroots. Instead, use wlr_buffer pointers.
Eventually, we should be able to remove the buffer age based
functions.
2023-11-29 14:45:10 -05:00