มีอะไรใหม่ใน 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 มิลลิวินาทีต่อการวาด 10K เป็นประมาณ 0.3 มิลลิวินาทีต่อการวาด 10, 000 ครั้ง ซึ่งเพิ่มขึ้น 40%

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

getCurrentTexture() ในผืนผ้าใบที่ไม่ได้กำหนดค่าทำให้เกิดโดเมนที่ไม่ถูกต้อง

ตอนนี้การเรียกใช้เมธอด GPUCanvasContext getCurrentTexture() บน Canvas ที่ไม่ได้กำหนดค่าจะทำให้เกิด InvalidStateError แทน OperationError ตามข้อกำหนด WebGPU ดูฉบับ chromium:1424461

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

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

เวกเตอร์ AbstractInt ที่มีการเติมค่าเป็นศูนย์สามารถเขียนเป็น vec2(), vec3() และ vec4() ได้ ดูสีของปัญหา:1892 เช่น

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

ข้อมูลอัปเดตรุ่งเช้า

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

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

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

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

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

รายการทั้งหมดที่กล่าวถึงในซีรีส์ What's New in WebGPU

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