เผยแพร่เมื่อวันที่ 7 มกราคม 2026
ส่วนขยาย subgroup_id ของ WGSL
ส่วนขยายภาษา subgroup_id ของ WGSL ช่วยให้คุณใช้ค่าบิวท์อินใหม่ต่อไปนี้ในเวิร์กกรุ๊ปได้เมื่อเปิดใช้ส่วนขยาย subgroups
subgroup_id: แสดงผลรหัสของกลุ่มย่อยของการเรียกใช้ภายในเวิร์กกรุ๊ปปัจจุบันnum_subgroups: รายงานจำนวนกลุ่มย่อยที่มีอยู่ในเวิร์กกรุ๊ป
ก่อนหน้านี้ หากต้องการจัดทำดัชนีหน่วยความจำโดยใช้รหัสการเรียกใช้กลุ่มย่อย คุณต้องสร้างรหัสกลุ่มย่อยขึ้นมาใหม่ (โดยปกติจะผ่าน การดำเนินการแบบอะตอม) เพื่อหลีกเลี่ยงการเข้าถึงหน่วยความจำที่ทับซ้อนกัน ตอนนี้คุณสามารถใช้ subgroup_id เพื่อเติมสมการอีกครึ่งหนึ่งได้แล้ว เนื่องจากฟังก์ชันนี้ยังไม่พร้อมใช้งานในแบ็กเอนด์ D3D จึงมีการจำลองฟังก์ชันนี้ไว้ คุณควรสร้างความเท่าเทียมกับ local_invocation_index เป็น subgroup_invocation_id + subgroup_size * subgroup_id ได้อย่างปลอดภัย โปรดทราบว่าในบางกรณี กลุ่มย่อยอาจไม่เต็ม
ส่วนขยายภาษาดังกล่าวสามารถตรวจหาฟีเจอร์ได้โดยใช้ navigator.gpu.wgslLanguageFeatures เราขอแนะนำให้ใช้คำสั่ง requires เพื่อส่งสัญญาณว่าอาจเกิดการไม่สามารถใช้งานร่วมกันได้ด้วย requires subgroup_id; ที่ด้านบนของโค้ด Shader WGSL ดูตัวอย่างต่อไปนี้และเจตนาในการเปิดตัว
if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_id")) {
throw new Error(`WGSL subgroup_id and num_subgroups built-in values are not available`);
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });
const shaderModule = device.createShaderModule({ code: `
enable subgroups;
requires subgroup_id;
@compute @workgroup_size(64, 1, 1)
fn main(@builtin(subgroup_id) subgroup_id : u32,
@builtin(num_subgroups) num_subgroups : u32) {
// TODO: Use subgroup_id and num_subgroups values.
}`,
});
ส่วนขยาย uniform_buffer_standard_layout ของ WGSL
ส่วนขยายภาษา uniform_buffer_standard_layout ของ WGSL ช่วยให้บัฟเฟอร์แบบ Uniform ใช้ข้อจำกัดด้านเลย์เอาต์หน่วยความจำแบบเดียวกับบัฟเฟอร์พื้นที่เก็บข้อมูล ซึ่งทำให้แชร์โครงสร้างข้อมูลในบัฟเฟอร์ทั้ง 2 ประเภทได้ง่ายขึ้น ซึ่งหมายความว่าบัฟเฟอร์แบบ Uniform ไม่จำเป็นต้องมีการจัดแนว 16 ไบต์ในองค์ประกอบอาร์เรย์ หรือเพิ่มระยะห่างออฟเซ็ตของโครงสร้างที่ซ้อนกันให้เป็นหลายรายการของ 16 ไบต์อีกต่อไป
ส่วนขยายภาษาดังกล่าวสามารถตรวจหาฟีเจอร์ได้โดยใช้ navigator.gpu.wgslLanguageFeatures เราขอแนะนำให้ใช้คำสั่ง requires เพื่อส่งสัญญาณว่าอาจเกิดการไม่สามารถใช้งานร่วมกันได้ด้วย requires uniform_buffer_standard_layout; ที่ด้านบนของโค้ด Shader WGSL ดูตัวอย่างต่อไปนี้และเจตนาในการเปิดตัว
if (!navigator.gpu.wgslLanguageFeatures.has("uniform_buffer_standard_layout")) {
throw new Error(`WGSL uniform buffer standard layout is not available`);
}
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const shaderModule = device.createShaderModule({ code: `
requires uniform_buffer_standard_layout;
struct S {
x: f32
}
struct Uniforms {
a: S,
b: f32
// b is at offset 4. Without standard layout, alignment rules would
// force b to be at offset 16 (or a multiple of 16), and you would have
// to add extra fields or use an @align attribute.
}
@group(0) @binding(0) var<uniform> u: Uniforms;
@fragment fn fs_main() -> @location(0) vec4<f32> {
return vec4<f32>(u.a.x);
}`,
});
WebGPU ใน Linux
ทีม Chrome กำลังเปิดตัว WebGPU สำหรับ Linux อย่างระมัดระวัง โดยเริ่มจากการรองรับ GPU ของ Intel Gen12+ แต่มีแผนที่จะขยายการรองรับไปยังอุปกรณ์อื่นๆ (AMD, NVIDIA) การติดตั้งใช้งานนี้ใช้สถาปัตยกรรมที่ WebGPU ใช้ Vulkan และส่วนที่เหลือของ Chromium ยังคงใช้ OpenGL ซึ่งเป็นการใช้เส้นทางโค้ดที่ดีที่ทราบกันดีอยู่แล้ว ดู ปัญหา 442791440
writeBuffer และ writeTexture เร็วขึ้น
เราได้เพิ่มประสิทธิภาพ writeBuffer() และ writeTexture() ใน Chrome ซึ่งส่งผลให้ประสิทธิภาพดีขึ้นสูงสุด 2 เท่าเมื่อเทียบกับเวอร์ชันก่อนหน้า ทั้งนี้ขึ้นอยู่กับขนาดของข้อมูลที่โอน การเปลี่ยนแปลงนี้ส่งผลต่อผู้ใช้การติดตั้งใช้งาน Dawn Wire ทุกคนด้วย ดู ปัญหา 441900745
ข้อมูลอัปเดตของ Dawn
ทีม GPU ของ Android ได้เผยแพร่การเปิดตัวเวอร์ชันอัลฟ่าครั้งแรกของการผูก Kotlin สำหรับ WebGPU ใน Android ซึ่งพร้อมใช้งานโดยใช้ Jetpack แพ็กเกจ androidx.webgpu ช่วยให้นักพัฒนาแอป Android เข้าถึง GPU API ที่ทันสมัยโดยใช้ Kotlin ซึ่งเป็นการหลีกเลี่ยงปัญหาเดิมของ OpenGL หรือความซับซ้อนของ Vulkan ซึ่งเป็นการพัฒนาที่น่าตื่นเต้นสำหรับระบบนิเวศ
ข้อมูลนี้ครอบคลุมเฉพาะไฮไลต์สำคัญบางส่วน ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่กล่าวถึงในซีรีส์มีอะไรใหม่ใน WebGPU
Chrome 147-148
Chrome 146
- รองรับโหมดความเข้ากันได้ของ WebGPU ใน OpenGL ES 3.1
- ไฟล์แนบชั่วคราว
- ส่วนขยาย texture_and_sampler_let ของ WGSL
- ข้อมูลอัปเดตของ Dawn
Chrome 145
- ส่วนขยาย subgroup_uniformity ของ WGSL
- การแมปบัฟเฟอร์แบบซิงโครนัสเวอร์ชันทดลองใน Worker
- ข้อมูลอัปเดตของ Dawn
Chrome 144
- ส่วนขยาย subgroup_id ของ WGSL
- ส่วนขยาย uniform_buffer_standard_layout ของ WGSL
- WebGPU ใน Linux
- writeBuffer และ writeTexture เร็วขึ้น
- ข้อมูลอัปเดตของ Dawn
Chrome 143
- การสลับคอมโพเนนต์พื้นผิว
- นำการใช้งานพื้นที่เก็บข้อมูลพื้นผิวแบบอ่านอย่างเดียว bgra8unorm ออก
- ข้อมูลอัปเดตของ Dawn
Chrome 142
Chrome 141
- Tint IR เสร็จสมบูรณ์แล้ว
- การวิเคราะห์ช่วงจำนวนเต็มในคอมไพเลอร์ WGSL
- การอัปเดต SPIR-V 1.4 สำหรับแบ็กเอนด์ Vulkan
- ข้อมูลอัปเดตของ Dawn
Chrome 140
- คำขออุปกรณ์ใช้ตัวปรับ
- ตัวย่อสำหรับการใช้พื้นผิวในที่ที่ใช้มุมมองพื้นผิว
- textureSampleLevel ของ WGSL รองรับพื้นผิว 1 มิติ
- เลิกใช้งานการใช้งานพื้นที่เก็บข้อมูลพื้นผิวแบบอ่านอย่างเดียว bgra8unorm
- นำแอตทริบิวต์ isFallbackAdapter ของ GPUAdapter ออก
- ข้อมูลอัปเดตของ Dawn
Chrome 139
- การรองรับพื้นผิว 3 มิติสำหรับรูปแบบที่บีบอัด BC และ ASTC
- ฟีเจอร์ใหม่ "core-features-and-limits"
- ช่วงทดลองใช้จากต้นทางสำหรับโหมดความเข้ากันได้ของ WebGPU
- ข้อมูลอัปเดตของ Dawn
Chrome 138
- ตัวย่อสำหรับการใช้บัฟเฟอร์เป็นทรัพยากรการผูก
- การเปลี่ยนแปลงข้อกำหนดด้านขนาดสำหรับบัฟเฟอร์ที่แมปเมื่อสร้าง
- รายงานสถาปัตยกรรมสำหรับ GPU ล่าสุด
- เลิกใช้งานแอตทริบิวต์ isFallbackAdapter ของ GPUAdapter
- ข้อมูลอัปเดตของ Dawn
Chrome 137
- ใช้มุมมองพื้นผิวสำหรับการผูก externalTexture
- บัฟเฟอร์จะคัดลอกโดยไม่ต้องระบุออฟเซ็ตและขนาด
- workgroupUniformLoad ของ WGSL ใช้ตัวชี้ไปยังอะตอม
- แอตทริบิวต์ powerPreference ของ GPUAdapterInfo
- นำแอตทริบิวต์ compatibilityMode ของ GPURequestAdapterOptions ออก
- ข้อมูลอัปเดตของ Dawn
Chrome 136
- แอตทริบิวต์ isFallbackAdapter ของ GPUAdapterInfo
- การปรับปรุงเวลาในการคอมไพล์ Shader ใน D3D12
- บันทึกและคัดลอกรูปภาพ Canvas
- ยกเลิกข้อจำกัดของโหมดความเข้ากันได้
- ข้อมูลอัปเดตของ Dawn
Chrome 135
- อนุญาตให้สร้างเลย์เอาต์ไปป์ไลน์ด้วยเลย์เอาต์กลุ่มการผูกเป็น Null
- อนุญาตให้ Viewport ขยายเกินขอบเขตเป้าหมายการแสดงผล
- เข้าถึงโหมดความเข้ากันได้เวอร์ชันทดลองใน Android ได้ง่ายขึ้น
- นำขีดจำกัด maxInterStageShaderComponents ออก
- ข้อมูลอัปเดตของ Dawn
Chrome 134
- ปรับปรุงเวิร์กโหลดแมชชีนเลิร์นนิงด้วยกลุ่มย่อย
- นำการรองรับประเภทพื้นผิวที่กรองได้แบบลอยตัวออกเนื่องจากสามารถผสมได้
- ข้อมูลอัปเดตของ Dawn
Chrome 133
- รูปแบบจุดยอด unorm8x4-bgra และรูปแบบจุดยอด 1 คอมโพเนนต์เพิ่มเติม
- อนุญาตให้ขอขีดจำกัดที่ไม่รู้จักด้วยค่าที่ไม่ได้กำหนด
- การเปลี่ยนแปลงกฎการจัดแนวของ WGSL
- การปรับปรุงประสิทธิภาพของ WGSL ด้วยการทิ้ง
- ใช้ displaySize ของ VideoFrame สำหรับพื้นผิวภายนอก
- จัดการรูปภาพที่มีการวางแนวที่ไม่ใช่ค่าเริ่มต้นโดยใช้ copyExternalImageToTexture
- การปรับปรุงประสบการณ์ของนักพัฒนาแอป
- เปิดใช้โหมดความเข้ากันได้ด้วย featureLevel
- การล้างฟีเจอร์กลุ่มย่อยเวอร์ชันทดลอง
- เลิกใช้งานขีดจำกัด maxInterStageShaderComponents
- ข้อมูลอัปเดตของ Dawn
Chrome 132
- การใช้งานมุมมองพื้นผิว
- การผสมพื้นผิวแบบลอยตัว 32 บิต
- แอตทริบิวต์ adapterInfo ของ GPUDevice
- การกำหนดค่าบริบท Canvas ด้วยรูปแบบที่ไม่ถูกต้องจะทำให้เกิดข้อผิดพลาด JavaScript
- ข้อจำกัดของตัวกรองตัวอย่างในพื้นผิว
- การทดลองกลุ่มย่อยแบบขยาย
- การปรับปรุงประสบการณ์ของนักพัฒนาแอป
- การรองรับเวอร์ชันทดลองสำหรับรูปแบบพื้นผิวแบบปกติ 16 บิต
- ข้อมูลอัปเดตของ Dawn
Chrome 131
- ระยะทางคลิปใน WGSL
- getConfiguration() ของ GPUCanvasContext
- ดั้งเดิมที่เป็นจุดและเส้นต้องไม่มีการเบี่ยงเบนความลึก
- ฟังก์ชันบิวท์อินของการสแกนแบบรวมสำหรับกลุ่มย่อย
- การรองรับเวอร์ชันทดลองสำหรับการวาดหลายรายการแบบอ้อม
- ตัวเลือกการคอมไพล์โมดูล Shader แบบเข้มงวด
- นำ requestAdapterInfo() ของ GPUAdapter ออก
- ข้อมูลอัปเดตของ Dawn
Chrome 130
- การผสมแหล่งที่มาคู่
- การปรับปรุงเวลาในการคอมไพล์ Shader ใน Metal
- การเลิกใช้งาน requestAdapterInfo() ของ GPUAdapter
- ข้อมูลอัปเดตของ Dawn
Chrome 129
Chrome 128
- การทดลองใช้กลุ่มย่อย
- เลิกใช้งานการตั้งค่าการเบี่ยงเบนความลึกสำหรับเส้นและจุด
- ซ่อนคำเตือนข้อผิดพลาดที่ไม่ได้ดักจับของเครื่องมือสำหรับนักพัฒนาเว็บหาก preventDefault
- การสุ่มตัวอย่างการประมาณค่าของ WGSL ก่อนและอย่างใดอย่างหนึ่ง
- ข้อมูลอัปเดตของ Dawn
Chrome 127
- การรองรับเวอร์ชันทดลองสำหรับ OpenGL ES ใน Android
- แอตทริบิวต์ info ของ GPUAdapter
- การปรับปรุงการทำงานร่วมกันของ WebAssembly
- ข้อผิดพลาดของตัวเข้ารหัสคำสั่งที่ปรับปรุงแล้ว
- ข้อมูลอัปเดตของ Dawn
Chrome 126
- เพิ่มขีดจำกัด maxTextureArrayLayers
- การเพิ่มประสิทธิภาพการอัปโหลดบัฟเฟอร์สำหรับแบ็กเอนด์ Vulkan
- การปรับปรุงเวลาในการคอมไพล์ Shader
- บัฟเฟอร์คำสั่งที่ส่งต้องไม่ซ้ำกัน
- ข้อมูลอัปเดตของ Dawn
Chrome 125
Chrome 124
- พื้นที่เก็บข้อมูลพื้นผิวแบบอ่านอย่างเดียวและอ่านและเขียน
- การรองรับ Service Worker และ Shared Worker
- แอตทริบิวต์ข้อมูลตัวปรับใหม่
- การแก้ไขข้อบกพร่อง
- ข้อมูลอัปเดตของ Dawn
Chrome 123
- การรองรับฟังก์ชันบิวท์อิน DP4a ใน WGSL
- พารามิเตอร์ตัวชี้ที่ไม่จำกัดใน WGSL
- ไวยากรณ์ที่ง่ายขึ้นสำหรับการอ้างอิงคอมโพสิตใน 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