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

François Beaufort
François Beaufort

เพิ่มประสิทธิภาพ JavaScript

ผู้ร่วมให้ข้อมูลใน Chromium ได้เร่งประสิทธิภาพของ WebGPU สำหรับเมธอด GPUComputePassEncoder, GPURenderPassEncoder และ GPUCommandEncoder โดยลดค่าใช้จ่ายในการเรียกใช้จากโค้ดที่สร้างขึ้นในเครื่องมือ JavaScript V8 ไปยังเครื่องจัดการ C++ ในเครื่องมือแสดงผล Blink ดูปัญหา chromium:1417558

การทดสอบประสิทธิภาพแบบไมโครเบนช์มาร์กต่อไปนี้แสดงเวลา CPU ของการเรียกจาก JavaScript ที่ลดลงจากประมาณ 0.5 มิลลิวินาทีต่อการวาด 10,000 ครั้งเป็นประมาณ 0.3 มิลลิวินาทีต่อการวาด 10,000 ครั้ง ซึ่งถือเป็นการปรับปรุง 40%

ภาพหน้าจอของกราฟการเปรียบเทียบเบราว์เซอร์ Chrome ที่แสดงการปรับปรุงการโทรด่วน
กราฟเปรียบเทียบของ Chrome แสดงการปรับปรุงการโทรที่เร็ว (แหล่งที่มา)

getCurrentTexture() ใน Canvas ที่ไม่ได้กําหนดค่าจะแสดงข้อผิดพลาด InvalidStateError

ตอนนี้การเรียกใช้เมธอด GPUCanvasContext getCurrentTexture() ใน Canvas ที่ไม่ได้กําหนดค่าจะแสดงข้อผิดพลาด InvalidStateError แทน OperationError ตามข้อกําหนดของ WebGPU ดูปัญหา chromium:1424461

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

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

ตอนนี้เวกเตอร์ที่เติมด้วย 0 ของ AbstractInt จะเขียนเป็น vec2(), vec3() และ vec4() ได้ ดู issue tint:1892 เช่น

  • vec2() คือ vec2(0,0)
  • vec3() คือ vec3(0,0,0)
  • vec4() คือ vec4(0,0,0,0)

การอัปเดต Dawn

การปรับปรุงข้อความแสดงข้อผิดพลาด

ระบบไม่ได้ลบป้ายกำกับข้อบ่งชี้สำหรับออบเจ็กต์ที่ไม่ถูกต้องอีกต่อไป เพื่อให้คุณเห็นป้ายกำกับในข้อความแสดงข้อผิดพลาด ดูปัญหา dawn:1771

เพิ่ม API ที่ขาดหายไปสําหรับ Node.js

ตอนนี้มีการใช้เมธอด GPUAdapter::requestAdapterInfo() และ GPUBuffer::getMapState() สําหรับ Node.js แล้ว ดูปัญหา dawn:1761

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

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

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