Vulkan/특별편(4)
-
안드로이드 스튜디오 NDK와 Vulkan - 2
개요 이 글은 1편에서 그대로 이어집니다. 1편은 "이렇게 하니까 안드로이드 일부 기기에서 Vulkan이 돌아가더라" 하는 내용이었습니다. 이제 게임과 같은 응용을 만들기 위해서는 어떤 구조를 만들지를 생각해 보는 게 이 2편입니다(코드째로 달라질 메인 이슈는 음원재생과 입력). 즉, 엄밀히 말하면 여긴 Vulkan과는 직접적으로 관련 없는 내용이 더 많습니다. 2.3절 정도가 관련이 있겠네요. 1편을 쓸 당시에도 (코드 외에) 뭔가 딱 모여 있는 자료를 찾기가 어려웠는데 그건 약 2달 지난 지금도 마찬가지인 것 같습니다. 때문에 여기 나오는 모든 얘기는 별도로 명시하지 않은 경우 제 머리 속에서 나온 것이며 막 신뢰해도 될 말은 아님을 미리 일러 둡니다. 목차 1. 동기 통신 2. AGDK 2.1. G..
2022.10.23 -
Vulkan 물리 장치 속성
개요 물리 장치 속성과 역량 중에서 장치 생성은 시작 시 그래픽카드(내장 그래픽) 선택에 참고할 뿐 아니라, 선택 시 저장해 둘 만한 값이 응용에 따라 달리 있을 겁니다. 이번 글은 그것을 판단하는 데 도움이 되기 위해 간결히 모아 두는 것입니다. 주의) 확장 기능(e.g. 끝에 2나 EXT, KHR 같은 게 붙은 것들)은 내용이 어려워져서 여기선 다루지 않습니다. 물론 확장이 아닌 것도 쉽지 않은 내용이 있어 정보가 부족할 수 있습니다. 목차 1. 우리의 선택권 2. vkGetPhysicalDeviceFeatures 3. vkGetPhysicalDeviceMemoryProperties 4. vkGetPhysicalDeviceProperties 4.1. 역량(limits) 5. 나머지 본문 1. 우리의 ..
2022.09.25 -
Vulkan instance와 device 확장들
개요 Vulkan API를 이용할 때는 인스턴스를 가장 먼저 생성해야 하며, 여기서는 기본 기능 외에 사용할 필요가 있는 확장 기능을 명시해야 합니다. 저수준 인터페이스까지 제공하길 원한다면, 그 중 사용할 만한 것을 선택지로 주는 것이 바람직하겠죠. 그러니 한번 알아 봅시다. 가장 좋은 것은 공식 문서를 보는 것이지만 한 군데 모아 둔 것이 없어 꽤 보기 힘들었기 때문에 작성하는 것이에요. 물론 이 중에 제 수준에 실제로 몇 개나 사용하겠냐마는.. Vulkan의 이점을 최대한 활용하려면 이걸 알아서 런타임에 가능한 확장을 얻어내어 필요한 방식을 선택하는 게 이론상 좋겠죠? 또한 모르는 영역은 언제나 무섭기 때문에 최소한 '몰라도 된다'를 알기 위한 것도 도감 만들기의 목적 중 하나입니다. * https..
2022.09.18 -
안드로이드 스튜디오 NDK와 Vulkan - 1
개요 저는 본업이 생기면서 새로운 Vulkan 기반 렌더링 프레임워크 설계 구상에 많은 차질이 생겼고(여름이라 더워서 스스로에게 핑계를 대 봅니다.) 뭔가 새로운 자극이 필요했습니다. 여러 가지 선택이 있지만 그 중 안드로이드 플랫폼으로의 Vulkan 연결을 먼저 하는 걸 선택했습니다. 기본적으로는 다수의 자료가 여기를 가리키는데요, 그 내용만 보면 기존의 소스를 기반으로 수정하는 것만 가능한 게 아닌가 생각도 듭니다. 아무래도 그것보단 많이 알아야겠죠. 따라서 그보다 앞인, 안드로이드 스튜디오에서의 NDK 사용 방법부터 시작하여 창 표면 통합 등 다른 코드의 커버까지 들어가는 식으로 진행해 보겠습니다. 제목에서 알 수 있듯 글 하나로 끝내지 않았습니다. 이 글에서 커버하는 범위는 딱 Android 스튜..
2022.08.21