docs: идея span-примитивов для узких прямоугольников (TODO + fill-budget)
При узкой стороне <= 8 линий chunked-rectfill проигрывает циклу _bgi_hspan_raw/_bgi_vspan_raw (подготовка ~340Т впустую, break-even n~9): либо fast-path в диспетчере, либо рецепт для пользователя — решать по профилю. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -105,6 +105,14 @@ Quick wins:
|
|||||||
Оптимизации (не сейчас):
|
Оптимизации (не сейчас):
|
||||||
- [ ] gfx_line через accel для пологих диагоналей (runs ≥ 4-5 px)
|
- [ ] gfx_line через accel для пологих диагоналей (runs ≥ 4-5 px)
|
||||||
- [ ] композитные примитивы с одним W3-swap на операцию
|
- [ ] композитные примитивы с одним W3-swap на операцию
|
||||||
|
- [ ] **span-примитивы для узких прямоугольников**: при узкой стороне
|
||||||
|
≤ 8 линий chunked-rectfill проигрывает простому циклу
|
||||||
|
_bgi_hspan_raw/_bgi_vspan_raw (подготовка+precompute ~340Т уходят
|
||||||
|
впустую; break-even n≈9 — docs/accel-fill-budget.md). Варианты:
|
||||||
|
fast-path в диспетчере _gfx_rectfill256 («узкая сторона ≤ 8 →
|
||||||
|
цикл span'ов») или просто задокументировать рецепт для
|
||||||
|
пользователя. Делать по результатам профиля — если узкие
|
||||||
|
прямоугольники реально встречаются в горячем коде.
|
||||||
|
|
||||||
## Прочий backlog
|
## Прочий backlog
|
||||||
|
|
||||||
|
|||||||
@@ -106,3 +106,15 @@ _bgi_hspan_raw/_bgi_vspan_raw (одна линия одной скобкой б
|
|||||||
вариантов libbgi. Кандидат для size-critical сборок (small 32КБ,
|
вариантов libbgi. Кандидат для size-critical сборок (small 32КБ,
|
||||||
как mdview2) и для программ с жёсткими требованиями к латентности
|
как mdview2) и для программ с жёсткими требованиями к латентности
|
||||||
прерываний.
|
прерываний.
|
||||||
|
|
||||||
|
- **Span-примитивы для узких прямоугольников (узкая сторона ≤ 8).**
|
||||||
|
Break-even n≈9 означает: прямоугольник в 2..8 линий по узкой стороне
|
||||||
|
дешевле нарисовать циклом готовых span-примитивов
|
||||||
|
(_bgi_hspan_raw/_bgi_vspan_raw — одна линия одной скобкой, без
|
||||||
|
подготовки/precompute), чем через rectfill, где ~340Т подготовки
|
||||||
|
уходят впустую. Варианты: fast-path в диспетчере _gfx_rectfill256
|
||||||
|
(«узкая сторона ≤ 8 → цикл span'ов»; удорожает проверку диспетчера
|
||||||
|
на ~20-30Т) или оставить на усмотрение пользователя, задокументировав
|
||||||
|
рецепт. Делать по результатам профиля — если такие прямоугольники
|
||||||
|
встречаются в горячем коде (рамки, тонкие полосы, разделители).
|
||||||
|
Продублировано в docs/TODO.md (GFX: оптимизации).
|
||||||
|
|||||||
Reference in New Issue
Block a user