▲GN⁺ 2024-02-11 | parent | ★ favorite | on: 마이크로소프트보다 뛰어난 DirectX 셰이더 컴파일러 개발(devlog.hexops.com)Hacker News 의견 3D API 셰이더 컴파일의 복잡성에 대한 훌륭한 개요 크로스-3D-API 셰이더 컴파일의 복잡한 문제에 대한 개요가 제공됨. D3D와 마이크로소프트에 초점을 맞추고 있지만, 다른 3D API에서도 상황이 크게 나아지지 않음. 예를 들어, 리눅스 호스트에서 메탈 셰이더를 크로스 컴파일할 수 없으며, macOS와 최근에는 윈도우즈에서만 가능함. 만약 Mach 팀이 "Zig를 크로스-3D-API 셰이더 컴파일러로 사용"하는 것을 성공시키고, "Zig를 크로스 컴파일 툴체인으로 사용"하는 것처럼 원활하게 작동시킬 수 있다면, 이는 1995년 이후 컴퓨터 그래픽스에서 가장 큰 사건이 될 것임. Godot와 관련된 문제 Direct3D 12 지원은 현재 Godot와 함께 배포되는 DirectX Shader Compiler의 독점적인 dxil.dll 라이브러리에 의존하고 있음. 독점 소프트웨어를 배포하는 것은 Godot 프로젝트의 사명에 반함. 추가적인 .dll 배포에 대한 논의 많은 비디오 게임들이 이미 사용하는 독점 미들웨어(Bink, SpeedTree, PhysX 등)와 마찬가지로 추가적인 .dll을 배포하는 것이 필요하지 않음. 대부분의 게임 런처(Steam, GOG, Epic 등)도 각각의 .DLL을 요구함. 많은 게임들이 D3D11On12를 사용하며, 많은 출시된 게임들이 설치 파일 중에 dxil.dll을 포함하고 있음. 코드 서명을 역공학하고 재구현한 작업은 특히 dxil.dll의 출력과 비트 단위로 동일하기 때문에 놀라운 일임. 하지만, 더 쉬운 방법을 선호하는 사람들은 단순히 DLL을 배포하는 것을 선택할 수도 있음. DXIL.dll 서명에 대한 질문 DXIL.dll이 수행하는 서명은 단순히 수정된 MD5인가? LLVM의 코드 생성 계층과 인프라에 대한 DXC의 변화 DXC의 LLVM 포크는 LLVM의 코드 생성 계층과 인프라를 제거하거나 손상시킴. 이 문제를 해결하고 손상된 LLVM 기능을 복구하는 것은 엄청난 작업이 될 것임. 리소스 제약으로 인해 새로운 DXC 컴파일러에서 이 문제를 해결할 계획이 없음. 미래에 Clang에서 DXBC 생성을 지원할 수도 있지만, 그 작업은 DXIL과 SPIR-V 생성을 먼저 지원하는 것에 초점을 맞추고 있어 몇 년 동안 시작되지 않을 것임. 마이크로소프트 측에서 명확한 기대치를 설정하는 것에 대한 감사함을 표현함. Mach 생태계에 대한 조언 특히 mach-sysgpu에 대해 조사할 것을 권장함, 이는 WebGPU의 완전한 재구현으로, 주로 17세의 Ali Chraghi에 의해 작성됨. SDL_gpu와 SDL3에 대한 논의 SDL 팀은 SDL3에서 출시될 SDL_gpu라는 새로운 셰이더 언어를 개발 중임. 이는 게임에서 3D 그래픽과 관련하여 플랫폼 간 작업을 할 수 있는 방법을 제공할 것임. Zig 언어의 활용 Zig 자체를 셰이딩 언어로 사용하는 것은 멋진 일임. Zig는 진정한 언어로, 빌드 시스템이자 셰이딩 언어임. 인프라 작업에 대한 감사의 표현 이러한 종류의 인프라 작업이 많은 문을 열어주기 때문에 읽는 것이 기쁨임. DXIL 발음에 대한 언급 DXIL은 "dixel"로 발음되며, "pixel"에서 'p'를 'd'로 바꾼 것과 같음.
Hacker News 의견
3D API 셰이더 컴파일의 복잡성에 대한 훌륭한 개요
Godot와 관련된 문제
추가적인 .dll 배포에 대한 논의
DXIL.dll 서명에 대한 질문
LLVM의 코드 생성 계층과 인프라에 대한 DXC의 변화
Mach 생태계에 대한 조언
SDL_gpu와 SDL3에 대한 논의
Zig 언어의 활용
인프라 작업에 대한 감사의 표현
DXIL 발음에 대한 언급