บริษัท พัฒนาเกม Embark Studios ได้เปิดตัวรุ่นทดลองครั้งแรก ของโครงการ สนิม GPU ซึ่งมีจุดมุ่งหมายเพื่อใช้ภาษา Rust เพื่อพัฒนารหัส GPU
ความปรารถนาที่จะใช้ Rust เพื่อเขียนโปรแกรมสำหรับ GPU ไม่เพียง แต่เกิดจากคุณสมบัติด้านความปลอดภัยและประสิทธิภาพสูงเท่านั้น แต่ยังจำเป็นต้องได้รับเครื่องมือที่ทันสมัยเพื่อทำงานร่วมกับแพ็คเกจและโมดูลเพื่อปรับปรุงประสิทธิภาพของกระบวนการพัฒนา
Rust GPU บริษัท พัฒนา Embark Studios ยังใช้ Rust ในเกมเอนจิ้น และทำงานเพื่ออำนวยความสะดวกในการแลกเปลี่ยนรหัสสนิมระหว่าง CPU และ GPU
ตามที่พวกเขา, ในอดีตในเกมการเขียนโปรแกรม GPU ทำได้โดยการเขียน HLSL หรือในระดับที่น้อยกว่า GLSL ภาษาเหล่านี้เป็นภาษาโปรแกรมง่ายๆที่พัฒนาควบคู่ไปกับการแสดงผล API ในช่วงหลายปีที่ผ่านมา
อย่างไรก็ตามในขณะที่เอ็นจิ้นเกมมีการพัฒนาภาษาเหล่านี้ยังไม่ได้จัดเตรียมกลไกในการจัดการกับฐานรหัสขนาดใหญ่และโดยทั่วไปแล้ว พวกเขาล้าหลังเมื่อเทียบกับภาษาโปรแกรมอื่น ๆ
แม้ว่าโดยทั่วไปจะมีทางเลือกอื่นที่ดีกว่าสำหรับทั้งสองภาษา แต่ก็ไม่สามารถแทนที่ HLSL หรือ GLSL ได้
ไม่ว่าจะเป็นเพราะผู้ให้บริการบล็อกหรือเนื่องจากไม่รองรับ ด้วยไปป์ไลน์กราฟิกแบบดั้งเดิม ตัวอย่าง ได้แก่ CUDA และ OpenCL และในขณะที่มีการพยายามสร้างภาษาในพื้นที่นี้ แต่ไม่มีสิ่งใดที่ได้รับแรงดึงดูดที่เห็นได้ชัดในชุมชน gamedev
Rust GPU ยังคงพัฒนาแนวคิดจากโครงการ RLSLซึ่งมีความพยายามในการสร้างคอมไพเลอร์ Rust ไปยัง SPIR-V generic shader intermediate ซึ่งเสนอใน Vulkan API และรองรับใน OpenGL 4.6
ในขั้นตอนการพัฒนาปัจจุบัน Rust GPU ช่วยให้คุณสามารถเรียกใช้เฉดสีกราฟิกที่เรียบง่ายและรวบรวมส่วนสำคัญของไลบรารีมาตรฐานพื้นฐานของ Rust ในขณะเดียวกันโปรเจ็กต์ยังห่างไกลจากความพร้อมสำหรับการใช้งานอย่างแพร่หลายเช่นเชเดอร์ยังไม่รองรับลูป
ที่ Embark เราได้สร้างเอนจิ้นเกมของเราเองตั้งแต่เริ่มต้นใน Rust เรามีประสบการณ์มาก่อนในการพัฒนาต้นแบบ RLSL ภายในองค์กรและเรามีทีมวิศวกรการเรนเดอร์ที่ยอดเยี่ยมซึ่งคุ้นเคยกับปัญหาของภาษา Shader ในปัจจุบันทั้งจากเกมเอนจิ้นเกมและอุตสาหกรรมอื่น ๆ ดังนั้นเราเชื่อว่าเราอยู่ในตำแหน่งที่ไม่เหมือนใครที่จะพยายามแก้ไขปัญหานี้
เราต้องการปรับปรุงการพัฒนาภายในของเราเองด้วยภาษาที่ยอดเยี่ยมเพียงภาษาเดียวสร้างชุมชนกราฟิกโอเพ่นซอร์สและระบบนิเวศอำนวยความสะดวกในการแบ่งปันโค้ดระหว่าง GPU และ CPU และที่สำคัญที่สุดคือเปิดใช้งานผู้ใช้ (ในอนาคต) และนักพัฒนาอื่น สร้างประสบการณ์ที่น่าสนใจและมีส่วนร่วมได้อย่างรวดเร็วมากขึ้น
ขึ้นอยู่กับรหัสในภาษา Rust การเป็นตัวแทนของเฉดสี SPIR-V ถูกสร้างขึ้นซึ่งมีการสร้างแบ็กเอนด์พิเศษสำหรับคอมไพเลอร์ Rust ซึ่งทำงานโดยการเปรียบเทียบกับตัวสร้างรหัส cranelift ที่ใช้ในการรวบรวมเป็นตัวแทน WebAssembly
แนวทางปัจจุบันคือการสนับสนุนมุมมอง Vulkan Graphics API และ SPIR-V แต่เครื่องกำเนิดไฟฟ้าได้รับการวางแผนไว้สำหรับอนาคตของมุมมองแบบ DXIL (DirectX) และ WGSL (WebGPU) จาก Cargo และ crates.io มีการพัฒนาเครื่องมือเพื่อพัฒนาและเผยแพร่แพ็คเกจที่มีเฉดสีในรูปแบบ SPIR-V
สุดท้ายหากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับโครงการนี้คุณสามารถตรวจสอบรายละเอียดในพื้นที่เก็บข้อมูลของโครงการ ลิงค์คือนี่
สำหรับผู้ที่สนใจที่จะทราบรหัสควรทราบว่ารหัสดังกล่าวเผยแพร่ภายใต้ใบอนุญาต MIT และ Apache 2.0 และมีความเป็นไปได้ที่จะได้รับ จากลิงค์ด้านล่าง
และยังสามารถดูเอกสารประกอบซึ่งเตรียมไว้แล้วสำหรับนักพัฒนาเพื่อให้สามารถทำงานบน Linux, Windows และ Mac ได้ ดูคำแนะนำได้ที่ลิงค์นี้
สนิมเริ่มขึ้นหวังว่าจะไม่ใช่ "สกาลามฤตยู" อีก