aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-27 14:59:54 +0100
committereunhhu <[email protected]>2026-09-27 14:59:54 +0100
commit5313285bbfedf6154d2611c4923cff458d7ef271 (patch)
tree81a9d1516f5666c351cf716b394523255d9a5183 /README.md
parent993871c6dfa19cf4e0bd4a16c9aad26cb0025d70 (diff)
downloadvega-5313285bbfedf6154d2611c4923cff458d7ef271.tar.gz
vega-5313285bbfedf6154d2611c4923cff458d7ef271.zip
Put the frames on a display through KMS, checked by writeback
vega display draws the same frames on a display with the kernel's mode setting and no library between: a connected connector's mode on a CRTC, its primary plane flipped between two dumb buffers by atomic commits, the grid as many cells as fit. Frames are drawn in cached memory and copied over, since blending over write-combined buffers read them back slowly (a 1080p frame took 370 ms; now 20.6 ms with a vertical sync and the check below). This Pi has no screen but its display controller has writeback connectors: --writeback sets a mode on one and takes every frame back as the controller put it out. Each came back exactly as drawn, and the new check finds it the pixel surface's frame for the same grid, pixel for pixel.
Diffstat (limited to 'README.md')
-rw-r--r--README.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/README.md b/README.md
index c80c24d..e51944b 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,7 @@ printf 'text 6d696c6b\nkey Space\nshow\n' | build/vega say todo.pmod
build/vega web todo.pmod --watch # 브라우저(GUI). --watch: 모듈이 다시 빌드되면 상태를 이어 바꾼다
# (옆에서 AUP_PATH=lib aup watch examples/todo.aup -o todo.pmod)
build/vega pixels todo.pmod --symbols ui.vsym --grid 48x12 --out frame < script # 픽셀: frame-N.ppm (설계 003)
+build/vega display todo.pmod --symbols ui.vsym < script # 디스플레이(KMS). --writeback WxH --out: 화면 없이 되돌려 받기
make check # 참조 모델 대조, 프레임 검사, 대화형 pty 검사, 견고성
```
@@ -48,7 +49,7 @@ build/vega-symbols render ui.vsym 0xE000 48 icon.pgm
| 디렉터리 | 무엇 | 만드는 것 |
|---|---|---|
| `lib/` | aup 라이브러리(`use vega`): 목록·표·포커스·톤 같은 인터페이스 어휘 | aup가 읽는다 |
-| `surfaces/` | 모듈을 사람에게 보이는 표면: TUI, CLI, 문장(NUI), 웹, 픽셀. Pure의 `libpure.a`를 링크한다 | `build/vega` |
+| `surfaces/` | 모듈을 사람에게 보이는 표면: TUI, CLI, 문장(NUI), 웹, 픽셀, 디스플레이(KMS). Pure의 `libpure.a`를 링크한다 | `build/vega` |
| `symbols/` | 글리프와 아이콘을 한 형식으로, CPU와 GPU로 그리기([설계 002](docs/design/002-symbol-format.md)) | `build/vega-symbols` |
Pure와 같은 규칙이다([Pure 009](/srv/git/pure.git): `docs/design/009-layout.md`). 최상위 디렉터리가 역할별 부품이고,