렌더 패스 설계·커맨드 버퍼 최적화·벨리데이션 레이어 활용으로 Vulkan 드라이버 개발 결
Vulkan 사용자 모드 드라이버 개발에서 가장 먼저 파악한 것은 Vulkan 스펙의 객체 생명주기와 동기화 규칙이었습니다. OpenGL과 달리 드라이버가 알아서 처리해주던 작업을 애플리케이션이 명시적으로 관리해야 해서, 스펙 이해가 구현의 전제 조건이었습니다.
렌더 패스 설계에서는 서브패스 의존성 설정이 까다로웠습니다. 이전 서브패스의 결과를 다음 서브패스에서 사용할 때 메모리 배리어와 이미지 레이아웃 전환을 정확히 정의하지 않으면 렌더링 결과가 잘못됩니다.
Validation Layer는 개발 중 꼭 필요한 도구였습니다. 드라이버가 런타임에 잡아주지 않는 스펙 위반을 Validation Layer가 잡아줬고, 오류 메시지를 단서로 스펙을 다시 확인하는 과정을 반복하면서 구현 정확도를 높였습니다.