https://vulkan-tutorial.com/


위의 vulkan 튜토리얼이나 

프랭크 루나의 DirectX 12 책 보면, 


스왑 체인 만들면서 프레임 버퍼는 여러개 쓰는데,  depth/stencil 버퍼는 한개만 씀.


근데 이러면 depth/stencil 테스트 하는 과정에서 병목현상 생기지 않나?


Stack overflow  뒤져보니까 어떤 사람 답변이 


보통 CPU에서 만드는 데이터는 각 프레임 렌더링 하는 과정에서 복사하는 동안 데이터가 유지 되어야하니까, 

각 프레임 버퍼 별로 따로따로 데이터를 만들지만, 

그렇지 않고  gpu 내부에서만 읽고 쓰는 depth/stencil 같은 경우는 그냥 한개만 쓴다고 함.


아래 링크가 그 답변 페이지.

https://stackoverflow.com/questions/71461930/why-is-only-1-depth-stencil-buffer-needed-even-when-the-swap-chain-is-tripple-b



근데 다른 답변 뒤져보니까 퍼포먼스를 위해서 Gbuffer 같은 경우는 각 프레임 별로 여러개 쓰고, depth/stencil 버퍼는 대개 1개 쓰지만 퍼포먼스를 위해서 depth/stencil도 여러개 쓸 수도 있겠지 라는 답변도 있음.

https://stackoverflow.com/questions/68040979/why-gbuffers-need-to-be-created-for-each-frame-in-d3d12



그래서 질문이,  

depth/stencil 한개만 써서 생기는 병목현상으로 인한 퍼포먼스 저하가 대개는 depth/stencil 버퍼 여러개 쓰기에는 아까울 정도로 적은편임?


그렇다면 depth/stencil을 여러개 쓰는 예시 상황 같은것은 없음?

예를 들어 cpu쪽에서 멀티 쓰레드 써서 여러 프레임의 커맨드를 동시에 날린다던가?