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

François Beaufort
François Beaufort

เผยแพร่เมื่อวันที่ 24 กันยายน 2025

การปรับสี 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 Frontend (แอปพลิเคชันใช้เพื่อแปลง SPIR-V เป็น WGSL) จากการสร้างการแสดง AST เป็นการสร้าง IR โดยตรง การปรับปรุงนี้ยังนำเสนอฟีเจอร์ที่รอคอยมานาน เช่น การรองรับ Float 16 ใน SPIR-V Frontend

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

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

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

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

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

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

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

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

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

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

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

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

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