srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/docs/DEFAULTS.md
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2025-08-08 23:28:00 +0200
committersrdusr <[email protected]>2025-08-08 23:28:00 +0200
commit9e811d2f2f1037ba4ec08ab0e05b350e6cf69e66 (patch)
tree2fa3f095b5f67769eca0eb9115faaf93fa37c0ae /docs/DEFAULTS.md
parent5f26a48fbb772ccc9c9ffb1209ff00d3c11d88c7 (diff)
downloadsrdwm-9e811d2f2f1037ba4ec08ab0e05b350e6cf69e66.tar.gz
srdwm-9e811d2f2f1037ba4ec08ab0e05b350e6cf69e66.zip
Render real window content on the GPU render path
Past clear-color + cursor: a GPU-driven head now renders every visible window's real content too, via surface_content_elements (the same generic-over-renderer helper the Pixman path uses, unmodified against gpu.renderer instead of udev.renderer). Content pushed after the cursor (so the cursor stays on top), in the same front-to-back `ids` order the Pixman path's own custom_elements already relies on for correct occlusion between windows - plain painter's-algorithm draw order, no separate clip needed since content is window-shaped. Deliberately the *unrounded* path: no corner masking (that's built against PixmanRenderer specifically on this backend) and no decorations (border, titlebar) - a GPU-driven head now shows real window content, square corners, no chrome. Decorations are the remaining real gap before this path has parity with the software one. Per-window geometry/position math (geom from window_anims or w.geometry, band for a decorated window's titlebar reservation, content_offset clamped non-negative) mirrors the Pixman path's own content push exactly, including an earlier double- subtraction and negative-margin fixes - so a CSD client with a real shadow margin positions the same way on either render path. Untested on real GPU-enabled hardware as of this writing: builds, passes clippy, full test suite green, and matches the existing Pixman path's geometry logic by inspection, but SRDWM_GPU/general.gpu were both unset on the machine this was built on - noted honestly in gpu.rs's own module doc comment, DEFAULTS.md, and IMPLEMENTATION_STATUS.md.
Diffstat (limited to 'docs/DEFAULTS.md')
-rw-r--r--docs/DEFAULTS.md13
1 files changed, 7 insertions, 6 deletions
diff --git a/docs/DEFAULTS.md b/docs/DEFAULTS.md
index ac18f7c..7e712c5 100644
--- a/docs/DEFAULTS.md
+++ b/docs/DEFAULTS.md
@@ -45,12 +45,13 @@ Read once at startup, not live-settable via `srd set` - the render
backend is wired into the DRM pipeline when the compositor connects to
its GPU, not something that can be swapped while running.
-Still missing real window content and decorations as of this writing:
-a GPU-driven head renders its own clear color and the real cursor, not
-yet any windows - see `crates/wayland/src/udev/gpu.rs`'s own module
-doc comment for the current state. `SRDWM_GPU=1` (an environment
-variable) remains a separate, lower-level override for testing without
-touching config - either it or `general.gpu` being set is enough to
+Still missing decorations (border, titlebar) as of this writing: a
+GPU-driven head renders its own clear color, the real cursor, and real
+window content (plain, square-cornered, no border/titlebar) - see
+`crates/wayland/src/udev/gpu.rs`'s own module doc comment for the
+current state. `SRDWM_GPU=1` (an environment variable) remains a
+separate, lower-level override for testing without touching config --
+either it or `general.gpu` being set is enough to
attempt GPU rendering.
### Monitor Settings (`monitor.*`)