Repository navigation
Integrate and qualify the pending rendering, text and platform work - #360
Merged
wieslawsoltes merged 675 commits intoOct 11, 2026
Merged
Conversation
…r selection Retain every positioned occurrence, flatten through the existing native path implementation, and publish bounded convex coverage through an atomic vertex-mesh builder. Keep automatic source selection gated while provider qualification continues. Validation: 49 macOS native tests; Windows ARM64 compatibility/internal tests; C++ module consumer; native contract checks. The Windows diagnostic retains 1121 passing comparisons and 1351 unchanged source captures. Both native providers match in all 314 cold/warm frames; 156/157 distinct frames match Windows exactly, with one 127-versus-128 byte remaining explicit. No pixel tolerance or original gate was changed.
This was referenced Oct 10, 2026
Remove the RaymarchingPrimitives and StarNest sample sources, UI entries and dedicated tests. Preserve published history under the owner's explicit 2026-10-10 exception; historical provenance cleanup is tracked in #362.
Retain physical glyph coverage and exact source-path frames independently of target-DIP paint coordinates. Validate the additive transport atomically and share canonical coverage shaders and retained ownership across both native providers. Keep all original Microsoft glyph captures and independently compare prepared geometry with original FillGeometry, including cold/warm ownership and upload controls. Validated on macOS ARM64 (49 native tests), original Windows ARM64 Direct2D WARP (1399 comparisons), the full stock D3D12 WARP aggregate, managed shader/interop controls (166 tests), and generated native contracts. Full CI and Windows Dawn/package qualification remain required before release.
Advance all current package defaults, the four Avalonia project versions, package manifests, consumer examples and release notes together. The previous Avalonia preview.63 versions already exist on NuGet and would be skipped by release publication. Verified all 70 intended package/version identities are unpublished, the package manifest and documentation checks pass, and actual MSBuild evaluation agrees with the package registry for both Avalonia lanes and the runtime dependency.
Separate the guarded append failure from the following assignment for GCC misleading-indentation checks. Record original sheared scene hashes and exact cold/warm pixel differences without changing the comparison gate. The expanded Windows ARM64 WARP aggregate reaches its final Direct2D/stroke families after 832 seconds; give the complete process a bounded 1200 seconds while retaining every per-frame deadline, original input and assertion. This is compilation/corpus allowance, not hardware performance qualification. Both native provider aggregates pass locally on macOS ARM64. Intel macOS exact-pixel qualification remains unresolved and the integration must remain a draft.
This was referenced Oct 11, 2026
Reuse the canonical ProGPU winding evaluator behind complete all-line segment admission in both native providers, for ordinary path frames and retained clips. Keep curved and staged routes, ownership, workgroups, compiler/adapter defaults and original sample gates intact. Fix the shared signed final predicate to retain even nonzero winding magnitudes, independently confirmed with original Microsoft WPF geometry. Validation: 1,040 independent region cases plus six whole-inventory rejection controls pass on Windows ARM64 Basic D3D12 and Metal; Metal general kernel agrees on every region. Unchanged Basic native sample exits zero in 67.323 s; original Metal sample remains byte-identical. Native CTest 49/49, headless 278/278 and source harness 7/7 pass. Broad renderer run: 6,136 passes, nine platform skips; one stale embedded shader comment assertion was fixed by rebuilding, with all 35 affected tests then passing. Whole producer CI remains required; Intel UNORM blocker #363 remains open. Refs #364, #361
Bind the actual shader receiver rectangle independently from the cache source and use an explicit unit-DPI scene request. Preserve every ownership assertion and add rejection controls for absent receiver bounds and the legacy context-free compile path. Use a fresh request serial for each independent recompilation. Validation: the previously failing fixture completes for WgpuNative and Dawn against real local osx-arm64 libraries; the broader consumer then reaches the unrelated optional font dependency missing from this local build. Previous exact-head CI passed all six native producer jobs and all 12 companion workflows; the complete new Build remains required. No product, shader, pixel reference, selector, or staging-policy changes.
Use the same signed FreeType and pinned private ICU producers as Build for every release RID, and pass both exact inputs through native compilation and runtime staging. Preserve original dependency notices, package consumers, and all release gates. Validation: all 49 native CTests pass with the real verified local dependencies; complete source-referenced .NET consumer, all ten focused MIL scenarios, and both EDIT boundary providers pass. Existing 39 font and 19 ICU admission tests pass. All 31 release Bash blocks parse, embedded ICU Python compiles, and six-RID dependency/build steps match the established Build workflow. Hosted whole-producer and source-independent release package qualification remain required.
Install the already archived private dependency as an immutable file. Apple TARGETS/ARCHIVE installation invokes ranlib and rewrites the archive-index timestamp, which correctly invalidates the original exact producer receipt. Preserve that receipt and its hash rather than accepting or regenerating metadata for altered bytes. Validation: reproduced installed-SDK rejection with exactly three differing archive timestamp bytes; after the fix all 36,084,688 source/archive bytes and the original SHA-256 match. The original C++ SDK consumer configures, links through the exported transitive targets, and executes successfully against the real installed arm64 SDK. Both native product libraries and dependency archive remain unchanged; the earlier 49 CTests and complete source-referenced JIT/AOT consumers passed.
Select bounded integer or original floating line crossings after unchanged range and lattice admission in the canonical managed/native shader. Preserve every endpoint, sample, winding and Boolean operation; no extra dispatch or storage. Validated 6137 managed tests (9 platform skips), 278 headless tests, 49 native macOS tests, original ARM64 D3D12/DXC retained MIL source consumer, and 6963200 exact differential bytes across 40 mapping cases. Local Windows dependency-free diagnostic omits only the unrelated inline-font preflight; full producer/package CI remains required.
wieslawsoltes
marked this pull request as ready for review
October 11, 2026 16:24
This branch was successfully deployed
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.
This integrates the pending rendering, text, platform and source-adapter work through #359 while preserving all 84 original PR heads. The combined changes repair native transport and compilation, retained shader sampling and opacity, Direct2D clips and Clear, physical path/glyph coverage, font ownership and placement, and native window/input lifetimes.
Published head:
3a95a19e7e6d245dfc7e4e83948eeb316353c5ec. The whole Build has passed all 59 jobs, including all six native producers, native NuGet packaging, independent graphics oracles and original Windows ARM64 DX12 JIT/NativeAOT consumers. All 12 companion workflows passed on this exact head. Both downstream integration pins are now published; coordinated consumer CI is running.Rendering behavior
Original physical glyph coverage and bounded physical source paths retain their independent Microsoft references. Both physical M3 native Metal providers match all 278 original glyph captures exactly, cold and warm, with zero warm vertex/index/coverage uploads. Independent line/curve controls retain their own reference pixels. The tests distinguish original DrawGlyphRun coverage from FillGeometry: independent/prepared geometry pairs agree, while glyphs are compared with their unchanged original glyph images.
Native signed winding uses a separate lazy pipeline only after validation proves the complete original segment inventory contains lines. Both native providers and retained clips use this gate. Any curve or unknown kind, including an unused one, rejects the raw specialized entry before writing. The shared final predicate preserves even Nonzero winding magnitudes; the original Microsoft WPF oracle independently confirms clockwise/counterclockwise contours and cancellation.
The ordinary line shader now selects exact bounded integer or original floating crossings after the unchanged complete range/lattice admission. This removes the per-line admission early-return shape that crashes ARM64 D3D12/DXC WARP. Candidate integer arithmetic is bounded without altering source coordinates or admitting off-grid samples. All eight sample lanes, half-open endpoints, winding, curves, Boolean programs, workgroups, buffer ownership, submissions and compiler/adapter defaults remain intact. The canonical shader supplies managed rendering and both native providers.
The package DrawingImage fixture supplies its actual shader-receiver bounds and explicit physical frame and rejects either missing input. All ownership assertions remain. Release native production now prepares and stages the same exact signed font and pinned ICU dependencies as Build on all six RIDs, with original notices. CMake SDK installation copies the original ICU archive unchanged so Apple ranlib cannot invalidate the strict receipt.
Validation
3a95a19e7: 59/59 jobs passed. The original ARM64 DX12 package JIT/NativeAOT job passed all retained scene/resource/ownership/query checks. The macOS ARM64 sample's original 60-second timeout passed on one unchanged retry (47.26 seconds); no source, input or timeout changed. All 12 companion workflows also passed.Release boundaries
The owner-approved Intel exception in #363 is limited to the diagnosed original red-byte UNORM conversion and independently verified half-opacity/recorder consequence. Original reference captures, complete source guards, both windings, cold/warm identity and every other pixel/channel remain exact. It does not waive this DX12 failure or any producer, package or application gate.
Legacy RaymarchingPrimitives/StarNest presets are removed from the current tree under the owner's explicit exception preserving published history; #362 tracks historical cleanup. Runtime and Avalonia versions are aligned for preview.66. Remaining Display text, shader/cache, mapped-picture and native popup/input admission and application work stays explicit in #361. Windows evidence is in #364.
Downstream integrations: wieslawsoltes/LibreWinForms#159 and wieslawsoltes/LibreWPF#258. They may consume only native artifacts from the whole successful exact producer. Qualified dependency pins are published in both integrations. Default-branch merge and release are next after their native staging steps complete.
Research and ownership boundaries use primary public contracts; no foreign implementation was imported.
Supersedes these 84 draft PRs, whose latest remote heads were checked as ancestors before consolidation: #263, #264, #265, #266, #267, #268, #269, #271, #272, #273, #274, #275, #276, #277, #278, #279, #280, #281, #282, #283, #284, #285, #286, #287, #288, #289, #290, #291, #292, #293, #294, #295, #296, #298, #299, #302, #303, #304, #305, #306, #316, #317, #318, #319, #320, #321, #322, #323, #324, #325, #326, #327, #328, #329, #330, #331, #332, #333, #334, #335, #336, #337, #338, #339, #340, #341, #342, #343, #344, #345, #346, #347, #348, #349, #350, #351, #352, #353, #354, #355, #356, #357, #358, #359. Closing them consolidates tracking; it does not mark the work merged or fully qualified.