본문 바로가기
DirectX/[Inflearn_삼각형] Vulkan

6. Vulkan Swapchain

by 헛둘이 2025. 10. 16.

이 게시물은 Inflearn의 "삼각형" 님의 "삼각형의 실전! Vulkan 중급" 강의를 학습 목적으로 정리한 게시물입니다.

정리하는 과정에서 살을 붙이거나 강의의 핵심 내용이 누락되었을 수 있습니다.

좀 더 심도있고 깊은 내용을 듣고 싶으시다면 아래 링크를 참고해주세요.

https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-vulkan/dashboard

 

삼각형의 실전! Vulkan 중급| 삼각형 - 인프런 강의

현재 평점 3.3점인 강의를 만나보세요. 이 강의를 통해 수강생은 Vulkan의 핵심 개념을 이해할 수 있습니다. 이를 바탕으로 GPU를 효과적으로 사용하는 코드를 작성할 수 있습니다. Vulkan, Graphics

www.inflearn.com

 

Vulkan Swapchain이란?

Vulkan에서 Swapchain은 GPU가 렌더링한 이미지를 화면에 표시하기 위한 이미지 버퍼(Image Buffer) 집합.
화면 출력 과정에서 발생할 수 있는 티어링(Tearing), 깜빡임(Flickering) 등의 시각적 오류를 줄이고,
렌더링 성능과 프레임 속도(FPS) 를 안정적으로 유지하기 위해 사용됨.


버퍼링과 성능 관계

Swapchain은 내부적으로 여러 개의 이미지를 번갈아가며 사용함.
이미지 A가 화면에 표시되는 동안, GPU는 다음 프레임 이미지 B를 렌더링하는 식으로 동작.

이때 최소 이미지 개수(minImageCount) 를 지정하여
더블 버퍼링(Double Buffering), 트리플 버퍼링(Triple Buffering) 등을 설정할 수 있음.

  • 이미지 개수가 많을수록 → FPS가 안정적으로 높아짐
  • 하지만 → 입력 지연(latency) 은 증가할 수 있음

Present Mode

Swapchain의 동작 방식은 Present Mode로 결정됨.
Vulkan은 여러 모드를 지원하며, 대표적인 것은 다음과 같음.

 

VK_PRESENT_MODE_IMMEDIATE_KHR

  • 렌더링이 끝나는 즉시 이미지를 화면에 표시함
  • 모니터의 새로고침 주기(V-SYNC)와 맞지 않으면 티어링(Tearing) 발생 가능

VK_PRESENT_MODE_FIFO_KHR

  • 렌더링이 완료된 이미지를 큐(FIFO)에 저장하고,
    V-SYNC 시점에 맞춰 순서대로 출력
  • 모든 플랫폼에서 지원되며, 가장 안정적인 모드

Vulkan Surface Format

Vulkan에서 Swapchain을 생성할 때는
Surface가 지원하는 Format과 Color Space 중 하나를 선택해야 함.
이는 GPU가 생성한 이미지가 Surface(화면) 로 출력될 때 어떤 색상 표현을 사용할지 결정함.

  • Surface Format : 픽셀 포맷(예: RGBA, BGRA 등)
  • Color Space : 색 재현율과 감마 특성을 정의
    → 모니터의 색 표현 범위와 관련이 있으며,
    렌더링 결과가 사용자에게 어떻게 보이는지 결정함.

Swapchain 이미지 관리

Swapchain 생성 시 지정한 최소 이미지 개수는 말 그대로 최소값이며,
실제 생성된 이미지 수는 GPU 드라이버나 플랫폼에 따라 더 많을 수 있음.

따라서, Swapchain 생성 후에는
실제로 몇 개의 Vulkan Image가 만들어졌는지 확인해야 함.

또한, Swapchain에 포함된 Vulkan Image는
윈도우 시스템(Window System) 이 소유하고 있으므로
애플리케이션이 임의로 파괴(vkDestroyImage)해서는 안 됨.

'DirectX > [Inflearn_삼각형] Vulkan' 카테고리의 다른 글

5. Vulkan Surface  (0) 2025.10.15
4. Vulkan Extension  (0) 2025.10.13
3. Vulkan Device (+Vulkan Queue)  (0) 2025.10.09
3. Vulkan Instance  (0) 2025.10.09
2. Vulkan Loader  (0) 2025.10.09

댓글