Skip to content

chore(native): bump vendored Zireael to v1.3.11#219

Merged
RtlZeroMemory merged 2 commits intomainfrom
chore/bump-zireael-v1.3.11
Feb 26, 2026
Merged

chore(native): bump vendored Zireael to v1.3.11#219
RtlZeroMemory merged 2 commits intomainfrom
chore/bump-zireael-v1.3.11

Conversation

@RtlZeroMemory
Copy link
Owner

@RtlZeroMemory RtlZeroMemory commented Feb 26, 2026

Summary

  • bump vendored Zireael sources in packages/native/vendor/zireael/{include,src} to upstream tag v1.3.11
  • update packages/native/vendor/VENDOR_COMMIT.txt to 9e9ea6f54e3b83b60d6457b06646d5c488b94156

Validation

  • cargo test in packages/native compiles the wrapper and vendor successfully
  • note: existing environment issue reproduces on main and this branch: npm -w @rezi-ui/native run build:native fails with ENOVERSIONS for napi
  • note: existing native test crash reproduces on main and this branch: cargo test tests::diff_emits_dim_and_normal_intensity_sequences -- --exact segfaults

Upstream

Summary by CodeRabbit

  • New Features

    • Added rectangular blit rendering command to enable efficient copying of image regions in drawlist operations
    • Extended drawlist API to support version 2 while maintaining backward compatibility with v1
  • Improvements

    • Optimized framebuffer link synchronization during frame presentation operations
    • Removed redundant reset operations in framebuffer damage-rectangle copying procedures

@coderabbitai
Copy link

coderabbitai bot commented Feb 26, 2026

Warning

Rate limit exceeded

@RtlZeroMemory has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 12 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 49f6d64 and cced525.

📒 Files selected for processing (9)
  • docs/protocol/abi.md
  • docs/protocol/versioning.md
  • docs/protocol/zrdl.md
  • packages/core/src/abi.ts
  • packages/core/src/drawlist/__tests__/writers.gen.test.ts
  • packages/core/src/drawlist/__tests__/writers.gen.v6.test.ts
  • packages/core/src/drawlist/writers.gen.ts
  • packages/core/src/index.ts
  • scripts/drawlist-spec.ts
📝 Walkthrough

Walkthrough

This PR introduces v2 drawlist support by adding a new BLIT_RECT command opcode and dedicated command structure, updating version macros and vendor commit references, relaxing drawlist version validation to accept both v1 and v2 while enforcing v1 for event batches, and implementing complete BLIT_RECT handling including bounds validation and execution logic with framebuffer synchronization improvements.

Changes

Cohort / File(s) Summary
Version and Type Declarations
packages/native/vendor/VENDOR_COMMIT.txt, packages/native/vendor/zireael/include/zr/zr_version.h, packages/native/vendor/zireael/include/zr/zr_drawlist.h
Added ZR_DRAWLIST_VERSION_V2 macro, new ZR_DL_OP_BLIT_RECT opcode (value 14), and zr_dl_cmd_blit_rect_t struct with src/dst coordinates and dimensions. Updated vendor commit hash.
Version Validation Logic
packages/native/vendor/zireael/src/core/zr_config.c
Relaxed drawlist version check to accept both V1 and V2, while keeping event_batch_version strictly at V1. Separated validation conditions to allow independent version checks.
BLIT_RECT Command Processing
packages/native/vendor/zireael/src/core/zr_drawlist.c
Introduced v2 command support with BLIT_RECT handling including: version-gated processing, command structure validation, bounds checking against framebuffer dimensions, preflight validation, and execution via blit machinery. Added helper functions for bounds enforcement.
Framebuffer Synchronization
packages/native/vendor/zireael/src/core/zr_engine_present.inc, packages/native/vendor/zireael/src/core/zr_framebuffer.c
Optimized fb_prev link synchronization during present commit by conditionally skipping redundant clone operations when damage-rect copy succeeds. Removed duplicate zr_fb_links_reset call in zr_fb_copy_damage_rects as clone operation handles reset internally.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰✨ A blit command hops into view,
V2 dawns with rectangles fresh and new,
Bounds we check with careful grace,
Links sync true at every place!
The rabbit's work makes rendering fast. 🎨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.12% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping the vendored Zireael dependency to version v1.3.11, which is reflected in the VENDOR_COMMIT.txt update and the new code additions across multiple files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/bump-zireael-v1.3.11

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/native/vendor/zireael/include/zr/zr_drawlist.h`:
- Around line 66-67: Add the missing ZR_DL_OP_BLIT_RECT opcode to the TypeScript
drawlist spec and docs: update scripts/drawlist-spec.ts to include an entry for
ZR_DL_OP_BLIT_RECT = 14 (matching the native symbol ZR_DL_OP_BLIT_RECT), then
run npm run codegen and npm run codegen:check to regenerate and validate the
generated protocol bindings, update docs/protocol/zrdl.md to document the
BLIT_RECT command and docs/protocol/versioning.md to record the protocol change,
and add/adjust tests to cover the new BLIT_RECT opcode handling in the drawlist
serialization/deserialization logic.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6a55167 and 49f6d64.

📒 Files selected for processing (7)
  • packages/native/vendor/VENDOR_COMMIT.txt
  • packages/native/vendor/zireael/include/zr/zr_drawlist.h
  • packages/native/vendor/zireael/include/zr/zr_version.h
  • packages/native/vendor/zireael/src/core/zr_config.c
  • packages/native/vendor/zireael/src/core/zr_drawlist.c
  • packages/native/vendor/zireael/src/core/zr_engine_present.inc
  • packages/native/vendor/zireael/src/core/zr_framebuffer.c
💤 Files with no reviewable changes (1)
  • packages/native/vendor/zireael/src/core/zr_framebuffer.c

@RtlZeroMemory RtlZeroMemory merged commit 9746cba into main Feb 26, 2026
7 of 8 checks passed
@RtlZeroMemory RtlZeroMemory deleted the chore/bump-zireael-v1.3.11 branch February 28, 2026 04:18
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