Published: Oct 22, 2025
ขยายความสามารถในการรองรับรูปแบบพื้นผิว
ฟีเจอร์ GPU ใหม่ "texture-formats-tier1" ช่วยให้นักพัฒนาแอปย้ายเนื้อหาที่มีอยู่ไปยังเว็บได้โดยไม่ต้องเขียนใหม่สำหรับความสามารถที่ต่ำกว่าของ WebGPU โดยรองรับรูปแบบพื้นผิวใหม่ "r16unorm", "r16snorm", "rg16unorm", "rg16snorm", "rgba16unorm" และ "rgba16snorm" ที่มีฟีเจอร์ render attachment, blendable, multisampling และการเข้าถึงพื้นผิวพื้นที่เก็บข้อมูล "read-only" หรือ "write-only" นอกจากนี้ยังรองรับรูปแบบพื้นผิว "r8snorm", "rg8snorm", "rgba8snorm" ที่มีฟีเจอร์ render attachment, blendable, multisampling และ resolve และยังใช้รูปแบบพื้นผิวอื่นๆ ได้ด้วยการเข้าถึงพื้นผิวพื้นที่เก็บข้อมูล "read-only" หรือ "write-only"
ฟีเจอร์ GPU ใหม่ "texture-formats-tier2" ช่วยให้เข้าถึงพื้นผิวพื้นที่เก็บข้อมูล "read-write" สำหรับบางรูปแบบ ซึ่งมีความสำคัญอย่างยิ่งสำหรับโปรเจ็กต์ต่างๆ เช่น การย้าย Unreal Engine ไปยังเว็บ โปรดทราบว่าการเปิดใช้ "texture-formats-tier2" เมื่อสร้างอุปกรณ์จะเปิดใช้ "texture-formats-tier1" โดยอัตโนมัติ
ดูข้อมูลโค้ดและรายการ chromestatus ต่อไปนี้
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter.features.has("texture-format-tier1")) {
requiredFeatures.push("texture-format-tier1");
}
if (adapter.features.has("texture-format-tier2")) {
requiredFeatures.push("texture-format-tier2");
}
const device = await adapter.requestDevice({ requiredFeatures });
// Later on, when dealing with "r8unorm" texture formats for example...
if (device.features.has("texture-format-tier2")) {
// Use "read-write" storage texture access...
} else if (device.features.has("texture-format-tier1")) {
// Use "read-only" or "write-only" storage texture access...
} else {
// Fallback: Use another texture format...
}
ขอขอบคุณทีมงาน Intel ที่ทุ่มเททำงาน
ดัชนีดั้งเดิมใน WGSL
primitive_index เป็นค่า WGSL บิวท์อินที่ระบุองค์ประกอบดั้งเดิมปัจจุบัน (เช่น จุด เส้น หรือสามเหลี่ยม) ที่กำลังประมวลผลโดย Fragment Shader ได้อย่างไม่ซ้ำกัน โดยจะเริ่มต้นที่ 0 เพิ่มขึ้นทีละ 1 หลังจากประมวลผลองค์ประกอบดั้งเดิมแต่ละรายการ และรีเซ็ตเป็น 0 ระหว่างแต่ละอินสแตนซ์ที่วาด
เมื่อฟีเจอร์ "primitive-index" พร้อมใช้งานใน GPUAdapter ให้ขอ GPUDevice ที่มีฟีเจอร์นี้เพื่อรับการรองรับดัชนีดั้งเดิมใน WGSL และเปิดใช้ส่วนขยายนี้อย่างชัดเจนในโค้ด WGSL ด้วย enable primitive_index; เมื่อเปิดใช้แล้ว ให้ใช้ค่าจำนวนเต็มบิวท์อิน primitive_index ใน Fragment Shader เพื่อเข้าถึงข้อมูลต่อองค์ประกอบดั้งเดิมหรือใช้ตรรกะที่แตกต่างกันสำหรับรูปร่างทางเรขาคณิตที่แตกต่างกันแต่ละรายการที่แสดงผล เช่น
ข้อมูลโค้ดต่อไปนี้แสดง Fragment Shader ที่แสดงผลองค์ประกอบดั้งเดิมที่ 2 เป็นสีแดง และองค์ประกอบดั้งเดิมอื่นๆ ทั้งหมดเป็นสีน้ำเงิน
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("primitive-index")) {
throw new Error("Primitive index support is not available");
}
// Explicitly request primitive index support.
const device = await adapter.requestDevice({
requiredFeatures: ["primitive-index"],
});
const fragmentShaderModule = device.createShaderModule({ code: `
enable primitive_index;
@fragment
fn main(@builtin(primitive_index) i : u32) -> @location(0) vec4f {
if (i == 1) {
return vec4f(1, 0, 0, 1);
}
return vec4f(0, 1, 0, 1);
}`,
});
// Send the appropriate commands to the GPU...
สำรวจเพิ่มเติมได้ที่ตัวอย่างการเลือกองค์ประกอบดั้งเดิม และดูรายการchromestatus
ข้อมูลอัปเดตเกี่ยวกับ Dawn
ตัวแปร CMake DAWN_BUILD_MONOLITHIC_LIBRARY ที่ใช้จัดการประเภทไลบรารี Monolithic ที่จะสร้างมีการเปลี่ยนค่าเริ่มต้นจาก OFF เป็น STATIC เพื่อให้ระบบสร้างไฟล์ libwebgpu* โดยค่าเริ่มต้น
ตอนนี้ Dawn จัดการ wgpu::PresentMode::Undefined ได้อย่างถูกต้องโดยค่าเริ่มต้นเมื่อกำหนดค่า wgpu::Surface ดู ปัญหา 441410668
ข้อมูลนี้ครอบคลุมเฉพาะไฮไลต์สำคัญบางส่วน ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่กล่าวถึงในซีรีส์มีอะไรใหม่ใน WebGPU
Chrome 149-150
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
- คำขออุปกรณ์ใช้ Adapter
- ตัวย่อสำหรับการใช้พื้นผิวในที่ที่ใช้มุมมองพื้นผิว
- 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
- องค์ประกอบดั้งเดิมแบบจุดและเส้นต้องไม่มีการเบี่ยงเบนความลึก
- ฟังก์ชันบิวท์อินแบบสแกนรวมสำหรับกลุ่มย่อย
- การรองรับ multi-draw indirect เวอร์ชันทดลอง
- ตัวเลือกการคอมไพล์โมดูล 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
- แอตทริบิวต์ข้อมูล Adapter ใหม่
- แก้ไขข้อบกพร่อง
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 123
- การรองรับฟังก์ชันบิวท์อิน DP4a ใน WGSL
- พารามิเตอร์ตัวชี้ที่ไม่จำกัดใน WGSL
- ไวยากรณ์ที่กระชับสำหรับการอ้างอิงคอมโพสิตใน WGSL
- สถานะแบบอ่านอย่างเดียวแยกกันสำหรับด้านข้างของลายฉลุและความลึก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 122
- ขยายการเข้าถึงด้วยโหมดความเข้ากันได้ (ฟีเจอร์อยู่ระหว่างการพัฒนา)
- เพิ่มขีดจำกัด maxVertexAttributes
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 121
- รองรับ WebGPU ใน Android
- ใช้ DXC แทน FXC สำหรับการคอมไพล์ Shader ใน Windows
- การค้นหาการประทับเวลาใน Compute Pass และ Render Pass
- จุดเริ่มต้นเริ่มต้นสำหรับโมดูล Shader
- รองรับ display-p3 เป็นพื้นที่สี GPUExternalTexture
- ข้อมูลฮีปหน่วยความจำ
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 120
- การรองรับค่าจุดลอยตัว 16 บิตใน WGSL
- ก้าวข้ามขีดจำกัด
- การเปลี่ยนแปลงสถานะความลึก-ลายฉลุ
- ข้อมูลอัปเดตเกี่ยวกับ Adapter
- การหาปริมาณการค้นหาการประทับเวลา
- ฟีเจอร์การล้างข้อมูล
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