เผยแพร่แล้ว: 23 เมษายน 2025
แอตทริบิวต์ isFallbackAdapter ของ GPUAdapterInfo
แอตทริบิวต์บูลีน GPUAdapterInfo isFallbackAdapter
จะระบุว่า GPUAdapter มีข้อจำกัดด้านประสิทธิภาพที่สำคัญหรือไม่ เพื่อแลกกับความสามารถในการใช้งานร่วมกันที่กว้างขึ้น ลักษณะการทำงานที่คาดการณ์ได้มากขึ้น หรือความเป็นส่วนตัวที่ดีขึ้น การเพิ่มนี้จําเป็นเนื่องจากไลบรารีที่ใช้ออบเจ็กต์ GPUDevice ที่ผู้ใช้ระบุไม่สามารถเข้าถึงข้อมูลนี้ผ่านแอตทริบิวต์ adapterInfo
ใน GPUDevice โปรดดูตัวอย่างต่อไปนี้และปัญหา 403172841
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
เนื่องจาก Chrome ยังไม่รองรับอะแดปเตอร์สำรอง isFallbackAdapter
จึงจะเป็นเท็จเสมอในอุปกรณ์ของผู้ใช้ เรากําลังตรวจสอบว่าจะเลิกใช้งานและนําแอตทริบิวต์ GPUAdapter isFallbackAdapter
ออกได้หรือไม่ ดูความตั้งใจที่จะจัดส่ง
การปรับปรุงเวลาคอมไพล์ Shader ใน D3D12
ทีม Chrome ยังคงปรับปรุง Tint ซึ่งเป็นคอมไพเลอร์ภาษาเชดเดอร์ WebGPU โดยเพิ่มการแสดงข้อมูลระดับกลาง (IR) สำหรับอุปกรณ์ที่รองรับ WebGPU ที่มีแบ็กเอนด์ D3D12 IR นี้ซึ่งอยู่ตรงกลางระหว่าง Abstract Syntax Tree (AST) ของ Tint กับโปรแกรมเขียนแบ็กเอนด์ HLSL จะทำให้คอมไพเลอร์มีประสิทธิภาพและดูแลรักษาได้ง่ายขึ้น ซึ่งท้ายที่สุดแล้วจะเป็นประโยชน์ต่อทั้งนักพัฒนาซอฟต์แวร์และผู้ใช้ การทดสอบเบื้องต้นแสดงให้เห็นว่า Tint เวอร์ชันใหม่ทำงานได้เร็วขึ้นถึง 10 เท่าเมื่อแปลเฉดสี WGSL ของ Unity เป็น HLSL

การปรับปรุงเหล่านี้ซึ่งพร้อมใช้งานบน Android, ChromeOS และ macOS อยู่แล้วกำลังขยายการให้บริการไปยังอุปกรณ์ Windows ที่รองรับ WebGPU ด้วยแบ็กเอนด์ D3D12 โปรดดูปัญหา 42251045
บันทึกและคัดลอกรูปภาพพิมพ์แคนวาส
ตอนนี้ผู้ใช้ Chrome สามารถคลิกขวาที่ผืนผ้าใบ WebGPU และเข้าถึงตัวเลือกเมนูตามบริบทอย่างบันทึกรูปภาพเป็น… หรือคัดลอกรูปภาพได้แล้ว โปรดดูปัญหา 40902474

