010:00 – 4:55
VSync와 브라우저 — 발표 범위와 화면 갱신의 원리
네이버에서 브라우저를 개발하는 홍연기 발표자가 인사를 건네며 세션을 연다. 원래는 VSync를 애플리케이션에서 활용하는 방법을 다루려 했으나 너무 광범위해, 범위를 좁혀 '브라우저에서 VSync를 어떻게 활용하는지'로 주제를 바꿨다고 양해를 구한다. 먼저 배경 지식으로 모니터가 화면을 어떻게 업데이트하는지 살펴보고, VSync가 쓰이는 프레임 타이밍이 무엇인지, 브라우저가 그것을 어떻게 구성하고 활용하는지를 차례로 다루겠다고 예고한다. 그는 오픈소스 크로미움(Chromium) 프로젝트의 프레임 타이밍 담당 스케줄러 모듈에 기여하고 있으며, 이 모듈이 프레임을 언제 생성하고 마무리할지, 자바스크립트 실행·페인팅·래스터라이즈가 VSync에 맞춰 언제 일어날지를 결정한다고 소개한다.
본격적으로 '모니터는 화면을 어떻게 업데이트할까'에서 출발한다. 모니터 갱신 시점이 되면 그래픽 드라이버가 자기 버퍼의 픽셀 데이터로 화면을 갱신하는데, 드라이버가 스스로 이미지를 만드는 것이 아니라 애플리케이션의 요청을 받아 새 이미지를 버퍼에 생성한다. 애플리케이션은 OpenGL 같은 그래픽 API로 데이터나 커맨드를 드라이버에 전달하고, 드라이버는 그 내용을 내부 메모리 버퍼에 그려 놓는다. 화면 업데이트의 출발점이 되는 이 과정을 더블 버퍼링 설명으로 연결한다.