Stride 엔진, 쉐이더 언어 SDSL 컴파일러 개발
by DD
5개월 전
조회수 8
Stride 엔진에서 자체 쉐이더 언어인 SDSL 컴파일러를 개발 중이며, 성능 개선을 위해 SPIR-V로 직접 컴파일하는 방식을 채택함
SDSL은 HLSL에 믹스인 시스템을 결합하여 모듈식 쉐이더 작성을 지원하며, 파서 재작성을 통해 성능 향상을 목표로 함
커뮤니티에서는 Khronos의 Slang 쉐이딩 언어에 대한 관심과 SDSL과의 비교에 대한 의견이 제시됨
SDSL 아키텍처 및 컴파일 과정
SDSL은 HLSL을 기반으로 하며, 믹스인 시스템을 통해 쉐이더 모듈을 조합하여 쉐이더를 구성한다. 구체적으로 SDSL 코드는 텍스트 형태로 작성되며, 컴파일 과정을 거쳐 SPIR-V로 변환된다. 따라서, 컴파일러는 SDSL 파싱, 최적화, 그리고 SPIR-V 생성 단계를 거치며, 성능 향상을 위해 파서 재작업이 진행된다.
성능 개선을 위한 기술적 도전
기존 SDSL은 HLSL 또는 GLSL로 트랜스파일링하여 성능 저하를 겪었다. 따라서, SPIR-V로 직접 컴파일하는 방식을 통해 성능 병목 현상을 해결하고자 한다. 반면, SPIR-V는 다양한 GPU 아키텍처를 지원하지만, SDSL 컴파일러는 각 아키텍처에 맞는 최적화 전략을 구현해야 하는 과제를 안고 있다.
Slang 쉐이딩 언어와의 비교
Khronos 그룹에서 지원하는 Slang 쉐이딩 언어는 SDSL의 주요 경쟁 기술이다. 구체적으로 Slang은 다양한 쉐이더 백엔드를 지원하며, 성능 최적화에 초점을 맞추고 있다. 따라서, SDSL 개발팀은 Slang의 장점을 분석하고, SDSL만의 차별점을 부각하여 경쟁력을 확보해야 한다.