Default ios.metal to true and document the renderer#5065
Merged
Conversation
Flips the IPhoneBuilder default for the ios.metal build hint from false to true so new iOS builds pick the Metal renderer by default. OpenGL ES is deprecated on iOS and the Metal pipeline (#4799) has been stable on master since the polygon-clip fixes for #3921. Users can still opt out with ios.metal=false. Documents the renderer in the developer guide: a new Metal renderer section in Working-With-iOS.asciidoc explains the default and the opt-out, the existing color-space section is reworded to reflect Metal being the default, and the build-hints reference table in Advanced-Topics-Under-The-Hood.asciidoc gains entries for ios.metal and ios.metal.colorSpace (both were missing). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
Collaborator
Author
|
Compared 116 screenshots: 116 matched. Native Android coverage
✅ Native Android screenshot tests passed. Native Android coverage
Benchmark ResultsDetailed Performance Metrics
|
Contributor
|
Developer Guide build artifacts are available for download from this workflow run:
Developer Guide quality checks: |
Contributor
Cloudflare Preview
|
Collaborator
Author
|
Compared 114 screenshots: 114 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
Collaborator
Author
|
Compared 116 screenshots: 116 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
The build-ios job exists to exercise the legacy OpenGL ES 2 path. Now that IPhoneBuilder defaults ios.metal to true, that job would silently start running Metal builds, collapsing both jobs onto the same backend. Inject ios.metal=false into hellocodenameone's codenameone_settings.properties before the build, mirroring the ios.metal=true override the build-ios-metal job already does. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
Compared 47 screenshots: 47 matched. |
The Metal screenshot job has been timing out at the 30-min test-step cap on master (~60% pass over the last 5 master runs, killed at the CN1SS:SUITE:FINISHED wait). Bump the per-step cap on both the GL and Metal test runs from 30 to 45, and raise the job-level timeout from 45 to 60 so it still covers the longer test envelope. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
shai-almog
added a commit
that referenced
this pull request
May 29, 2026
…5074) * Blog: weekly format refresh, Metal default, new Build Cloud console Adds the May 29 weekly release post that introduces the shorter, TL;DR-focused weekly format and announces two website-facing changes the post depends on: - ios.metal is the default for new iOS builds (PR #5065). - Every Dashboard link on the website now points at the new /console/ UI instead of /secure/. The legacy /secure/ console stays online for the time being. URL updates in this commit: - docs/website/hugo.toml: developers-menu and top-nav Dashboard URLs. - docs/website/content/build-server.md: primary URL + legacy fallback. - docs/website/content/site-map.md: split Dashboard entry into Console and Legacy. - docs/website/layouts/_default/pricing.html: free-tier Sign Up CTA. Historical blog posts that mention /secure/ are left untouched. * Intro post: consolidate upcoming attractions to 3 themed follow-ups Replaces the nine per-PR bullets with three themed bullets so the release cycle ships fewer, broader posts and does not bleed into next week's index: - Developer workflow (Sat): on-device debugging + JUnit. - Platform APIs in the core (Mon): WiFi + OIDC + WebAuthn + Share + AI / LLM / Speech / ChatView. - Build-time codegen (Wed): annotation framework + router + ORM + mapping + binding + Immich baseline + SVG / Lottie transcoders. Total: four posts (intro + three follow-ups). Back half of the week intentionally left clear. * Intro post: style pass + hero image Edits requested on the PR: - "I" voice replaced with "we" throughout. - The "I trailed this" line rephrased in simpler language ("we decided to push this back by one week"). - Build-hint snippet uses ios.metal=false, matching what shows up in the settings app (not the codename1.arg. prefix). - The phrase "legacy console" is now the link to the old /secure/index.html URL. - "we want it to retire empty" replaced with a cleaner sentence. - "Those are historical text..." sentence removed. - "That keeps this release cycle to four posts..." sentence removed from the upcoming-attractions section. - The grab-bag bullet no longer names the specific Flutter source app; the porting exercise is described generically instead. Also adds the hero image at static/blog/metal-default-new-build-cloud-and-a-new-format.jpg.
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.
Summary
IPhoneBuilderdefault for theios.metalbuild hint fromfalsetotrue. New iOS builds now pick the Metal renderer (CAMetalLayer) instead of the deprecated OpenGL ES 2 path (CAEAGLLayer). Existing apps can still opt out withios.metal=false.319c758b,c56e7aab,1a5b132a,ca35538c,6b553ff4) and the screenshot golden inscripts/ios/screenshots-metal/graphics-clip-under-rotation.pngmatches the GL output.=== Metal renderersection inWorking-With-iOS.asciidocexplains the default and how to opt out.=== Choosing a color space for the Metal renderersection is reworded so it reads as documentation of the default backend rather than an opt-in.Advanced-Topics-Under-The-Hood.asciidocwas missingios.metalentirely. Adds entries for bothios.metalandios.metal.colorSpace, with cross-links to the Working-With-iOS detail sections, and appendsios.metalto the "required" build-hint flat list further down.Test plan
ios.metalhint: the binary should link withCN1_USE_METALdefined and shipMainWindowMETAL.xib/CodenameOne_METALViewController.xib.codename1.arg.ios.metal=false: the binary should fall back to the OpenGL ES 2 path and ship the legacyMainWindow.xib/CodenameOne_GLViewController.xib.graphics-clip-under-rotationscreenshot on the Metal default — should match the existing committed golden.🤖 Generated with Claude Code