Age | Commit message (Collapse) | Author |
|
The kernel complains when the damage exceeds the FB bounds:
[73850.448326] i915 0000:00:02.0: [drm:drm_atomic_check_only] [PLANE:31:plane 1A] invalid damage clip 0 0 2147483647 2147483647
Make the DRM backend behave like the Wayland one and allow compositors
to damage (0, 0, INT32_MAX, INT32_MAX) to repaint everything without
needing to know the exact buffer size.
Closes: https://github.com/swaywm/sway/issues/7632
|
|
|
|
|
|
|
|
If the set_cursor request is used with the same surface, don't call
cursor_output_cursor_reset_image(). That function sends
wl_surface.leave and can cause an infinite feedback loop with some
clients (submitting a LoDPI cursor when the surface leaves an HiDPI
output).
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3669
|
|
|
|
In the next commit, state such as scale, transform, width/height that
we gather from the output might be outdated and incorrect.
|
|
|
|
Same motivation as fdb199a43c44 ("render/vulkan: rename
tex_features to shm_tex_features").
|
|
Make the compositor responsible for doing that, so that they can
properly integrate with their output commit sequence.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Currently, an icon surface's role_data is set manually to a struct
wlr_drag_icon, which is hacky, incorrect (as role_data is supposed
to be the surface's role object, and drag icons don't have them), and
will be disallowed by future changes.
|
|
Otherwise only the last command's area will be copied over.
|
|
renderer->render_{width,height} are unused with the render pass
API.
|
|
renderer->bound_pipe is legacy, pass->bound_pipeline is used for
the render pass API code-path.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3657
|
|
We use the format info to check the stride and need it to perform
the texture upload.
|
|
The logic is the same for both shm and DMA-BUF.
|
|
Avoids repeating the common bits between dma_tex_features and
dma_tex_ycbcr_features, and we will need just the YCbCr-related
flags for shm YCbCr support soon.
|
|
These features are required for shm only: the TRANSFER stuff is
for texture upload. We don't need these for DMA-BUFs. Make this
clearer by changing the name.
Also re-order the definitions to group all texture-related features
together.
|
|
"On surface.attach requests to the pointer surface, hotspot_x and
hotspot_y are _decremented_ by the x and y parameters passed to the
request."
|
|
We don't need to mutate the event in this function.
|
|
Fixes: 49e9be62ae92382eddca600082785489c82ea487
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We already have another very similar example which demonstrates
wlr_cursor: "pointer".
|
|
|
|
Based on five calls:
wlr_render_timer_create - creates a timer which can be reused across
frames on the same renderer
wlr_renderer_begin_buffer_pass - now takes a timer so that backends can
record when the rendering starts and finishes
wlr_render_timer_get_time - should be called as late as possible so that
queries can make their way back from the GPU
wlr_render_timer_destroy - self-explanatory
The timer is exposed as an opaque `struct wlr_render_timer` so that
backends can store whatever they want in there.
|
|
|
|
Similar to 49e9be62ae92382eddca600082785489c82ea487.
|
|
|
|
Use the viewporter protocol to scale output layers.
|
|
This example is incomparable with the new rendering API. The old one which
we will drop one day.
|
|
read advances the file description offset, and requires the client to
ensure that it is reset appropriately before the next gamma ramp
submission. As there is no event to indicate that wlroots finished
processing the new gamma ramp, this can result in a race between the
client seeking in the file and wlroots reading its content.
Use pread with a fixed offset instead.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3655
|
|
This is the default order used across wlroots unless the reversed order
specifically is required (e.g. in wlr_surface_surface_at()).
|
|
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654
|
|
|
|
Inert seats are handled like inert outputs, so they work as if the
wanted seat was NULL. The seat argument is only a suggestion, so this
is okay.
|
|
According to the protocol text, the popup will be immediately dismissed
when the grab is rejected. Because the grab can't be executed with a
destroyed seat, the popup is dismissed when one is provided.
|
|
|