Repository navigation
Conversation
…rees Five areas of the drawing code, each patch verified on its own and then together: haze bands as rectangles when the horizon is level (menus, the pad) and the first sky pass's rows the thin pass repaints skipped, the raster helpers' bounds passed along and the grid's shared points projected once, the draw list's screen rectangles only when a structure is in view, HUD strings reused while their number is the same, the B&W renderer's lines and the Lite's hoops with less work per point. All 102 reference shots pixel for pixel the same, the physics traces byte for byte, every test; frame estimate TX16S class 24.2 -> 23.1 ms (-4.7%), TX15/MK3 class -5.9%, B&W radios 6.44 -> 6.02 ms (-6.5%); StickTime BW's heap high-water 107.6 KB, the Lite's 59.9. Camera tilt goes to 90 degrees in 5 degree steps (the Lite's list up to 90 too): straight up. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL
… visible rows, floats to integers without floorf firmware/edgetx-fast-lua.patch regenerated from the fork's fast-lua-20ms-next branch: the fast-lua commits rebased onto EdgeTX main a6c9920 (2026-10-25) plus three changes, each proven output-identical against the previous code: the SOLID path of BitmapBuffer::drawLine steps a pixel pointer (7 million random lines on five buffer sizes, byte for byte; a w == 1 column path in fastFill), drawFilledTriangle walks only the rows inside the clip rectangle and fills them in place (millions of random triangles, degenerate and huge ones included), and the Lua core's float-to-integer floor is an inline guarded conversion instead of newlib's floorf (all 2^32 floats compared; StickTime's suite and physics traces on a host built from it unchanged). All 16 target groups built on the fork's workflow. tools/build_firmware.sh drops an older patch from its own clone before applying. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL
firmware/edgetx-fast-lua.patch regenerated from the fork's fast-lua-20ms, now the released fast-lua build: EdgeTX main a6c9920 plus the fast-lua commits, the three drawing speedups and a fix for main's #7939. Its timer widget placed a label with lv_obj_align_to() from delayedInit(), which EdgeTX runs while LVGL draws: the whole screen was laid out mid-frame and LVGL dropped the redraws, leaving a band of old pixels through other widgets' text at power-up and model change (bisected on a V12). The patch still applies to main a6c9920; the README says what the fix is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL
Two changes of the speed pass were identical on the radios and the web emulator but not on StickTime Pi, whose default doubled render draws lines two rows thick and rectangles exact: the level-horizon haze painted as rectangles is gone again (the line per step, as 1.10.0), and the minimap's pond rows are 1-row rectangles instead of lines. The minimap's structure de-duplication now takes only rectangles at least a pixel each way: a hand-made track's negative size draws mirrored on the radio. On the Pi's own renderer (headless, its scenario runner) all 153 color views and 52 each of StickTime BW and Lite are identical to 1.10.0 at every picture detail; the 102 reference shots and the physics traces too. Frame estimate against 1.10.0: TX16S class -3.8%, TX15/MK3 class -2.2%, B&W radios -6.5%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL
…cker drawing Settings > Detail (color, High by default): Low draws the same picture simpler for a slow radio or a busy track: every other fine grid line, far hoops and gates simpler sooner (an arch keeps its whole ring to 35 m), a shorter fade at the horizon, trees and bushes without their lit side, and nothing of the mountains the haze covers. About 7% off a Classic frame and 10% off a Summer one on a TX16S; at High every picture is the same as before, and the game is the same at either. The harness flies every look at Low. Version 1.11.0, with its release notes: Detail, the second drawing pass (identical pictures on the radios and on StickTime Pi) and the camera tilt range. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL
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
Evidence
.tools/dev/pigolden): 153 color views and 52 each of BW and Lite identical at every picture detail. Physics traces are byte-identical in all three editions.Merge Danger
Door: two-way
Blast Radius: game
New setting defaults to High, which draws exactly as 1.10.0. Low is opt-in. Old saves read as High.
🤖 Generated with Claude Code
https://claude.ai/code/session_01MkNLxux5r6KXfp5KgkMDHL