GPU API MkII
Giới thiệu dự án
- API GPU mới của SDL đã được giới thiệu
- Tương tự dự án MoonWorks và nhắm tới các API hiện đại (như Vulkan)
- Đang được sử dụng trong các trò chơi như Samurai Gunn 2
Các tính năng chính và ưu điểm
- Tính năng compute: API Refresh giúp việc sử dụng tính năng compute trở nên đơn giản
- Hệ thống shader: Sử dụng phương thức biên dịch ngoại tuyến, hỗ trợ nhiều định dạng
- Độ an toàn tài nguyên: Bảo đảm độ an toàn tài nguyên ở nội bộ, không phơi bày API phức tạp cho người dùng
Hệ thống shader
- Sử dụng script
shaderbuild.py để build shader ngoại tuyến
- Khi tạo mô-đun shader, sử dụng định dạng IR của từng backend
- Bản thân SDL không bọc các trình biên dịch shader
Tình hình phát triển
- Đã bắt đầu hỗ trợ Metal
- Hỗ trợ tạo shader thông qua bản port FNA3D
- Dự kiến sẽ bổ sung hỗ trợ hardware instancing
Phản hồi từ cộng đồng
- Có nhiều ý kiến khác nhau về phương thức biên dịch shader ngoại tuyến
- Cách xử lý vòng đời của SDL_gpu được đánh giá tích cực
- Cần tiếp tục cải thiện để hỗ trợ nhiều backend khác nhau
Kế hoạch sắp tới
- Viết chú thích tài liệu theo phong cách SDL
- Tăng cường hỗ trợ Metal và D3D12
- Bổ sung chương trình kiểm thử và sửa lỗi
# Tóm tắt của GN⁺
- API GPU mới của SDL hỗ trợ các API đồ họa hiện đại và có thể được dùng trong nhiều trò chơi khác nhau
- Hệ thống shader áp dụng phương thức biên dịch ngoại tuyến để tối ưu hiệu năng
- Đang liên tục được cải thiện dựa trên phản hồi từ cộng đồng, đồng thời sẽ tăng cường hỗ trợ Metal và D3D12
- API này hữu ích cho các nhà phát triển game, hỗ trợ nhiều backend để mang lại tính linh hoạt
1 bình luận
Ý kiến trên Hacker News
SDL3 vẫn còn ở trạng thái preview, nhưng API GPU mới đã được hợp nhất vào nhánh chính
Thật đáng ngạc nhiên khi SDL GPU API đã hoàn thiện nhanh như vậy
Rất vui khi được đóng góp cho phần dx12
SDL là phần mềm chất lượng cao, biên dịch nhanh trên nhiều nền tảng và luôn hoạt động ổn định
Là fan lớn của SDL
Rất mong chờ xem mọi thứ sẽ phát triển ra sao
Học Vulkan rất thú vị và bổ ích, nhưng cảm giác tiến độ khá chậm
Chưa từng dùng thư viện này, nhưng muốn xem các ví dụ về khả năng GPU computing đa nền tảng
Muốn thấy Raylib có backend SDL GPU
Tò mò không biết cái này có liên quan đến https://github.com/grimfang4/sdl-gpu hay không