Age | Commit message (Collapse) | Author |
|
Since e5fc8cd4c734 ("output: trigger frame/present events on all
commits on enabled output"), any commit on an enabled output is
supposed to trigger frame/present events.
The DRM backend was skipping the commit completely for no-op
commits. Stop doing so.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3719
|
|
Ported from wlr_render_rect().
|
|
`// struct <name>` appears roughly 4 times as often as
`// struct <name> *`. Switch to the former variant everywhere.
|
|
This optimization also fixes an validation error with the Vulkan
renderer by ensuring vkCmdClearAttachments does not receive empty
regions.
|
|
Up until now, frame/present events were only triggered when the
user submitted a buffer. Change the wlr_output API so that these
events are triggered when any commit is applied on an enabled
output.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3708
|
|
It's still not possible to commit while a page flip is pending in DRM,
but we don't need to enforce that here and allowing it through the
common interface can be useful for other backends.
This decouples commits from frame scheduling, which is going to make the
new frame schedulers easier to implement.
|
|
|
|
https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3664#note_2020392
we're gonna have to trust Simon on this one 🤞
|
|
Only open a render node if we actually need one (ie, if we're about
to attempt GLES2 or Vulkan).
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3709
|
|
This will be used for the scene-graph integration.
|
|
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.
|
|
This function is now unnecessary.
|
|
|
|
|
|
This assumption will become incorrect with future commits.
|
|
|
|
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.
|
|
Display is always NULL here since egl_init is always last to be called.
|
|
We want to eventually remove this. Let's make sure compositors
don't start using either of these functions.
|
|
frame_delay was set to 0.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3712
|
|
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.
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3685
|
|
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.
|
|
Keeps the main wlr_renderer.h a tad more tidy.
|
|
|
|
|
|
|
|
Backends should be using wlr_output_send_request_state to request
modesets to the compositor. This will be inlined and removed next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
By using this function, a compositor can display a wlroots
compositor in a sub-surface, for instance.
|
|
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().
|
|
This allows compositors to use an existing wl_display, to integrate
wlroots with an existing toolkit.
|
|
|
|
|
|
|
|
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).
|
|
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.
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3699
|
|
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.
|
|
xwm_get_atom_name() performs a roundtrip to the X11 server. Avoid
calling this blocking function if debug logs are turned off.
|
|
Downgrades the error message printed out when no DRM backend is given from `WLR_ERROR` to
`WLR_DEBUG`
|
|
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
|