Skip to content

Continue compatibility improvements - #30

Merged
AlexProgrammerDE merged 3 commits into
mainfrom
t3/compatibility-maintenance
Nov 3, 2026
Merged

AlexProgrammerDE merged 3 commits into
mainfrom
t3/compatibility-maintenance

Conversation

@AlexProgrammerDE

@AlexProgrammerDE AlexProgrammerDE commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Native UI backgrounds could remain transparent when a nine-slice interior stretched a single texture point. Bedrock 1.26.60.5 uses this layout for its opaque 2×2 Black texture. The Java draw path discarded these regions because their UV endpoints coincide.

The owning shared-renderer patch now submits nonempty destinations with constant UV coordinates. Empty destination and non-finite geometry checks remain in place. The draw regression fails before the correction and also checks that a zero-width destination emits no graphics calls.

The rebuilt installed add-on matches all 266,072 sampled native background pixels at 1280 × 720 and native UI scale 2. Java GUI scales 1, 2, 3, and return to 1 retain the match and all 63 selected bitmap glyph masks. Text bounds and the action button are excluded from the background sample. The previous installed control had 265,694 non-black pixels in that same background sample.

The complete 180-second replay preserves the recorded scene payload and verifies the installed add-on bytes. All recorded Java process identities are terminal.

The full dependency build passes: CubeConverter 21 tests, ViaBedrock 2,240 tests, and the add-on 1,451 tests, with no failures. Core and add-on retain 176 and 153 optional skips.

The TrueType investigation now executes the original Bedrock 1.26.60.5 initializer, glyph lookup, outline, rectangle, raster, and filter instructions. Native cache pixels and packed metrics match the installed LWJGL 3.4.3 STB rasterizer in all 36 CPU controls: six glyphs at three heights for MinecraftTen and an additional curved-outline font. Native rasterization uses fractional scaling and 2×2 oversampling. The fixture supplies atlas placement and external allocation, memory, and rounding interfaces; it does not execute cache I/O, GPU upload, shaders, or full native screens. A production provider, bounded font validation, resource lifecycle, and GPU comparisons remain required. Production font behavior is unchanged.

Other background layouts, TrueType glyph appearance, narrow-label overflow with a glyph smaller than the marker, action appearance, and complete screen parity remain open. The full movement, inventory actions, native screens, camera, rendering integration, and skin-parity goals remain active. No fresh public-server result is included.

Summary by CodeRabbit

  • New Features
    • Added native Bedrock UI scene support, including layouts, images, text, animations, input, focus, scrolling, and viewport handling.
    • Added native HUD overlays, actor portraits, bitmap fonts, multiline text boxes, and support for JPEG and bounded remote images.
  • Bug Fixes
    • Nine-slice images now render when their destination has area, including when sampling a single texture point. Empty destinations remain skipped.

Record the version-matched outline scale and the installed Java provider rounding behavior. Keep the remaining raster work explicit so an oversampling adjustment cannot be mistaken for native pixel parity.
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

The patch updates nine-slice image submission so nonempty regions with coincident UV endpoints are drawn, and adds regression coverage and rendering validation notes. Separate validation notes report native and Java font-scaling comparisons and their fixture limits.

Changes: Native UI scene rendering

Layer / File(s) Summary
Nine-slice submission and regression coverage
patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.patch, patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.pr.md
Image submission no longer rejects a region only because its U or V endpoints are equal. Zero-width and zero-height destinations remain skipped. A regression test checks both cases. Validation notes report sampled background parity and retain open items for other background layouts, action appearance, and complete column placement.

Font scaling validation

Layer / File(s) Summary
Font raster comparison findings
patches/viabedrock/upstreamable/0095-share-native-ui-programs-and-resources.pr.md
The validation notes compare native glyph-cache scale with Java provider-size scaling. They report matching pixels and packed metrics across 36 CPU cache controls and state the fixture limits and remaining validation needs.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

  • StackAnvil/patches#20: Changes the same shared UI renderer and resource patches covered by this pull request.
  • StackAnvil/patches#28: Changes shared UI renderer paths, including clipping and glyph rendering.
  • StackAnvil/patches#29: Changes the shared UI renderer and bitmap-font layout code, which overlap with this pull request’s renderer and font validation areas.
Merge Risk: Minimal · up to 5171b

No concrete merge-blocking defect is established by the reviewed changes.

Pre-merge checks: Passed 4 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Title check Inconclusive The title "Continue compatibility improvements" is vague and generic. It does not name the main change, which is a shared-renderer correction for native UI nine-slice backgrounds (constant UV coordina… Replace the title with a specific summary of the primary change. For example: "Fix nine-slice UI background UV coordinates for native UI rendering" or a similar title that names the nine-slice background correction in the shared renderer.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)

Full details: Title check

Explanation

The title "Continue compatibility improvements" is vague and generic. It does not name the main change, which is a shared-renderer correction for native UI nine-slice backgrounds (constant UV coordinates for nonempty destinations with coincident UV endpoints), along with related native UI rendering and font work. The phrase "compatibility improvements" could describe any change, so a teammate scanning history cannot identify the primary change from it.

Resolution

Replace the title with a specific summary of the primary change. For example: "Fix nine-slice UI background UV coordinates for native UI rendering" or a similar title that names the nine-slice background correction in the shared renderer.

Finishing Touches
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 9dd0ad6 and 5171bd7.

Files selected for processing: 3
  • patches/viabedrock/upstreamable/0095-share-native-ui-programs-and-resources.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.patch
  • patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.pr.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Preserve nonempty native UI regions whose UV endpoints coincide. The version-matched 2x2 Black texture uses this layout, and dropping its center exposed the world through the background.

Fold the correction and regression into the owning renderer patch. The full build passes, and an installed 180-second replay retains the scene payload while matching the sampled native background and 63 bitmap glyph masks across GUI scales.
Distinguish native base metrics from the doubled raster scale. Record 36 original-instruction cache controls that match the installed STB rasterizer, along with the fixture boundaries and the provider and GPU work still required.
@AlexProgrammerDE
AlexProgrammerDE merged commit bfa7860 into main Nov 3, 2026
7 checks passed
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