Skip to content

deps: pin sdl_zig fizzy-1.0.3+3.4.16-9, the Wayland frame-inset fixes - #314

Merged
foxnne merged 1 commit into
mainfrom
deps/sdl-frame-insets-fixes
Oct 10, 2026
Merged

foxnne merged 1 commit into
mainfrom
deps/sdl-frame-insets-fixes

Conversation

@foxnne

@foxnne foxnne commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Part of #280 (step C2b landed on the forks).

Moves fizzy's .sdl pin to sdl_zig fizzy-1.0.3+3.4.16-9 (SDL fizzy-3.4.16-9), which fixes six problems in SDL patch 6 (Wayland frame insets, the margins fizzy draws its Linux window shadow in):

Fix SDL commit Shown by the suite
A window SDL makes again (e.g. for an OpenGL renderer) keeps its insets 9258288 yes
An opaque window's opaque region is its frame, not its shadow 0ca75f2 yes
The compositor's toplevel bounds are widened by the insets before the clamp 0426af9 no: weston never sends bounds
The input band is a creation property, SDL_PROP_WINDOW_CREATE_WAYLAND_FRAME_INPUT_MARGIN_NUMBER (default 8) 91b7a29 yes
The insets are published from creation, not only after show 883f5c8 yes
A window hidden and shown again is framed again 011a2dc yes (new bug, found while testing)

Fork PRs: fizzyedit/SDL#4 → fizzy-3.4.16-9, fizzyedit/sdl_zig#4 → fizzy-1.0.3+3.4.16-9.

  • Red: with only the test commit, every new assertion fails at scale 1 and 2.
  • Green: with the fixes, all 9 Wayland tests pass at both scales.

Fizzy's own use (linux_titlebar.zig) is unchanged: it keeps the default band, and its insets now also survive a recreate.

For later: upstream SDL main gained its own version of frame insets on 2026-09-24. It isn't in release-3.4.x, and it has none of these fixes. docs/DEPENDENCIES.md now says to move fizzy to upstream's API at the rebase onto a release that has it, keeping only what upstream lacks as patches.

#312 overlaps: it moves this pin from the root build.zig.zon into backend/build.zig.zon. Whichever PR lands second carries the -9 pin into the other's location.

Verified

On macOS (arm64), in a fresh workspace on main:

Gate Result
zig build 43/43 steps
zig build test 75/75 steps
zig build test-integration 35/35 steps, 354/354 tests
zig build check-web 16/16 steps
zig build test-sdk-version 12/12 steps
zig build -Dtarget=x86_64-linux-gnu 54/54 steps (builds the changed Wayland code)

Not verified: the fixes on a real GNOME desktop with fizzy itself. The evidence is the fork's suite under headless weston. The SDK fingerprint doesn't move, since plugins never link SDL.

🤖 Generated with Claude Code

SDL fizzy-3.4.16-9 fixes six problems in patch 6 (Wayland frame insets): insets lost when SDL
makes a window again, an opaque window's opaque region covering its shadow, the toplevel bounds
clamped by the surface rather than the frame, a hard-coded input band (now a creation property,
default 8), insets published only after show, and a window shown again losing its frame. Each
but the bounds clamp has an assertion that fails without its fix. fizzy's own use is unchanged.

DEPENDENCIES.md records the fixes, the suite's new checks, sdl_zig's CI change, both tags, and
upstream main's own version of the feature to move to at the next rebase.

Part of #280.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne
foxnne marked this pull request as ready for review October 10, 2026 00:51
@foxnne
foxnne merged commit fda1662 into main Oct 10, 2026
10 of 11 checks passed
@foxnne
foxnne deleted the deps/sdl-frame-insets-fixes branch October 10, 2026 00:53
foxnne added a commit that referenced this pull request Oct 10, 2026
The move redone on main: #309's Health.zig and its test, #314's SDL pin (now in
backend/build.zig.zon) and #315's Linux edits come along into backend/. The platform's
Objective-C is linked into the executable again (addPlatformObjC), not carried by the platform
module: it calls back into the platform's Zig, which #309's test of the backend alone never
reaches, so that test failed to link. Drops the .sb/ sandbox profile this branch had picked up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant