Rose Hudson
fc81d06add
backend/drm: report !presented if session is inactive
2023-08-23 16:36:43 +02:00
Rose Hudson
f7afef0b1f
backend/drm: don't set frame_pending on modeset
...
https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3664#note_2020392
we're gonna have to trust Simon on this one 🤞
2023-08-23 16:36:43 +02:00
Simon Ser
11aba53ead
render: only open DRM render node if necessary
...
Only open a render node if we actually need one (ie, if we're about
to attempt GLES2 or Vulkan).
2023-08-23 13:42:07 +02:00
Rose Hudson
f5917f0247
scene_output_layout: make output adding explicit
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3709
2023-08-22 11:53:28 +02:00
Rose Hudson
91f813ffb7
output_layout: return wlr_output_layout_output when adding output
...
This will be used for the scene-graph integration.
2023-08-22 11:53:25 +02:00
Alexander Orzechowski
e85c79051c
wlr_output: Set current_mode during new custom mode
...
When setting a custom mode current_mode will not be reset. That means
that next time the compositor tries to reset back from the custom mode,
it will compare against the stale current_mode and unset
WLR_OUTPUT_STATE_MODE erroneously.
2023-08-22 09:46:24 +00:00
Simon Ser
72787db98a
compositor: drop wlr_surface_destroy_role_object()
...
This function is now unnecessary.
2023-08-21 18:56:09 +02:00
Kirill Primak
bd5c4f4a4a
xdg-shell: rework roles
2023-08-21 16:30:29 +00:00
Kirill Primak
e5300c225e
xdg-popup: avoid using wlr_surface_destroy_role_object()
2023-08-21 16:30:29 +00:00
Kirill Primak
10ba8ebc70
Don't assume xdg_surface.{toplevel,popup} is non-NULL
...
This assumption will become incorrect with future commits.
2023-08-21 16:30:29 +00:00
Kirill Primak
f0cc712af1
xdg-shell: don't return anything from create_xdg_surface()
2023-08-21 16:30:29 +00:00
Alexander Orzechowski
ce615a44c0
egl: Don't assume display is owned when KHR_display_reference is unsupported
...
We could potentially leak a display here, but not really because the
display acts as a singleton that will be returned next time a renderer
of the same device is created.
2023-08-21 15:51:26 +00:00
Alexander Orzechowski
91a1797a96
egl: Remove dead code
...
Display is always NULL here since egl_init is always last to be called.
2023-08-21 15:51:26 +00:00
Simon Ser
9b8cd1f5d6
buffer: make wlr_client_buffer functions private
...
We want to eventually remove this. Let's make sure compositors
don't start using either of these functions.
2023-08-21 15:45:10 +00:00
Simon Ser
6c1a2a6657
backend/headless: fix broken output frame events
...
frame_delay was set to 0.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3712
2023-08-21 16:18:26 +02:00
Alexander Orzechowski
5f6912595e
renderer/vulkan: Defer device lost signal until end of pass
...
If the compositor were to try to handle a GPU reset within the lost
signal (by recreating the renderer) we should avoid referencing renderer
resources after the lost signal. This prevents use after free for such
compositors.
2023-08-20 21:12:06 -04:00
Leonardo Hernández Hernández
bdc34401ba
xdg-decoration: store an xdg_toplevel instead of xdg_surface
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3685
2023-08-19 11:10:36 -06:00
Simon Ser
22b6581a18
backend/wayland: wait for xdg_surface.configure explicitly
...
We were assuming a roundtrip was enough to get an
xdg_surface.configure event. That's not the case, the protocol
spec doesn't make such a guarantee.
2023-08-16 22:09:01 +02:00
Simon Ser
d3d3e19ffd
render: split render pass API into separate header
...
Keeps the main wlr_renderer.h a tad more tidy.
2023-08-16 19:20:12 +02:00
Alexander Orzechowski
568b1943b9
wlr_output: Nuke wlr_output_update_enabled
2023-08-16 18:37:55 +02:00
Alexander Orzechowski
63351cf81f
output: Schedule mode updates to happen with rest of output events
2023-08-16 18:37:55 +02:00
Alexander Orzechowski
f042de3f51
output: Inline wlr_output_update_{custom,}_mode
2023-08-16 18:37:55 +02:00
Alexander Orzechowski
f1ba70ffa6
wlr_output: Make wlr_output_update_{custom,}_mode private
...
Backends should be using wlr_output_send_request_state to request
modesets to the compositor. This will be inlined and removed next commit.
2023-08-16 18:37:55 +02:00
Alexander Orzechowski
8f0d4c9332
backend/drm: Use output state to set init mode
2023-08-16 18:37:40 +02:00
Alexander Orzechowski
a34d349963
backend/drm: Move output variable up in connect_drm_connector
2023-08-16 11:46:27 -04:00
Alexander Orzechowski
a60361050e
backend/headless: Use output state to set init custom mode
2023-08-16 11:46:27 -04:00
Alexander Orzechowski
83d9764ed8
backend/wayland: Use output state to set init custom mode
2023-08-16 11:46:27 -04:00
Alexander Orzechowski
869b0f14bc
backend/x11: Use output state to set init custom mode
2023-08-16 11:46:27 -04:00
Alexander Orzechowski
6cda3e251c
output: Add initialization state to wlr_output_init
2023-08-16 11:46:27 -04:00
Alexander Orzechowski
8f67446cc7
output: Extract common commit logic
2023-08-16 11:46:26 -04:00
Simon Ser
8836e12988
examples/embedded: new example
2023-08-16 16:39:53 +02:00
Simon Ser
8678633fc9
backend/wayland: add wlr_wl_output_create_from_surface()
...
By using this function, a compositor can display a wlroots
compositor in a sub-surface, for instance.
2023-08-16 16:39:52 +02:00
Simon Ser
4f88886199
backend/wayland: tag wl_surface
...
When integrating wlroots with another toolkit, wlroots may receive
wl_pointer.enter events for surfaces not backed by a wlr_output.
Ignore such surfaces by tagging the ones we're aware of with
wl_proxy_set_tag().
2023-08-16 16:38:53 +02:00
Simon Ser
dd24991c9e
backend/wayland: take existing wl_display in wlr_wl_backend_create()
...
This allows compositors to use an existing wl_display, to integrate
wlroots with an existing toolkit.
2023-08-16 16:29:09 +02:00
Alexander Orzechowski
664ec59095
renderer: Sanity check texture source bounds
2023-08-14 08:08:39 +00:00
Alexander Orzechowski
aee31edaad
screencopy_v1: Implement copy regions with gpu blit path
2023-08-12 10:16:51 +00:00
Alexander Orzechowski
b4cbaa4549
screencopy_v1: Use new renderer API for gpu blit path
2023-08-12 10:16:51 +00:00
Simon Ser
c74f89d4f8
Avoid using memcpy() to copy structs
...
We can just use a regular assignment instead. This is more
type-safe since there is no need to provide the struct size.
The remaining memcpy() calls perform array copies or copies from
void pointers (which may be unaligned).
2023-08-03 14:40:28 +00:00
Simon Ser
77dc1c28aa
xwayland: drop wlr_xwayland_surface.events.set_pid
...
The PID of an X11 window cannot change.
This is a remnant from the days when we queried the PID with a
window property, instead of using XRes.
2023-08-03 03:19:35 +00:00
JiDe Zhang
73db481037
wlr_output: update cursor when scale changed
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3699
2023-08-03 02:13:00 +00:00
JiDe Zhang
61903ed66b
wlr_output_cursor: assert renderer isn't NULL
...
When a wlr_output add to wlr_output_layout, wlr_cursor will create
wlr_buffer of xcursor for the wlr_output, this behavior depends
wlr_renderer of wlr_output, using assert to ensure renderer is
initialized before wlr_output_layout_add and wlr_cursor_set_buffer/
wlr_cursor_set_xcursor.
2023-08-03 02:13:00 +00:00
Simon Ser
d40bcfe2c1
xwayland: avoid calling xwm_get_atom_name() when debug logs are off
...
xwm_get_atom_name() performs a roundtrip to the X11 server. Avoid
calling this blocking function if debug logs are turned off.
2023-07-28 14:21:37 +02:00
Simon Zeni
60ca6f17eb
types/wlr_drm_lease_v1: downgrade DRM backend error message to debug
...
Downgrades the error message printed out when no DRM backend is given from `WLR_ERROR` to
`WLR_DEBUG`
2023-07-27 22:14:46 -04:00
q234rty
061f5fafbd
render/vulkan: use renamed glslang binary by default
...
glslang 12.3.0 renamed glslangValidator to glslang,
use that by default and use the old name as a fallback.
References: https://github.com/KhronosGroup/glslang/blob/main/CHANGES.md?plain=1#L14
2023-07-27 16:06:49 +08:00
Kirill Primak
42a5b6f62a
compositor: add "mapped" flag doc
2023-07-26 20:39:03 +00:00
Kirill Primak
7df11ada5e
Unmap wlr_surface before making its role object inert
2023-07-26 20:39:03 +00:00
Kirill Primak
529f1b82ee
xwayland/shell: don't listen to wlr_surface.events.destroy
...
The wlr_xwayland_surface_v1 will be destroyed automatically
from xwl_surface_role_destroy().
2023-07-26 20:31:03 +00:00
Simon Ser
307720d501
backend/drm: restore custom modes
...
We were only restoring fixed modes here. The DRM backend no longer
creates fixed modes when the compositor sets a custom mode, so we
need to handle this situation when restoring.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3698
2023-07-26 17:08:47 +00:00
rewine
2f859f5bec
wlr_output: add comments for signal parameters
2023-07-26 13:55:34 +08:00
Leonardo Hernández Hernández
e8d545a977
xdg-shell: add support for v6
...
This adds the suspended toplevel state
2023-07-23 20:30:43 -06:00