1 คะแนน โดย GN⁺ 2024-08-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

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 ความคิดเห็น

 
GN⁺ 2024-08-31
ความคิดเห็นจาก Hacker News
  • SDL3 ยังอยู่ในสถานะพรีวิว แต่ GPU API ใหม่ถูกรวมเข้าเมนบรานช์แล้ว

    • GPU API ใหม่นี้ช่วยให้เขียนโค้ดกราฟิกและเชดเดอร์ครั้งเดียว แล้วทำงานข้ามแพลตฟอร์มได้ด้วยความยุ่งยากน้อยที่สุด (รวมถึงคอนโซล)
    • ก่อนหน้านี้ต้องใช้ Unity, Unreal หรือโซลูชันแบบคัสตอม
    • WebGPU/WGSL ก็เป็นความพยายามในแนวทางสแตกกราฟิกข้ามแพลตฟอร์มที่คล้ายกัน
    • ปัจจุบัน SDL3 GPU API ยังไม่รองรับ WebGPU เป็นแบ็กเอนด์
  • น่าประหลาดใจที่ SDL GPU API เสร็จสมบูรณ์ได้เร็วขนาดนี้

    • WebGPU native กำลังพัฒนาอยู่และยังไม่เสร็จสมบูรณ์
    • คิดว่า SDL GPU API น่าจะใช้เวลานานกว่านี้เพราะรองรับแพลตฟอร์มได้มากกว่า
  • ดีใจที่ได้มีส่วนร่วมในส่วนของ dx12

  • SDL เป็นซอฟต์แวร์คุณภาพสูง คอมไพล์ได้รวดเร็วบนหลายแพลตฟอร์มและใช้งานได้เสมอ

    • ตั้งตารอ API ใหม่นี้อยู่
  • เป็นแฟนตัวยงของ SDL

    • ตอนมองหาไลบรารีเกมข้ามแพลตฟอร์ม SDL และ API ของมันให้ความสมดุลที่เหมาะสม
    • ต้องการไลบรารี C(++) ที่สามารถสร้างหน้าต่างและกราฟิกคอนเท็กซ์ได้
    • ไม่อยากต้องไปเรียนภาษาใหม่
  • ตื่นเต้นที่จะได้เห็นว่าสิ่งนี้จะออกมาเป็นอย่างไร

    • หวังว่าจะมีตัวเลือกเพิ่มขึ้นสำหรับการสร้างเกมเอนจินและแอปแบบคัสตอม
  • การเรียนรู้ Vulkan สนุกและมีประโยชน์ แต่รู้สึกว่าความคืบหน้าช้า

    • ถ้ามี SDL3 ตั้งแต่แรกก็น่าจะทำอะไรได้มากกว่านี้
  • ยังไม่เคยใช้ไลบรารีนี้ แต่ก็อยากเห็นตัวอย่างความสามารถด้าน GPU computing ข้ามแพลตฟอร์ม

    • อยากได้คำแนะนำว่าควรเริ่มจากตรงไหน
  • อยากเห็น Raylib มี SDL GPU backend

    • ถ้าเป็นแบบนั้นก็จะใช้ทันที
  • สงสัยว่าสิ่งนี้เกี่ยวข้องกับ https://github.com/grimfang4/sdl-gpu หรือไม่

    • หรือว่าเป็นคนละอย่างกันโดยสิ้นเชิงแต่แค่ใช้ชื่อเดียวกัน