bevyengine / bevyengine/bevy

Retained UI renderer

Open
#25,149 0 comments 2 reactions 0 assignees View on GitHub
A-Rendering A-UI C-Goal C-Performance D-Complex
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Goal Description

Rework `bevy_ui_render` to use a retained mode pipeline. The rendering state and derived data should persist across frames, rebuilt incrementally only on changes to layouts, styling and content. The primary focus is rendering, but many of the non-rendering UI systems will also need changes to update incrementally and provide finer grained change tracking.

## Goal Status

This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.

- **Staffing SMEs**: @ickshonpe
- **Working Group Link**: Working Group not yet formed
- **Design Documents**: Design documents not yet written

Contributor guide

Open the contributing guide

Research direction

Start by reading the bevy_ui_render implementation and checking the Project Goals Board for the goal's current status. No design documents or working group are provided, so the retained pipeline and incremental update boundaries still need to be defined. Done means UI rendering and affected non-rendering systems retain derived state across frames and update it only when layout, styling, or content changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.