2.4 KiB
| id | ticket | title | status | created | resolved | decision | tags |
|---|---|---|---|---|---|---|---|
| AGD-0010 | perf-gfx-render-pipeline-and-dirty-regions | Agenda - [PERF] GFX Render Pipeline and Dirty Regions | open | 2026-03-27 |
Agenda - [PERF] GFX Render Pipeline and Dirty Regions
Problema
O renderer gfx recompõe a cena inteira a cada frame logico, mesmo quando a mudanca visual e pequena.
Hoje render_all() reconstrói buckets de sprites, escaneia os 512 sprites, redesenha layers e aplica dois passes fullscreen de fade sem politica de invalidacao.
Dor
- custo visual basico cresce demais para hardware simples.
- pequenos updates pagam preco de full redraw.
- fade, HUD e world composition ficam sempre no caminho critico.
Hotspots Atuais
Alvo da Discussao
Definir ate onde o v1 precisa sair do modelo brute force para um pipeline com invalidacao e custo previsivel.
O Que Precisa Ser Definido
-
Granularidade de invalidacao. Escolher entre:
- dirty flag por frame inteiro;
- dirty region por layer;
- dirty list por sprite/HUD;
- combinacao minima viavel.
-
Buckets e traversal de sprites. Decidir se os buckets continuam sendo reconstruidos por frame ou se viram estrutura incremental.
-
Fades. Definir se fade neutro precisa bypass total e se fade parcial pode operar por regiao/camada.
-
Cache de composicao. Delimitar se layers estaticas/HUD podem manter cache intermediario.
-
Meta de custo. Fechar qual teto de pixels/trabalho por frame e aceitavel no baseline.
Open Questions de Arquitetura
- O fantasy console quer simular hardware de full redraw ou quer um renderer pragmatico para handheld barato?
- Dirty regions quebram alguma expectativa de determinismo visivel?
- O HUD deve continuar no mesmo pipeline da world scene?
Dependencias
../specs/04-gfx-peripheral.md../specs/11-portability-and-cross-platform-execution.md
Criterio de Saida Desta Agenda
Pode virar PR quando houver decisao escrita sobre:
- nivel minimo de invalidacao no v1;
- politica de rebuild de buckets de sprites;
- bypass/cache de fade e HUD;
- meta de custo para o render pipeline.