Simon Ser
e353c5c631
render/vulkan: enable NV12 on big-endian
...
This format doesn't change its layout on big endian because it's
not packed and has 8-bit channels.
2 years ago
Simon Ser
2a1234a820
wlr-export-dmabuf-v1: handle output destroy
...
We were storing a wlr_output without listening for the destroy
event.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3646
2 years ago
Simon Ser
095a63a11c
render/vulkan: improve logging when creating texture
...
Remove debug logs when a texture is created, since this happens
pretty often. Use drmGetFormatName() and drmGetFormatModifierName()
to log DRM formats and modifiers.
2 years ago
Alexander Orzechowski
18139f4d87
wlr_cursor: Don't multiply hotspot by scale^2
...
We are already multiplying in output_cursor_set_texture
2 years ago
zhoulei
2c30500ce1
backend/drm: fix di_info memory leak
2 years ago
Alexander Orzechowski
47a250ae12
wlr_cursor: Consider surface state when setting new cursor surface
...
Found by inspection
2 years ago
Manuel Stoeckl
e6fc5d1e49
render/vulkan: increase next descriptor pool size
...
This ensures that the pool sizes grow exponentially, making the number
of pools needed logarithmic in the number of descriptors, instead of
linear. Since the first pool's size is 256, this change only has an
effect when the compositor creates a large number of textures.
2 years ago
Simon Ser
d933f5204b
output: drop wlr_output_cursor_set_surface
2 years ago
Simon Ser
78afce5e2d
cursor: add surface handling
...
Only rely on wlr_output_cursor_set_texture(), because
wlr_output_cursor_set_surface() will get dropped.
2 years ago
Simon Ser
b64e7e88bf
output: add output_cursor_set_texture()
2 years ago
Simon Ser
b03f71fe5f
render/vulkan: add support for NV12
2 years ago
Alexander Orzechowski
5adb1be3a7
drm_format_set_intersect: Require initialized dst and remove assert
...
The usages in linux_dmabuf zero out the dst before passing it so this
change should be fine.
2 years ago
Alexander Orzechowski
1ee75786b4
drm_format_set_union: Require initialized dst and remove assert
2 years ago
novenary
d7917d2076
xwayland: allow compositor to set withdrawn state
2 years ago
Simon Ser
2827ec6b7b
xwayland: enable use of a xserver subproject
...
Makes it easier to work on Xwayland and wlroots features in
parallel.
References: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1048
2 years ago
Simon Ser
403eac51c4
render/vulkan: fix code style for function brackets
2 years ago
Alexander Orzechowski
ec796afb6e
wlr_compositor: Decide opacity from new has_buffer flag.
...
`wlr_surface_get_texture` will always return NULL if the compositor was
not given a renderer.
2 years ago
Alexander Orzechowski
394accbe4a
wlr_compositer: Keep track if surface has committed a buffer before.
...
This would break if you are running with a NULL renderer.
2 years ago
Alexander Orzechowski
2dd9549085
drm_format_set: Mark as unstable
...
This is supposed to be an unstable interface and it was a mistake that
this header was not included.
2 years ago
Alexander Orzechowski
cbe8876050
linux_dmabuf_v1: Use wlr_drm_format_set_union
2 years ago
Austin Shafer
ec37d55a5e
Add union function for format sets
2 years ago
Simon Ser
bf8ae8a036
output/cursor: fix buffer size when nested and scaled
...
The Wayland, X11 and headless backends don't really care about the
cursor size. We were picking a size identical to the texture size
in that case. This is incorrect for LoDPI cursor textures on HiDPI
outputs: in that case, we need to scale up the cursor texture.
Fixes the cursor being chopped off under the Wayland backend with
scale > 1.
2 years ago
Simon Ser
a93fc8afd6
render: introduce blend mode
...
Allow callers to pick the blend mode when rendering a rect. The
"none" mode can be used to disable blending and clear rects.
2 years ago
Simon Ser
6b7d1d732a
render/pixman: fix scaling in render_pass_add_texture()
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3642
Fixes: 6830bfc17f
("render/pixman: implement render pass API")
2 years ago
Alexander Orzechowski
d5320e5f20
tinywl: Release everything before destroy
...
This makes -Db_sanatize=address happy.
2 years ago
Simon Ser
f5a5712a02
render/vulkan: use VK_KHR_synchronization2
...
This simplifies the vkQueueSubmit call, removing the need to pass
timeline semaphore point values as separate arrays.
2 years ago
Simon Ser
6830bfc17f
render/pixman: implement render pass API
2 years ago
Simon Ser
6ce371a317
render/pixman: add begin_pixman_data_ptr_access()
...
This logic is used twice.
2 years ago
Simon Ser
d7fcc1e96f
scene: port to wlr_render_pass
2 years ago
Simon Ser
587852056c
output: add wlr_output_add_software_cursors_to_render_pass()
...
Same as wlr_output_render_software_cursors(), but takes a
struct wlr_render_pass.
2 years ago
Simon Ser
471249ae4f
render/pass: add legacy render pass implementation
...
Add a render pass implementation which leverages the legacy
rendering API. This is helpful during the migration.
2 years ago
Simon Ser
4a1ad32534
render: add render pass helpers
2 years ago
Simon Ser
756dedae20
Add a new renderer API
...
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
2 years ago
Edgars Cīrulis
17ad034480
xcursor: Resolve warning in xcursor_build_theme_dir
...
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2 years ago
ptrcnull
56502be1d1
backend/x11: prevent segfault on empty DRI3 response
3 years ago
Simon Ser
44069dfd5e
output-layer: add cropping support
...
Add a src_box state field. Use the SRC_* KMS props in the DRM
backend, reject the layers in the Wayland backend (for now, we can
support it later via viewporter).
2 years ago
Simon Ser
d795824346
render/vulkan: fix signedness of strcmp() return value
...
strcmp() returns a signed integer.
2 years ago
Simon Ser
62e60ba889
render/vulkan: use initializer in vulkan_change_layout_queue()
2 years ago
Simon Ser
74e8fd8a9a
render/vulkan: remove extra newline
2 years ago
Simon Ser
92b726ef67
render/vulkan: use full names for extension command fields
...
This makes grepping much easier.
2 years ago
Simon Ser
25d9055281
xcursor: sync with libwayland
...
xcursor.c was copied over from libwayland-cursor. A lot of
cosmetic imporvements have been merged upstream. Copy-paste the
new version.
2 years ago
Andri Yngvason
00489b11a0
seat: Provide dummy resources for inert seats
2 years ago
Andri Yngvason
3898bb482d
seat: Let client manage its own resources
...
This makes seat_client resources inert when seats and/or input devices are
destroyed, rather than destroying the resources.
When the client calls e.g. wl_keyboard_release(), it's not expecting the
keyboard global to be already destroyed, so this results in an error such
as this:
wl_display@1: error 0: invalid object 22
2 years ago
Andri Yngvason
1689a3503b
wlr_seat: Extract seat_client_create() function
2 years ago
Alexander Orzechowski
eac2eaa6a9
wlr_scene: Fix potential use-after-free in wlr_scene_buffer_set_buffer
...
Fixes : #3636
2 years ago
Alexander Orzechowski
39be67df46
wlr_scene: Send presentation event before direct scanout output commit
...
We were doing it too late before and surfaces were never getting
the presentation event.
2 years ago
Simon Ser
dae2deb3c9
compositor: add wlr_surface_set_preferred_buffer_transform()
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
2 years ago
Simon Ser
42edd36785
compositor: add wlr_surface_set_preferred_buffer_scale()
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
2 years ago
Simon Ser
0bb574239d
compositor: pass version in wlr_compositor_create
...
This allows wlroots to support newer versions of the interface
without breaking the API.
2 years ago
Kirill Primak
87e7584dd4
compositor: use defunct_role_object error
2 years ago