GPU API MkII
แนะนำโปรเจกต์
- มีการนำ GPU API ใหม่ของ SDL มาใช้
- คล้ายกับโปรเจกต์ MoonWorks และมุ่งเป้าไปที่ API สมัยใหม่ เช่น Vulkan
- ถูกใช้งานอยู่ในเกมอย่าง Samurai Gunn 2 เป็นต้น
ฟีเจอร์หลักและข้อดี
- ความสามารถด้านคอมพิวต์: Refresh API ทำให้ใช้งานความสามารถด้านคอมพิวต์ได้อย่างง่ายดาย
- ระบบเชดเดอร์: ใช้วิธีคอมไพล์แบบออฟไลน์ และรองรับหลายฟอร์แมต
- ความปลอดภัยของรีซอร์ส: รับประกันความปลอดภัยของรีซอร์สภายใน โดยไม่เปิดเผย API ที่ซับซ้อนให้ผู้ใช้
ระบบเชดเดอร์
- ใช้สคริปต์
shaderbuild.py เพื่อบิลด์เชดเดอร์แบบออฟไลน์
- เมื่อสร้าง shader module จะใช้ฟอร์แมต IR ของแต่ละแบ็กเอนด์
- SDL เองไม่ได้ทำ wrapper ให้กับ shader compiler
ความคืบหน้าในการพัฒนา
- เริ่มรองรับ Metal แล้ว
- รองรับการสร้างเชดเดอร์ผ่านการพอร์ต FNA3D
- มีแผนจะเพิ่มการรองรับ hardware instancing
เสียงตอบรับจากชุมชน
- มีความคิดเห็นที่หลากหลายเกี่ยวกับวิธีคอมไพล์เชดเดอร์แบบออฟไลน์
- วิธีจัดการ cycle ของ SDL_gpu ได้รับการประเมินในเชิงบวก
- ยังต้องปรับปรุงอย่างต่อเนื่องเพื่อรองรับแบ็กเอนด์ที่หลากหลาย
แผนในอนาคต
- เขียนคอมเมนต์เอกสารในสไตล์ SDL
- เสริมการรองรับ Metal และ D3D12
- เพิ่มโปรแกรมทดสอบและแก้ไขบั๊ก
# สรุปโดย GN⁺
- GPU API ใหม่ของ SDL รองรับกราฟิก API สมัยใหม่ และสามารถนำไปใช้กับเกมได้หลากหลาย
- ระบบเชดเดอร์ใช้แนวทางคอมไพล์แบบออฟไลน์เพื่อเพิ่มประสิทธิภาพให้เหมาะสมที่สุด
- มีการปรับปรุงอย่างต่อเนื่องโดยสะท้อนฟีดแบ็กจากชุมชน และมีแผนเสริมการรองรับ Metal และ D3D12
- API นี้มีประโยชน์ต่อผู้พัฒนาเกม และมอบความยืดหยุ่นด้วยการรองรับแบ็กเอนด์ที่หลากหลาย
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
SDL3 ยังอยู่ในสถานะพรีวิว แต่ GPU API ใหม่ถูกรวมเข้าเมนบรานช์แล้ว
น่าประหลาดใจที่ SDL GPU API เสร็จสมบูรณ์ได้เร็วขนาดนี้
ดีใจที่ได้มีส่วนร่วมในส่วนของ dx12
SDL เป็นซอฟต์แวร์คุณภาพสูง คอมไพล์ได้รวดเร็วบนหลายแพลตฟอร์มและใช้งานได้เสมอ
เป็นแฟนตัวยงของ SDL
ตื่นเต้นที่จะได้เห็นว่าสิ่งนี้จะออกมาเป็นอย่างไร
การเรียนรู้ Vulkan สนุกและมีประโยชน์ แต่รู้สึกว่าความคืบหน้าช้า
ยังไม่เคยใช้ไลบรารีนี้ แต่ก็อยากเห็นตัวอย่างความสามารถด้าน GPU computing ข้ามแพลตฟอร์ม
อยากเห็น Raylib มี SDL GPU backend
สงสัยว่าสิ่งนี้เกี่ยวข้องกับ https://github.com/grimfang4/sdl-gpu หรือไม่