Repository navigation
ci: build SDL with the frame-insets fixes, with GLES and a timeout - #4
Merged
Merged
Conversation
The suite's wayland_frameInsetsRecreated (fizzyedit/fizzy#280, C2b) makes a shown window again through SDL_RecreateWindow by giving it an OpenGL ES renderer, which needs EGL and GLES: Mesa's libegl-mesa0 (llvmpipe) with libegl1 and libgles2. Both jobs that run FizzyWayland install them, test-fizzy-wayland-insets and test-fizzy-linux (wayland). Both jobs also stop after 20 minutes. While a test traces, its stderr is a file, and a test that hung (a first version of wayland_frameInsetsShownAgain) ran silently for an hour before the run gave up. Fizzy-only, with the SDL pin that follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pin moves to branch wayland/frame-insets-fixes of fizzyedit/SDL:
fizzy-3.4 (fizzy-3.4.16-8) plus the six fixes to patch 6 ("Wayland: frame
insets") that fizzyedit/fizzy#280 step C2b asked for, and the FizzyWayland
assertions that check them. A test pin: the SDL commit needs a permanent tag
before this merges, and the pin then moves to it. Squash into 1 at the next
rebase.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
foxnne
marked this pull request as ready for review
October 9, 2026 23:09
foxnne
added a commit
to fizzyedit/fizzy
that referenced
this pull request
Oct 10, 2026
…#314) 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](https://github.com/fizzyedit/sdl_zig/actions/runs/38000927122): with only the test commit, every new assertion fails at scale 1 and 2. - [Green](https://github.com/fizzyedit/sdl_zig/actions/runs/38001031572): 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](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of fizzyedit/fizzy#280 (step C2b). Runs fizzyedit/SDL#4.
wayland_frameInsetsRecreatedmakes a shown window again (SDL_RecreateWindow) by giving it an OpenGL ES renderer, so both jobs that run FizzyWayland (test-fizzy-wayland-insets,test-fizzy-linux (wayland)) installlibegl1 libegl-mesa0 libgles2. Both jobs also time out after 20 minutes. A first version ofwayland_frameInsetsShownAgainhung, and while a test traces its stderr is a file, so the run ran silently for an hour.wayland/frame-insets-fixes(011a2dc5):fizzy-3.4(fizzy-3.4.16-8) plus SDL#4's test commit and six fixes. Squash into 1 at the next rebase..github/workflows/ci.yamlkeeps its CRLF line endings.Verified
011a2dc5) via sdl_zig#4's pin: https://github.com/fizzyedit/sdl_zig/actions/runs/38001031572. Intest-fizzy-wayland-insetsat scale 1 and 2, and intest-fizzy-linux (wayland)(where libdecor is installed), all 9 FizzyWayland tests pass, 0 asserts fail. The run concludes success. Thebuild (master, …)jobs fail as they do onfizzyitself: Zig master,continue-on-error.1eb90b75,fizzy-3.4+ suite) on a throwaway sdl_zig branch, since deleted: https://github.com/fizzyedit/sdl_zig/actions/runs/38000927122. At both scales every new assertion fails, and Popup alone passes:(0, 0, 400, 300)instead of(24, 6, 346, 254)in every floating check (2);created hidden: all four insets-1 (not published)(5);recreated: noset_window_geometry, input region never set, opaque region the whole surface (1);shown again: noset_window_geometry, input and opaque region never set (the hide/show fix);(16, 0, 362, 268)instead of(12, 0, 370, 272); margin 0:(16, 0, 362, 268)instead of(24, 6, 346, 254)(4).wayland_frameInsetsShownAgainwith the window still claimed by the GPU device. That is why the test now releases and reclaims the window, and why the jobs have a timeout.-Wall -Wextra -Wmissing-prototypes -Wmissing-variable-declarations -Wshadowfor x86_64-linux and aarch64-macos (suite), and for Linux through sdl_zig (zig build test-fizzy -Dtarget=x86_64-linux-gnu). The macOS runners skip the suite (Wayland only) and pass.The SDL commit needs a permanent tag (e.g.
fizzy-3.4.16-9, the maintainer's to name) before this merges. The pin then moves from011a2dc5to the tagged commit (the same one if SDL#4 lands unchanged).🤖 Generated with Claude Code