wlroots/render
Jose Maria Casanova Crespo f33853f861 render/gles2: add scissor-based clipping for tile-based renderers
Add an optional scissor-based clipping strategy to the GLES2 render
pass, it is enabled with WLR_GLES2_SCISSOR_CLIP=1 env var. And it is
disabled by default so it doesn't affect current users.

On tile-based renderers like V3D (Broadcom VideoCore, used in Raspberry
Pi), not using scissoring makes the GPU to render the full-surface.
If scissor is applied only the tiles affected are load/render/stored
reducing the GPU usage.

Patch backported to wlroots 0.19 with labwc on Raspberry Pi OS with
v3d running glxgear 300x300 on top left corner of screen:

- Before: labwc uses 21.5% of GPU render availability.
- After : labwc uses  3.3% of GPU render availability.

This patch over wlroots master with sway on Raspberry Pi OS with
v3d running glxgear half-screen and a terminal half screen:

- Before: sway uses 23.5% of GPU render availability.
- After : sway uses 13.6% of GPU render availability.
2026-03-12 22:00:03 +01:00
..
allocator render/allocator: add missing wlr_buffer_finish() in destroy impls 2025-12-20 15:02:08 -05:00
gles2 render/gles2: add scissor-based clipping for tile-based renderers 2026-03-12 22:00:03 +01:00
pixman treewide: make type-check helpers take const pointers 2026-03-06 16:04:21 +08:00
vulkan render/vulkan: relax minimum Vulkan API version to 1.0 2026-03-06 15:45:05 +01:00
color.c render/color: assert that wlr_color_transform_pipeline contains no NULLs 2025-12-18 14:58:28 +00:00
color_fallback.c render/color: replace COLOR_TRANSFORM_LUT_3D with COLOR_TRANSFORM_LCMS2 2025-06-16 09:06:10 +00:00
color_lcms2.c render/color: replace COLOR_TRANSFORM_LUT_3D with COLOR_TRANSFORM_LCMS2 2025-06-16 09:06:10 +00:00
dmabuf.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
dmabuf_fallback.c render/dmabuf: add dmabuf_export_sync_file() 2022-12-06 14:54:09 +00:00
dmabuf_linux.c render: drop <linux/dma-buf.h> compat defines 2026-01-04 00:30:34 +00:00
drm_format_set.c render/drm_format_set: fix corruption in wlr_drm_format_set_remove() 2024-11-28 19:14:31 +00:00
drm_syncobj.c render/drm_syncobj: fix function name in drmSyncobjTimelineWait() error log 2026-02-02 09:12:39 +08:00
egl.c treewide: fix typos 2026-02-28 04:26:47 -03:00
meson.build render: drop <linux/dma-buf.h> compat defines 2026-01-04 00:30:34 +00:00
pass.c render/pass: Ensure the precision is consistent during comparison 2025-05-29 21:50:21 +08:00
pixel_format.c render/pixel-format: add function to determine YCbCr from drm fourcc 2026-02-06 13:53:46 +00:00
swapchain.c swapchain: assert that size is not empty at creation time 2025-06-16 07:54:00 +00:00
wlr_renderer.c Fix/cleanup includes a bit 2025-04-15 20:13:29 +03:00
wlr_texture.c wlr_texture: Introduce wlr_texture_preferred_read_format 2023-11-30 19:56:54 -05:00