1P by neo 20일전 | favorite | 댓글 1개

GPU API MkII

프로젝트 소개
  • SDL의 새로운 GPU API가 도입됨
  • MoonWorks 프로젝트와 유사하며, 현대적인 API(Vulkan 등)를 타겟으로 함
  • Samurai Gunn 2 등의 게임에서 사용 중
주요 기능 및 장점
  • 컴퓨트 기능: Refresh API는 컴퓨트 기능을 간단하게 사용 가능하게 함
  • 셰이더 시스템: 오프라인 컴파일 방식 사용, 다양한 포맷 지원
  • 리소스 안전성: 내부적으로 리소스 안전성을 보장, 사용자에게 복잡한 API 노출 없음
셰이더 시스템
  • shaderbuild.py 스크립트를 사용하여 오프라인 셰이더 빌드
  • 셰이더 모듈 생성 시 각 백엔드의 IR 포맷을 사용
  • SDL 자체는 셰이더 컴파일러를 래핑하지 않음
개발 진행 상황
  • Metal 지원 시작
  • FNA3D 포트를 통해 셰이더 생성 지원
  • 하드웨어 인스턴싱 지원 추가 예정
커뮤니티 피드백
  • 오프라인 셰이더 컴파일 방식에 대한 다양한 의견
  • SDL_gpu의 사이클 처리 방식에 대한 긍정적인 평가
  • 다양한 백엔드 지원을 위한 지속적인 개선 필요
향후 계획
  • SDL 스타일의 문서 주석 작성
  • Metal 및 D3D12 지원 강화
  • 테스트 프로그램 추가 및 버그 수정

# GN⁺의 정리

  • SDL의 새로운 GPU API는 현대적인 그래픽 API를 지원하며, 다양한 게임에서 사용 가능함
  • 셰이더 시스템은 오프라인 컴파일 방식을 채택하여 성능을 최적화함
  • 커뮤니티의 피드백을 반영하여 지속적으로 개선 중이며, Metal 및 D3D12 지원을 강화할 예정
  • 이 API는 게임 개발자들에게 유용하며, 다양한 백엔드를 지원하여 유연성을 제공함
Hacker News 의견
  • SDL3는 아직 프리뷰 상태지만, 새로운 GPU API가 메인 브랜치에 병합되었음

    • 새로운 GPU API는 그래픽 코드 및 셰이더를 한 번 작성하면 최소한의 번거로움으로 크로스 플랫폼(콘솔 포함)에서 작동할 수 있게 해줌
    • 이전에는 Unity, Unreal 또는 커스텀 솔루션이 필요했음
    • WebGPU/WGSL도 유사한 크로스 플랫폼 그래픽 스택 노력임
    • 현재 SDL3 GPU API는 WebGPU를 백엔드로 지원하지 않음
  • SDL GPU API가 이렇게 빨리 완성된 것이 놀라움

    • WebGPU 네이티브는 개발 중이며 아직 완성되지 않았음
    • SDL GPU API는 더 많은 플랫폼을 지원하기 때문에 더 오래 걸릴 것으로 예상했음
  • dx12 부분에 기여하게 되어 기쁨

  • SDL은 고품질 소프트웨어로, 여러 플랫폼에서 빠르게 컴파일되고 항상 작동함

    • 새로운 API에 대한 기대가 있음
  • SDL의 큰 팬임

    • 크로스 플랫폼 게임 라이브러리를 찾을 때 SDL과 그 API가 적절한 균형을 제공했음
    • 창과 그래픽 컨텍스트를 생성할 수 있는 C(++) 라이브러리가 필요했음
    • 새로운 언어를 배우고 싶지 않았음
  • 이 모든 것이 어떻게 될지 기대됨

    • 커스텀 게임 엔진 및 앱을 구축할 더 많은 옵션이 생기길 바람
  • Vulkan을 배우는 것이 재미있고 유익했지만, 진행 속도가 느리게 느껴짐

    • SDL3가 처음부터 있었다면 더 많은 성과를 얻었을 것임
  • 이 라이브러리를 사용해본 적은 없지만, 크로스 플랫폼 GPU 컴퓨팅 능력의 예제를 보고 싶음

    • 어디서 시작해야 할지 제안이 필요함
  • Raylib이 SDL GPU 백엔드를 얻는 것을 보고 싶음

    • 그러면 바로 사용할 것임
  • 이것이 https://github.com/grimfang4/sdl-gpu와 관련이 있는지 궁금함

    • 아니면 같은 이름의 완전히 별개의 것인지 궁금함