Skip to content

Latest commit

 

History

History
40 lines (24 loc) · 4.41 KB

synchronization.adoc

File metadata and controls

40 lines (24 loc) · 4.41 KB

동기화

동기화는 Vulkan을 사용할 때 가장 강력하지만 가장 복잡한 부분 중 하나입니다. 이제 애플리케이션 개발자는 다양한 Vulkan 동기화 기본 요소를 사용하여 동기화를 관리할 책임이 있습니다. 동기화를 부적절하게 사용하면 찾기 어려운 버그가 발생할 수 있을 뿐만 아니라 GPU가 불필요하게 idle 상태가 되어 성능이 저하될 수 있습니다.

크로노스 그룹에서 제공하는 예제 세트Vulkan 동기화 이해 블로그에서 일부 동기화 프리미티브의 사용법을 확인할 수 있습니다. 지난 Vulkan talks에서 Tobias Hector의 프레젠테이션도 있습니다: part 1 slides (video) 및 part 2 slides (video).

다음은 VkEvent, VkFence, VkSemaphore 의 차이점에 대한 개요도입니다.

synchronization_overview.png

유효성 검사

크로노스 유효성 검사 레이어는 일부 동기화 유효성 검사를 구현했습니다. 이 기능은 Vulkan SDK에 포함된 Vulkan Configurator를 통해 쉽게 활성화할 수 있습니다. 동기화 유효성 검사에 대해 설명하는 상세한 백서(whitepaper)도 작성되어 크로노스 블로그에 공개되어있습니다.

파이프라인 장벽(Pipeline Barriers)

파이프라인 장벽은 커맨드 버퍼가 실행될 때 어떤 파이프라인 스테이지가 이전 파이프라인 스테이지를 기다려야 하는지 제어합니다.

synchronization_pipeline_barrieres.png

파이프라인 장벽은 처음에는 이해하기 어려울 수 있지만, 이 주제에 대해 자세히 설명하는 훌륭한 크로노스 강연과 기타 리소스가 많이 있습니다.

VK_KHR_synchronization2

VK_KHR_synchronization2 확장 기능은 애플리케이션 개발자의 복잡성을 줄이기 위해 기존 핵심 동기화 API를 점검하고 기존 API에 없는 몇 가지 기능을 추가합니다.

동기화 API의 차이점과 새 확장 기능을 사용하도록 포팅하는 방법에 대한 자세한 나용은 VK_KHR_synchronization2 챕터를 참조하세요.