มีอะไรใหม่ใน WebGPU (Chrome 141)

François Beaufort
François Beaufort

เผยแพร่: 24 กันยายน 2025

Tint IR เสร็จสมบูรณ์

โปรเจ็กต์ที่ดำเนินการมาอย่างยาวนาน (กว่า 2.5 ปี) เพื่อเพิ่มประสิทธิภาพของส่วนประกอบภายในของ Tint ซึ่งเป็นคอมไพเลอร์ WGSL ได้เสร็จสมบูรณ์แล้ว มีการแทรกการแสดงผลระดับกลาง (IR) ลงในแบ็กเอนด์ระหว่าง Abstract Syntax Tree (AST) ปัจจุบันกับเครื่องมือสร้างโค้ดแบ็กเอนด์ การเปิดตัว IR ทำให้ทีม Chrome สามารถนำการแปลง AST ทั้งหมดออกและสร้างใหม่เป็นการแปลง IR ซึ่งเร็วกว่ามากเนื่องจากความแตกต่างทางสถาปัตยกรรม การทำงานภายในของ Tint ในบางแพลตฟอร์มมีการปรับปรุงความเร็วสูงสุด 7 เท่าจากการเปลี่ยนแปลงเหล่านี้

IR ใหม่นี้ปลดล็อกศักยภาพที่สำคัญสำหรับการวิเคราะห์และการเปลี่ยนรูปแบบ Shader ที่ซับซ้อนและขนาดใหญ่ ซึ่งไม่เพียงแต่รับประกันประสิทธิภาพที่เพิ่มขึ้นอย่างเห็นได้ชัด แต่ยังช่วยให้ Chrome สามารถนำเสนอฟีเจอร์ใหม่ๆ ที่น่าตื่นเต้นของ WebGPU ในอนาคตได้อย่างราบรื่นยิ่งขึ้น

จากเหตุการณ์สำคัญนี้ เครื่องมือสร้างโค้ดแบ็กเอนด์ทั้งหมดจะทำงานจากการแสดง IR, การแปลง AST ทั้งหมดจะถูกลบ และโค้ดสนับสนุน AST ทั้งหมดเพื่อเรียกใช้การแปลงจะถูกนำออก

ในการปรับปรุง IR เราได้แปลงส่วนหน้าของ SPIR-V (แอปพลิเคชันใช้เพื่อแปลง SPIR-V เป็น WGSL) จากการสร้างการแสดง AST เป็นการสร้าง IR โดยตรง การปรับปรุงนี้ยังเปิดตัวฟีเจอร์ที่รอคอยมานาน เช่น การรองรับ Float 16 ในส่วนหน้าของ SPIR-V

การวิเคราะห์ช่วงจำนวนเต็มในคอมไพเลอร์ WGSL

ทีม Chrome กำลังทยอยเปิดตัวการวิเคราะห์ช่วงจำนวนเต็มแบบใหม่สำหรับ Tint ซึ่งเป็นคอมไพเลอร์ภาษา Shader ของ WebGPU การวิเคราะห์ช่วงจำนวนเต็มจะประมาณค่าต่ำสุดและสูงสุดที่ตัวแปรจำนวนเต็มสามารถใช้ได้ในระหว่างการดำเนินการโปรแกรมโดยไม่ต้องเรียกใช้โปรแกรมจริง

ฟีเจอร์นี้มีเป้าหมายเพื่อปรับปรุงประสิทธิภาพโดยลดความจำเป็นในการตรวจสอบขอบเขตที่มีค่าใช้จ่ายสูง และจะเปิดใช้โดยค่าเริ่มต้นในทุกแพลตฟอร์มในเร็วๆ นี้ ดูปัญหา 348701956

อัปเดต SPIR-V 1.4 สำหรับแบ็กเอนด์ Vulkan

เราได้เปิดตัวการรองรับ SPIR-V 1.4 ในอุปกรณ์ Android และ ChromeOS ที่พร้อมใช้งาน การอัปเดตนี้ช่วยให้ Tint ซึ่งเป็นคอมไพเลอร์ WGSL ใช้ประโยชน์จากฟีเจอร์ การผ่อนปรน และคำสั่งใหม่ของ SPIR-V เพื่อสร้างโค้ดได้อย่างมีประสิทธิภาพมากขึ้นในบางสถานการณ์เมื่อคอมไพล์เชดเดอร์ Vulkan ดูปัญหา 427717267

ข้อมูลอัปเดตเกี่ยวกับ Dawn

ตอนนี้ส่วนหัว webgpu.h ที่ได้มาตรฐานซึ่งกำหนด C API หลักของ WebGPU ถือว่าเสถียรแล้ว ความเสถียรนี้ใช้กับ API หลักที่กำหนดต้นทางโดยเฉพาะ ไม่รวมส่วนขยายการใช้งาน (เช่น จาก Dawn หรือ Emdawnwebgpu) ดังนั้นจึงควรใช้ webgpu.h ที่ได้จากการใช้งานที่แน่นอนซึ่งคุณลิงก์ด้วย แม้ว่าส่วนหัวจะมีความเสถียร แต่คุณอาจยังพบความแตกต่างที่ไม่คาดคิดระหว่างการติดตั้งใช้งาน เนื่องจากเรายังคงแก้ไขข้อบกพร่องและจัดการความเข้ากันได้ทั่วทั้งระบบนิเวศ หากพบปัญหาดังกล่าว โปรดรายงานข้อบกพร่อง

ตอนนี้คุณสามารถค้นหาไบนารี Dawn ที่สร้างไว้ล่วงหน้าเป็นอาร์ติแฟกต์ใน GitHub Actions ได้แล้ว ต้องขอขอบคุณผู้มีส่วนร่วมภายนอกอย่าง William Candillon ซึ่งรวมถึงไฟล์ .lib แบบคงที่สำหรับ Android, ชุด .XCFramework สำหรับ Apple และไฟล์ส่วนหัวที่จำเป็นทั้งหมด ดู Dawn PR #39 และตัวอย่างของอาร์ติแฟกต์

ซึ่งเป็นเพียงไฮไลต์สำคัญบางส่วนเท่านั้น ดูรายการคอมมิตทั้งหมด

มีอะไรใหม่ใน WebGPU

รายการทุกอย่างที่ครอบคลุมในซีรีส์มีอะไรใหม่ใน WebGPU

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113