ข้อจํากัดของโหมดความเข้ากันได้ของ Brand Lift
ฟีเจอร์ "core-features-and-limits"
เวอร์ชันทดลอง (หากมีใน GPUDevice) จะยกเลิกข้อจำกัดทั้งหมดของโหมดความเข้ากันได้ (ฟีเจอร์และขีดจำกัด) เมื่อเปิดใช้ Flag chrome://flags/#enable-unsafe-webgpu
โปรดดูปัญหา 395855517
การขอ GPUAdapter ที่มีตัวเลือก featureLevel: "compatibility"
จะบอกให้เบราว์เซอร์เลือกโหมดความเข้ากันได้ของ WebGPU เวอร์ชันทดลอง หากดำเนินการสำเร็จ ตัวแปลงที่ได้จะเป็น "ค่าเริ่มต้นที่เข้ากันได้" มิฉะนั้นจะเป็น "ค่าเริ่มต้นหลัก" ซึ่งเหมือนกับการใช้ตัวเลือก featureLevel: "core"
นอกจากนี้ การเรียกใช้ requestDevice()
ที่ไม่มี requiredFeatures
และ requiredLimits
จะขอ GPUDevice ที่มีความสามารถเริ่มต้นของ GPUAdapter
อะแดปเตอร์ที่เป็นค่าเริ่มต้นของ Core จะรองรับฟีเจอร์ "core-features-and-limits"
เสมอ และระบบจะเปิดใช้ฟีเจอร์นี้โดยอัตโนมัติใน GPUDevice ที่สร้างขึ้นจากอะแดปเตอร์ดังกล่าว สำหรับอะแดปเตอร์ที่เปิดใช้ความเข้ากันได้โดยค่าเริ่มต้น ฟีเจอร์ "core-features-and-limits"
อาจใช้งานได้และสามารถขอได้ใน GPUDevice ที่สร้างขึ้นจากอะแดปเตอร์ดังกล่าว นอกจากนี้ ตัวแปลงทั้ง 2 ประเภทยังอาจรองรับฟีเจอร์อย่าง "float32-blendable"
ซึ่งไม่บังคับทั้งในโหมดหลักและโหมดความเข้ากันได้
ตัวอย่างต่อไปนี้เป็นแอปพลิเคชันที่ต้องใช้ "float32-blendable"
และรองรับการใช้ฟีเจอร์หลักหากมี แต่จะใช้เฉพาะฟีเจอร์ที่เข้ากันได้หากฟีเจอร์หลักไม่พร้อมใช้งาน
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
ระบบได้นำแอตทริบิวต์ GPUAdapter featureLevel
และ isCompatibilityMode
เวอร์ชันทดลองออกแล้วเพื่อใช้ฟีเจอร์ "core-features-and-limits"
ดูปัญหา 395855516
การอัปเดต Dawn
เราได้เปลี่ยนชื่อ enum สถานะการเรียกกลับ InstanceDropped
เป็น CallbackCancelled
เพื่อชี้แจงว่าการเรียกกลับถูกยกเลิก แต่การประมวลผลเบื้องหลังที่เกี่ยวข้องกับเหตุการณ์ เช่น การคอมไพล์ไปป์ไลน์ อาจยังคงทํางานอยู่ ชื่อใหม่นี้ใช้ได้ทั่วไปมากกว่าในกรณีที่มีการเพิ่มกลไกการยกเลิกอื่นในภายหลัง ดูปัญหา 520
เราได้เปลี่ยนชื่อ enum wgpu::PopErrorScopeStatus::EmptyStack
ที่ระบุว่าไม่สามารถยกเลิกสแต็กขอบเขตข้อผิดพลาดเป็น wgpu::PopErrorScopeStatus::Error
(ซึ่งใช้ได้ทั่วไปมากกว่า) ตอนนี้การติดต่อกลับจะมีข้อความคำอธิบายข้อผิดพลาดที่เกี่ยวข้องเพื่อช่วยแก้ไขข้อบกพร่องด้วย ดูปัญหา 369
ข้อมูลนี้เป็นเพียงไฮไลต์สำคัญบางส่วนเท่านั้น ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่ครอบคลุมในชุดมีอะไรใหม่ใน WebGPU
Chrome 136
- แอตทริบิวต์ isFallbackAdapter ของ GPUAdapterInfo
- การปรับปรุงเวลาคอมไพล์ Shader ใน D3D12
- บันทึกและคัดลอกรูปภาพพิมพ์แคนวาส
- ข้อจํากัดของโหมดความเข้ากันได้ของ Lift
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 135
- อนุญาตให้สร้างเลย์เอาต์ไปป์ไลน์ที่มีเลย์เอาต์กลุ่มการเชื่อมโยง Null
- อนุญาตให้วิวพอร์ตขยายเกินขอบเขตเป้าหมายการแสดงผล
- เข้าถึงโหมดความเข้ากันได้เวอร์ชันทดลองใน Android ได้ง่ายขึ้น
- นำขีดจำกัด maxInterStageShaderComponents ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 134
- ปรับปรุงเวิร์กโหลดแมชชีนเลิร์นนิงด้วยกลุ่มย่อย
- นำการรองรับประเภทพื้นผิวที่กรองแบบลอยตัวออกเพื่อใช้เป็นพื้นผิวที่ผสมได้
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 133
- รูปแบบเวิร์กเท็กซ์แบบ unorm8x4-bgra และแบบคอมโพเนนต์เดียวเพิ่มเติม
- อนุญาตให้ขอขีดจํากัดที่ไม่รู้จักด้วยค่าที่ไม่ระบุ
- การเปลี่ยนแปลงกฎการจัดแนว WGSL
- ประสิทธิภาพ WGSL ที่เพิ่มขึ้นเมื่อมีการทิ้ง
- ใช้ displaySize ของ VideoFrame สำหรับพื้นผิวภายนอก
- จัดการรูปภาพที่มีการวางแนวที่ไม่ใช่ค่าเริ่มต้นโดยใช้ copyExternalImageToTexture
- การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอป
- เปิดใช้โหมดความเข้ากันได้ด้วย featureLevel
- การล้างข้อมูลฟีเจอร์กลุ่มย่อยเวอร์ชันทดลอง
- เลิกใช้งานขีดจำกัด maxInterStageShaderComponents
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 132
- การใช้งานมุมมองพื้นผิว
- การผสมพื้นผิวแบบจำนวนลอยตัว 32 บิต
- แอตทริบิวต์ adapterInfo ของ GPUDevice
- การกําหนดค่าบริบท Canvas ที่มีรูปแบบไม่ถูกต้องจะทำให้เกิดข้อผิดพลาด JavaScript
- การกรองข้อจำกัดของตัวสุ่มตัวอย่างในพื้นผิว
- การทดสอบกลุ่มย่อยแบบขยาย
- การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอป
- การรองรับรูปแบบพื้นผิวแบบ 16 บิตที่ปรับให้เป็นมาตรฐานแบบทดลอง
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 131
- ตัดระยะทางใน WGSL
- GPUCanvasContext getConfiguration()
- องค์ประกอบพื้นฐานของจุดและเส้นต้องไม่มีอคติด้านความลึก
- ฟังก์ชันการสแกนแบบรวมในตัวสำหรับกลุ่มย่อย
- การรองรับการดึงข้อมูลแบบอ้อมหลายรายการในขั้นทดลอง
- ตัวเลือกการคอมไพล์โมดูล Shader เป็นแบบคณิตศาสตร์ที่เข้มงวด
- นํา GPUAdapter requestAdapterInfo() ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 130
- การผสมผสานแหล่งที่มาแบบคู่
- การปรับปรุงเวลาคอมไพล์ Shader ใน Metal
- การเลิกใช้งาน requestAdapterInfo() ของ GPUAdapter
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 129
- การรองรับ HDR ด้วยโหมดการปรับโทนสีของ Canvas
- การรองรับกลุ่มย่อยที่เพิ่มขึ้น
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 128
- การทดสอบกลุ่มย่อย
- เลิกใช้งานการตั้งค่าความเอียงของภาพสำหรับเส้นและจุด
- ซ่อนคำเตือนข้อผิดพลาดของเครื่องมือสำหรับนักพัฒนาเว็บที่ยังไม่ได้บันทึกไว้หาก preventDefault
- WGSL จะปัดเศษการสุ่มตัวอย่างก่อน แล้วทำอย่างใดอย่างหนึ่งต่อไปนี้
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 127
- การรองรับ OpenGL ES ใน Android แบบทดลอง
- แอตทริบิวต์ข้อมูล GPUAdapter
- การปรับปรุงความสามารถในการทำงานร่วมกันของ WebAssembly
- ข้อผิดพลาดเกี่ยวกับโปรแกรมเข้ารหัสคําสั่งที่ปรับปรุงแล้ว
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 126
- เพิ่มขีดจํากัด maxTextureArrayLayers
- การเพิ่มประสิทธิภาพการอัปโหลดบัฟเฟอร์สําหรับแบ็กเอนด์ Vulkan
- การปรับปรุงเวลาคอมไพล์ Shader
- บัฟเฟอร์คำสั่งที่ส่งต้องไม่ซ้ำกัน
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 125
Chrome 124
- พื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียวและแบบอ่านและเขียน
- การรองรับ Service Worker และ Shared Worker
- แอตทริบิวต์ข้อมูลอะแดปเตอร์ใหม่
- แก้ไขข้อบกพร่อง
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 123
- การรองรับฟังก์ชันในตัวของ DP4a ใน WGSL
- พารามิเตอร์พอยน์เตอร์ที่ไม่มีข้อจำกัดใน WGSL
- Syntax sugar สำหรับการนำคอมโพสิทมาอ้างอิงใน WGSL
- แยกสถานะอ่านอย่างเดียวสำหรับแสตนซิลและมิติความลึก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 122
- ขยายการเข้าถึงด้วยโหมดความเข้ากันได้ (ฟีเจอร์ที่กำลังพัฒนา)
- เพิ่มขีดจํากัด maxVertexAttributes
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 121
- รองรับ WebGPU ใน Android
- ใช้ DXC แทน FXC สำหรับการคอมไพล์ shader ใน Windows
- การค้นหาการประทับเวลาในการคำนวณและผ่านการแสดงผล
- จุดแรกเข้าเริ่มต้นไปยังโมดูล Shader
- รองรับ display-p3 เป็นพื้นที่สี GPUExternalTexture
- ข้อมูลกองหน่วยความจำ
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 120
- การรองรับค่าทศนิยม 16 บิตใน WGSL
- ก้าวข้ามขีดจำกัด
- การเปลี่ยนแปลงสถานะความลึกของสเตนซิล
- การอัปเดตข้อมูลอะแดปเตอร์
- การแปลงค่าการค้นหาการประทับเวลา
- ฟีเจอร์ทำความสะอาดช่วงฤดูใบไม้ผลิ
Chrome 119
- พื้นผิวแบบจำนวนลอยตัว 32 บิตที่กรองได้
- รูปแบบเวิร์กเท็กซ์ unorm10-10-10-2
- รูปแบบพื้นผิว rgb10a2uint
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 118
- การรองรับ HTMLImageElement และ ImageData ใน
copyExternalImageToTexture()
- การรองรับแบบทดลองสำหรับพื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียวและอ่าน/เขียน
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 117
- ยกเลิกการตั้งค่าบัฟเฟอร์เวิร์กเทกซ์
- ยกเลิกการตั้งค่ากลุ่มการเชื่อมโยง
- ซ่อนข้อผิดพลาดจากการสร้างไปป์ไลน์แบบแอสซิงค์เมื่ออุปกรณ์สูญหาย
- การอัปเดตการสร้างโมดูล Shader ของ SPIR-V
- การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอป
- การแคชไปป์ไลน์ที่มีเลย์เอาต์ที่สร้างขึ้นโดยอัตโนมัติ
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 116
- การผสานรวม WebCodecs
- อุปกรณ์ที่สูญหายที่ GPUAdapter
requestDevice()
แสดง - เล่นวิดีโอได้อย่างราบรื่นหากมีการเรียกใช้
importExternalTexture()
- การปฏิบัติตามข้อกำหนด
- การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอป
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 115
- ส่วนขยายภาษา WGSL ที่รองรับ
- การรองรับ Direct3D 11 แบบทดลอง
- ใช้ GPU แบบแยกต่างหากโดยค่าเริ่มต้นเมื่อใช้แหล่งจ่ายไฟ AC
- การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอป
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 114
- เพิ่มประสิทธิภาพ JavaScript
- getCurrentTexture() ใน Canvas ที่ไม่ได้กําหนดค่าจะแสดงข้อผิดพลาด InvalidStateError
- ข้อมูลอัปเดตเกี่ยวกับ WGSL
- ข้อมูลอัปเดตเกี่ยวกับ Dawn