Skip to content

Optimize YDR IO - #302

Merged
Hancapo merged 2 commits into
mainfrom
a/optimize-ydr-io
Sep 9, 2026
Merged

Hancapo merged 2 commits into
mainfrom
a/optimize-ydr-io

Conversation

@Hancapo

@Hancapo Hancapo commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Materialize nominal vectors directly in the native decoder and reuse float64 position snapshots for bounds and vertex packing.
  • Prepare drawable bounds once per save, including shared YDD/YFT writers; transform rigid geometry through shared NumPy math without temporary vectors.
  • Remove redundant channel copies and index normalization, and resolve vertex declarations once per channel.
  • Retain zlib (YDR level 6) and Python 3.11+ / abi3 compatibility.

Verification

  • 2,114 unit tests and 7 subtests passed locally.
  • 34 tests passed on an isolated installed wheel in Python 3.11, including the explicit ABI-floor test.
  • 14 benchmark outputs are byte-identical to the previous optimization baseline in the same interpreter.
  • Latest Python 3.14 writing improvements: 8,192-triangle grid 11.16 to 7.07 ms; multiple materials 22.59 to 13.69 ms; rigid skeleton 23.95 to 7.10 ms; skinning 14.66 to 10.77 ms.

@Hancapo Hancapo changed the title Optimize YDR IO and keep development docs local Optimize YDR IO Sep 9, 2026
@Hancapo
Hancapo merged commit 1ea97bc into main Sep 9, 2026
2 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