[GPUs] Swap Chain

그림 1. A graphical depiction of a triple-buffered swap chain (출처 2)

Swap Chain은 모니터에 Display 할 때 사용되는 Buffer (Framebuffer를 의미하는 듯)의 모음이라고 한다 (A swap chain is a collection of buffers that are used for displaying frames to the user). 여러 개의 Framebuffer가 있는데 이중 Display 되는 이미지 정보를 가지고 있는 Buffer를 Front Buffer라고 한다. 그 외 나머지 Buffer을 Back Buffer라고 한다. Front/Back Buffer관련한 내용은 출처3에 개인적으로 정리해보았다. 여러 개의 Buffer 중 Display 가 가능한 Buffer을 Back Buffer에서 Front Buffer로 변경하는 과정을 Swapping 또는 Flipping이라고 한다. 출처3에서 정리한 것과 같이 단순히 Pointer 값을 변경하여 Front/Back buffer를 변경하는 작업을 수행한다. 결과적으로 Swap Chain이란 Front Buffer와 Back Buffer의 집합이다. 이 Swap Chain의 Buffer들은 단순히 Swapping/Flipping을 통해서 Front/Back Buffer로 변경된다. Vulkan Tutorial에 따르면 (출처 5) Buffer들을 어떤 방식으로 Front Buffer로 변경할지, Image를 어떤 방식으로 출력할지는 Swap Chain을 생성하는 방법에 따라 달라질 수있다고 한다. 그림 1은 Swap Chain의 대략적인 예제이다.

출처

  1. https://docs.microsoft.com/en-us/windows/desktop/direct3d9/what-is-a-swap-chain-
  2. https://en.wikipedia.org/wiki/Swap_Chain
  3. https://mkblog.co.kr/2018/07/24/gpu-double-buffering-triple-buffering-and-vsync/
  4. https://www.anandtech.com/show/2794/4
  5. https://vulkan-tutorial.com/

Leave a Comment