WebGPU มักถูกมองว่าเป็น Web Graphics API ที่ให้สิทธิ์เข้าถึง GPU แบบรวมและรวดเร็วโดยแสดงความสามารถของฮาร์ดแวร์ล้ำสมัยและเปิดใช้การดำเนินการเรนเดอร์และการคำนวณใน GPU ซึ่งคล้ายกับ Direct3D 12, Metal และ Vulkan
อย่างไรก็ตาม WebGPU ไม่ได้จำกัดอยู่แค่ JavaScript API เท่านั้น แต่ยังเป็นองค์ประกอบพื้นฐานที่คล้ายกับ WebAssembly โดยมีผลกระทบที่ขยายออกไปไกลกว่าเว็บเนื่องจากระบบนิเวศที่เติบโตอย่างรวดเร็ว ทีม Chrome ตระหนักดีว่า WebGPU เป็นมากกว่าเทคโนโลยีเว็บ แต่เป็นระบบนิเวศที่เฟื่องฟูซึ่งมุ่งเน้นที่เทคโนโลยีหลัก
การสำรวจระบบนิเวศในปัจจุบัน
เริ่มต้นด้วยการทำตามข้อกำหนด JavaScript ซึ่งเป็นการทำงานร่วมกันระหว่างองค์กรมากมาย เช่น Apple, Google, Intel, Mozilla และ Microsoft เว็บเบราว์เซอร์หลักๆ ทั้งหมดได้ติดตั้งใช้งานหรือกำลังอยู่ในขั้นตอนการติดตั้งใช้งาน WebGPU
ในขณะเดียวกัน Mozilla และ Google ได้ตระหนักถึงศักยภาพของ WebGPU ในแอปพลิเคชันเฉพาะแพลตฟอร์ม และแยกการติดตั้งใช้งาน WebGPU ออกจากเบราว์เซอร์เพื่อให้ใช้งานแบบสแตนด์อโลนได้
สำหรับ Chrome เครื่องมือนี้แสดงผลเป็น Dawn ซึ่งเป็นไลบรารี C/C++ ที่แปลการเรียกใช้ WebGPU เป็นคำสั่งของไดรเวอร์ GPU Dawn ช่วยให้แอปพลิเคชัน C และ C++ ใช้ WebGPU ได้ตั้งแต่ต้น ซึ่งให้บริการการแยกแยะ GPU แบบพกพาและใช้งานง่ายโดยใช้ความเชี่ยวชาญของผู้ให้บริการเบราว์เซอร์
ดังที่แสดงในบล็อกโพสต์ WebGPU: API กราฟิกข้ามแพลตฟอร์มแห่งอนาคต การพอร์ตแอปพลิเคชัน WebGPU สําหรับแพลตฟอร์มหนึ่งๆ ไปยังเว็บนั้นทําได้ง่ายๆ Emscripten ซึ่งเป็นเครื่องมือทางเทคนิค WebAssembly ของ C++ รองรับ WebGPU อยู่แล้ว โดยต้องมีการแก้ไขเพียงเล็กน้อยเพื่อพอร์ตไปยังเว็บ
คุณยังสามารถเรียกใช้โค้ด JavaScript WebGPU นอกเบราว์เซอร์ด้วยรันไทม์ JavaScript ของ Node.js เนื่องจากมีโมดูล WebGPU ที่อิงตาม Dawn ซึ่งช่วยให้คุณเรียกใช้โค้ดได้โดยไม่ต้องแก้ไขฝั่งเซิร์ฟเวอร์หรือในบริบทอื่นๆ ที่เจาะจงแพลตฟอร์ม
ระบบนิเวศที่คล้ายกันนี้มีอยู่ใน Rust ด้วย wgpu ซึ่งเป็นการใช้งาน WebGPU ของ Firefox Wgpu สามารถผสานรวมเข้ากับแอปพลิเคชัน Rust ได้โดยตรง จากนั้นจึงพอร์ตไปยังเว็บได้โดยใช้ web-sys นอกจากนี้ รันไทม์ Deno JavaScript ยังรองรับ WebGPU ผ่าน wgpu ด้วย ดูบล็อกโพสต์การเป็นพันธมิตร wgpu กับ Deno
ซึ่งจะสร้างระบบนิเวศคู่ขนานระหว่าง Rust กับ C++ ดังที่แสดงในแผนภาพต่อไปนี้
ขอบเขตที่กําลังเกิดขึ้น
ระบบนิเวศ WebGPU ครอบคลุมมากกว่าแค่ JavaScript, C++ และ Rust
จริงๆ แล้ว ภาษาโปรแกรมที่คุณต้องการใช้อาจมีการเชื่อมโยงสำหรับ WebGPU อยู่แล้ว เนื่องจากวิศวกรที่ทำงานเกี่ยวกับการใช้งาน WebGPU กำลังพัฒนาส่วนหัว C ทั่วไปของ WebGPU เช่นกัน ซึ่งสามารถใช้เพื่อกำหนดเป้าหมายไปยัง Dawn, wgpu และอื่นๆ ซึ่งช่วยให้สร้างการเชื่อมโยงสำหรับภาษาต่างๆ โดยใช้ C FFI ได้ง่ายขึ้น
นอกจากนี้ ทีม Chrome ยังพิจารณาใช้ Dawn เป็นแบ็กเอนด์การแสดงผลเริ่มต้นสำหรับองค์ประกอบ UI ทั้งหมดของเบราว์เซอร์ ซึ่งรวมถึงเมนู แถบเครื่องมือ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ และเนื้อหาเว็บ ซึ่งจะช่วยลดความจำเป็นในการใช้งานการแสดงผลแยกกันสําหรับ Native API แต่ละรายการ ซึ่งจะทําให้กระบวนการพัฒนาง่ายขึ้น ฟีเจอร์นี้อยู่ในขั้นทดลองใน macOS และ Windows โดยอยู่หลัง Flag chrome://flags/#skia-graphite