Skip to content

v2.0.0 Tile caching for static scenes and a push/pop clip API

Choose a tag to compare

@Geolm Geolm released this 28 Oct 01:37
· 28 commits to main since this release

What's new since v1.2.3 — all about performance, plus one breaking API change:

  • Tile cache (new cache option) — opt-in flag in onedraw_def; a persistent full-screen tile cache (4 bytes/px, up to ~64 MiB at 4096×4096) skips fragment work on unchanged tiles. Measured 1.69 ms → 1.11 ms GPU time on a static 1440p scene (M5 Pro), with indirect redraw of clean tiles
  • Breaking API change: clip is now a push/pop stack — od_set_clip* → od_push_cliprect / od_push_cliprect_rounded / od_push_clipdisc, plus new od_pop_clip(). A pushed clip replaces the current one (not intersected), max 256 per frame, must be balanced by end of frame. This is the reason for the 1.2.3 → 2.0.0 bump
  • Shader and rasterizer optimizations, internal binning rework, and a new command refactor