Introducing Bitmap Cache #165
al6uiz
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
MewUI 0.16.0 introduces bitmap cache.
MewUI remains based on an immediate-mode rendering model. Instead of introducing a full retained-mode rendering system, bitmap cache allows selected UI regions to reuse previously rendered output until their visual content changes.
The manual part is choosing the cache boundary. For example, bitmap cache can be applied to a pane, panel, or stable control group. Once enabled, MewUI tracks visual changes inside that cached region. If a child element changes visually, the cached bitmap is invalidated and regenerated automatically.
This means the developer does not need to manually update the cache for every child visual change. The cache boundary is selected manually, while invalidation and regeneration are handled by the rendering system.
This is useful when most of a region remains visually stable while only some parts of the UI need to change. For example, a docking layout can benefit by applying cache to individual panes, rather than repeatedly redrawing unchanged pane contents.
In the sample gallery(MewVG GL Win32/Release Build), applying bitmap cache improved rendering throughput:
2600 FPS → 5100 FPSbandicam.2026-06-12.10-28-11-764.mp4
This result depends on cache boundaries, invalidation frequency, and rendering cost, so it should not be interpreted as a universal performance ratio.
MewUI 0.16.0 also includes MewVG GL backend optimizations. On Raspberry Pi 4, baseline performance at 1204x600 increased to around 20–100 FPS. With bitmap cache applied to suitable regions, the UI can stably maintain over 100 FPS.
Bitmap cache provides a practical optimization path for reducing redundant rendering work in mostly stable UI regions, while keeping the overall immediate-mode rendering model.
Bitmap Cache 도입
MewUI 0.16.0에 Bitmap Cache가 도입되었습니다.
MewUI의 기본 렌더링 모델은 여전히 즉시 모드입니다. 전역 retained-mode 렌더링 시스템을 도입하는 대신, Bitmap Cache를 통해 선택된 UI 영역이 visual content가 변경되기 전까지 이전에 렌더링된 결과를 재사용할 수 있습니다.
수동으로 지정하는 것은 cache boundary입니다. 예를 들어 Bitmap Cache는 pane, panel, 안정적인 control group 같은 단위에 적용할 수 있습니다. 한 번 지정되면 MewUI는 해당 cache 영역 내부의 visual 변경을 추적합니다. 하위 요소의 visual 상태가 변경되면 기존 cache는 invalidation되고, 필요한 시점에 bitmap이 자동으로 다시 생성됩니다.
즉, 개발자가 하위 요소의 visual 변경마다 cache를 직접 갱신해야 하는 구조는 아닙니다. 수동으로 선택하는 것은 cache 적용 경계이며, 변경 감지에 따른 invalidation과 재생성은 렌더링 시스템이 처리합니다.
이 기능은 대부분의 영역은 시각적으로 안정적이고 일부 UI만 변경되는 경우에 유용합니다. 예를 들어 docking layout에서는 전체 도킹 컨트롤이 아니라 개별 pane 단위로 cache를 적용하여, 변경되지 않은 pane 내용을 반복해서 다시 그리는 비용을 줄일 수 있습니다.
샘플 갤러리에서 Bitmap Cache를 적용한 결과는 다음과 같습니다.
2600 FPS → 5100 FPS이 결과는 cache boundary, invalidation 빈도, 렌더링 비용에 따라 달라지므로 모든 UI에 적용되는 보편적인 성능 비율로 해석해서는 안 됩니다.
MewUI 0.16.0에는 MewVG GL backend 최적화도 포함됩니다. Raspberry Pi 4에서는 1204x600 해상도 기준 기본 성능이 약 20–100 FPS까지 증가했으며, 적절한 영역에 Bitmap Cache를 적용하면 안정적으로 100 FPS 이상을 유지할 수 있습니다.
Bitmap Cache는 전체 즉시 모드 렌더링 모델을 유지하면서, 대부분 안정적인 UI 영역의 중복 렌더링을 줄이기 위한 실용적인 최적화 경로를 제공합니다.
Beta Was this translation helpful? Give feedback.
All reactions