BOSIO × BoAYo 개발 문서 전체 소스 ↗
핵심 시스템 · Bosio 창 관리자

구면 창과 부분 갱신

두 투영코어, 창별 캐시 재사용과 BPT2 변경 타일 갱신을 설명합니다.

Bosio는 구면 창 배치·겹침·포커스·입력을 관리하고, 변경된 타일만 다시 투영합니다. 현재 backend는 fpga-dual+ps-incremental입니다.

변경 종류에 따른 처리

변경HW 투영재사용·합성
내용 일부 수정실제 변경 픽셀과 샘플링 범위가 영향을 주는 타일만다른 창은 캐시 재사용
창 이동·크기 변경해당 창의 투영 갱신다른 창 재사용, 이전·새 위치의 영향 타일 합성
순서 변경·숨김·같은 위치 복원·제거유효한 캐시가 있으면 0건캐시된 레이어로 영향 타일만 합성
같은 픽셀 재전송·시각적 변화 없음0건출력 데이터 0, 출력 장면 commit 0회
화면 전체 회전·반전0건Output Core 계수만 변경

첫 표시, 출력 형식 전환, 실패 복구에는 전체 snapshot을 사용합니다. BoAYo의 둥근 창과 분리된 손잡이는 PS coverage mask를 캐시하므로 모양만으로 native fallback에 들어가지 않습니다. 지원하지 않는 경로는 C++/NEON fallback을 사용합니다.

BPT2와 프레임 경계 교체

M=32 경로는 BPT2로 바뀐 payload와 directory만 전달합니다. 16-word header 뒤에 타일당 272-word record가 오며, 그중 256 words가 셀 payload입니다. 드라이버는 범위·중복·offset을 검증하고 비활성 DDR 장면을 갱신합니다. 표시 중인 버퍼는 전환 승인 전에 수정하지 않습니다. 타일 활성·비활성 변경은 하드웨어 metadata를 다시 읽게 하고, 내용만 바뀌면 주소 교체 방식의 부분 commit을 유지합니다. 이전 M=16 경로의 BPT1과 구분해야 합니다.

IPC와 입력

Unix 소켓 /tmp/bosio-wm.sock의 JSON IPC로 창 생성, RGB 업로드, 입력과 상태를 처리합니다. BoAYo SDK는 이 위에서 앱과 캡션을 관리합니다. 화면을 회전해도 구면 입력 좌표는 유지하며, 화면 방향 기준 이동은 input_display_move(dx, dy)로 보냅니다. 외부 입력과 화면 방향 API를 참조하세요.

실제 보드 검증

128×96 원본의 24°×24° 시험 창은 전체 72타일입니다. 8×8 내용 수정은 5타일만 투영했고, 같은 픽셀 재전송은 0건이었습니다. 최신 빌드에서 14개 증분 사례가 통과했으며 HW 경로의 전체 4,220타일 캐시 재합성 및 활성 DDR 비교에서 불일치가 0이었습니다. 이 비교는 부분 합성·출력 일관성 검증이고 독립 투영 모델 비교는 호스트에서 수행합니다.

처리 규칙과 이전 실측 · 최신 보드 원시 결과

BOSIO × BoAYo · 문서 저장소 · 구현 원본은 각 소스 저장소에서 확인하세요.