본문으로 건너뛰기
뒤로가기

[Vulkan] 초기화: 창, 인스턴스, 디바이스

이 글은 Vulkan을 학습하는 개발자의 관점에서, Vulkan 초기화 과정, 특히 창(Window), 인스턴스(Instance), 디바이스(Device) 설정 흐름을 사실 위주로 정리한 기록입니다.


Vulkan 초기화 순서

Vulkan에서 리소스를 생성할 때는 각 단계가 이전 결과에 의존하므로, 정해진 순서를 따르는 것이 중요합니다.

1단계: 윈도우 생성 및 서피스 연결

가장 먼저 운영체제(OS)의 창을 만들고, 렌더링 결과물이 그려질 VkSurfaceKHR를 연결합니다. 이 VkSurfaceKHR는 Vulkan의 렌더링 결과와 OS의 화면을 연결하는 역할을 합니다.

2단계: 인스턴스 생성 및 밸리데이션 설정

VkInstance는 Vulkan API 사용을 위한 진입점입니다. 이 단계는 Vulkan 드라이버와 애플리케이션을 연결하는 과정입니다.

3단계: 물리 및 논리 디바이스 선택

시스템에 장착된 GPU(VkPhysicalDevice) 중에서 애플리케이션의 요구사항에 맞는 것을 고르고, 실제 연산에 사용할 VkDevice(논리 디바이스)와 커맨드를 전달할 VkQueue를 생성합니다.

4단계: 애플리케이션 루프와 종료

모든 리소스가 준비되면, 창이 닫힐 때까지 렌더링 루프를 실행합니다. 루프가 종료된 후에는 리소스를 안전하게 해제하는 것이 매우 중요합니다.

생성 및 파괴 순서 요약

리소스 누수를 막기 위해서는 다음 순서를 지키는 것이 중요합니다.

학습 중 알게 된 추가 정보

안정적인 초기화는 Vulkan 학습의 중요한 첫걸음입니다. 다음으로는 렌더링된 이미지를 화면에 표시하기 위한 스왑체인(Swapchain) 설정에 대해 학습할 계획입니다.


이 게시물은 학습한 내용을 바탕으로 초안을 작성한 뒤, LLM의 도움을 받아 내용을 검수하고 다듬어 완성되었습니다.


공유하기:

이전 글
[Vulkan] WSI: GLFW를 이용한 창과 서피스 연결
다음 글
[Vulkan] WSI: 창과 프레젠테이션의 관계