Devsh-Graphics-Programming/Nabla
Vulkan, OptiX and CUDA Interoperation Modular Rendering Library and Framework for PC/Linux/Android
해결하는 문제
Nabla는 Vulkan 확장 기능과 기능의 선별된 안정된 프로파일을 제공함으로써 저수준 GPU 프로그래밍을 단순화하여, 개발자가 하드웨어의 세부 사항과 빠르게 변화하는 API 사양을 수동으로 추적할 필요를 줄입니다. CPU와 GPU 개발 간의 격차를 좁히기 위해 양쪽 환경에서 공유 로직과 단위 테스트를 가능하게 합니다.
작동 방식
Nabla는 SPIR-V와 Vulkan을 기준으로 삼아 GPU 객체의 수명 주기를 참조 카운팅으로 관리하고, 타임라인 세마포어를 사용하여 CPU-GPU 작업을 동기화합니다. 고유한 HLSL2021 표준 템플릿 라이브러리를 통해 HLSL의 일부를 C++와 SPIR-V 모두에서 컴파일할 수 있게 하여 GPU 로직을 CPU에서 테스트할 수 있도록 합니다. 시스템에는 자산 관리를 위한 가상 파일 시스템, 취소 가능한 미래 기반 비동기 I/O, 그리고 Merkle 트리를 사용하여 중복 객체를 제거하는 GPU 최적화 자산 변환기가 포함되어 있습니다.
대상 사용자
맞춤형 렌더링 설정, 물리 기반 렌더링(PBR), 또는 구형 OpenGL 및 DirectX 애플리케이션을 이식할 필요가 있는 그래픽스 프로그래머 및 엔진 개발자.
주요 특징
- 통합된 HLSL/C++ 라이브러리: GPU 로직용 단일 소스 라이브러리를 가능하게 하며, CPU에서 단위 테스트가 가능합니다.
- 자동 수명 주기 추적: 참조 카운팅을 사용하여 큐에서 사용 중인 GPU 객체가 잘못 삭제되지 않도록 보장합니다.
- 선별된 코어 프로파일: 수동으로 하드웨어 호환성 검사를 할 필요 없이, 미리 선택된 Vulkan 확장 기능 세트를 제공합니다.
- 고급 메모리 접근: Buffer Device Address (BDA)와 Descriptor Indexing을 완전히 활용하여 동적 리소스 바인딩을 지원합니다.
- 비동기 인프라스트럭처: 취소 가능한 미래 기반 I/O와 가상 파일 시스템을 구현하여 효율적인 자산 로딩을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트