เผยแพร่: 30 กรกฎาคม 2025
รองรับพื้นผิว 3 มิติสำหรับรูปแบบที่บีบอัด BC และ ASTC
ฟีเจอร์ "texture-compression-bc-sliced-3d"
และ "texture-compression-astc-sliced-3d"
WebGPU เพิ่มการรองรับพื้นผิว 3 มิติโดยใช้รูปแบบการบีบอัดแบบบล็อก (BC) และการบีบอัดพื้นผิวที่ปรับขนาดได้ (ASTC) ซึ่งช่วยให้คุณใช้ประโยชน์จากความสามารถในการบีบอัดที่มีประสิทธิภาพของรูปแบบ BC และ ASTC สำหรับข้อมูลพื้นผิวเชิงปริมาตรได้ ทำให้ลดการใช้หน่วยความจำและแบนด์วิดท์ได้อย่างมากโดยที่คุณภาพของภาพไม่ลดลงมากนัก ซึ่งมีประโยชน์อย่างยิ่งในสาขาต่างๆ เช่น การแสดงภาพทางวิทยาศาสตร์ การถ่ายภาพทางการแพทย์ และเทคนิคการแสดงผลขั้นสูง
ข้อมูลโค้ดต่อไปนี้จะตรวจสอบว่าอะแดปเตอร์รองรับพื้นผิว 3 มิติที่มีรูปแบบที่บีบอัด BC และ ASTC หรือไม่ และจะขออุปกรณ์ที่มีฟีเจอร์เหล่านี้หากมี
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-bc",
"texture-compression-bc-sliced-3d",
);
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-astc",
"texture-compression-astc-sliced-3d",
);
}
const device = await adapter?.requestDevice({ requiredFeatures });
// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
// Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
// Create a 3D texture using BC compression
} else {
// Fallback: Create an uncompressed 3D texture
}
สำรวจการสแกนสมองแบบ 3 มิติโดยดูการแสดงผลแบบวอลุ่ม - ตัวอย่าง WebGPU 3 มิติของพื้นผิวและดูรายการใน Chrome Status

ฟีเจอร์ใหม่ "core-features-and-limits"
เราจะเปิดตัว"core-features-and-limits"
ฟีเจอร์ใหม่สำหรับโหมดความเข้ากันได้ของ WebGPU ที่กำลังจะมาถึง ฟีเจอร์นี้บ่งบอกว่าอะแดปเตอร์หรืออุปกรณ์รองรับฟีเจอร์หลักและข้อจำกัดของข้อกำหนด WebGPU "หลัก" WebGPU เป็นเวอร์ชันเดียวที่พร้อมใช้งานในขณะนี้ ดังนั้นการติดตั้งใช้งาน WebGPU ทั้งหมดต้องมี "core-features-and-limits"
ในฟีเจอร์ที่รองรับ
ในอนาคต เมื่อเปิดตัวโหมดความเข้ากันได้ของ WebGPU อะแดปเตอร์หรืออุปกรณ์อาจไม่มีฟีเจอร์นี้เพื่อระบุว่าเป็นอะแดปเตอร์หรืออุปกรณ์โหมดความเข้ากันได้ ไม่ใช่อะแดปเตอร์หรืออุปกรณ์หลัก เมื่อเปิดใช้ในอุปกรณ์ ระบบจะยกเลิกข้อจำกัดทั้งหมดของโหมดความเข้ากันได้ (ฟีเจอร์และขีดจำกัด)
ดูคำอธิบายและการใช้งานโดยละเอียดในโหมดความเข้ากันได้ของ WebGPU ได้ที่คำอธิบายและส่วนต่อไปนี้ ดูปัญหา 418025721
ช่วงทดลองใช้จากต้นทางสำหรับโหมดความเข้ากันได้ของ WebGPU
WebGPU เป็น API ที่มีประสิทธิภาพซึ่งออกแบบมาสำหรับกราฟิกสมัยใหม่ โดยสอดคล้องกับเทคโนโลยีต่างๆ เช่น Vulkan, Metal และ Direct3D 12 อย่างไรก็ตาม อุปกรณ์จำนวนมากยังไม่รองรับ API ใหม่กว่าเหล่านี้ เช่น ใน Windows ผู้ใช้ Chrome 31% ไม่มี Direct3D 11.1 ขึ้นไป ใน Android ผู้ใช้ Android 15% ไม่มี Vulkan 1.1 ซึ่งรวมถึง 10% ที่ไม่มี Vulkan เลย
ซึ่งเป็นความท้าทายสำหรับนักพัฒนาแอปที่ต้องการเพิ่มการเข้าถึงแอปพลิเคชันของตนให้ได้สูงสุด นักพัฒนาแอปมักถูกบังคับให้พัฒนาการติดตั้งใช้งานหลายรายการ (เช่น WebGPU และ WebGL) ยอมรับกลุ่มเป้าหมายที่จำกัดมากขึ้นด้วย WebGPU หลัก หรือใช้ WebGL ต่อไป ซึ่งทำให้พลาดฟีเจอร์ขั้นสูงของ WebGPU เช่น การประมวลผล GPU

โหมดความเข้ากันได้ของ WebGPU มีโซลูชันโดยการให้ API ของ WebGPU เวอร์ชันที่จำกัดเล็กน้อยซึ่งต้องเลือกใช้ โหมดนี้ออกแบบมาเพื่อเรียกใช้ API กราฟิกเวอร์ชันเก่า เช่น OpenGL ES 3.1 และ Direct3D11 ซึ่งจะช่วยขยายการเข้าถึงแอปพลิเคชันของคุณไปยังอุปกรณ์ที่ไม่รองรับ API กราฟิกที่ทันสมัยและชัดเจนซึ่ง WebGPU หลักกำหนดไว้ได้อย่างมาก
เนื่องจากโหมดความเข้ากันได้เป็นส่วนย่อยของ WebGPU แอปพลิเคชันที่สร้างด้วยโหมดนี้จึงเป็นแอปพลิเคชัน "หลัก" ของ WebGPU ที่ถูกต้องด้วย ซึ่งหมายความว่าแอปจะทำงานได้อย่างราบรื่นแม้ในเบราว์เซอร์ที่ไม่รองรับโหมดความเข้ากันได้โดยเฉพาะ
สำหรับการใช้งานพื้นฐานหลายอย่าง การเปิดใช้โหมดความเข้ากันได้นั้นง่ายเพียงแค่ส่ง featureLevel: "compatibility"
เมื่อเรียกใช้ requestAdapter() ส่วนการใช้งานที่ซับซ้อนกว่าอาจต้องมีการปรับเปลี่ยนเล็กน้อยเพื่อให้เป็นไปตามข้อจำกัดของโหมด ตัวอย่าง WebGPU สำหรับการสร้าง Mipmap เป็นตัวอย่างที่ดี
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
featureLevel: "compatibility",
});
const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});
if (device?.features.has("core-features-and-limits")) {
// Compatibility mode restrictions will apply
}
เปิดใช้ฟีเจอร์
โดยค่าเริ่มต้น Chrome จะไม่ได้เปิดใช้โหมดความเข้ากันได้ของ WebGPU แต่คุณสามารถทดลองใช้ใน Chrome 139 ได้โดยการเปิดใช้ฟังก์ชันการทำงานอย่างชัดเจน คุณเปิดใช้งานได้ในเครื่องโดยเปิดใช้Flag "ฟีเจอร์แพลตฟอร์มเว็บเวอร์ชันทดลอง" ที่ chrome://flags/#enable-experimental-web-platform-features
เรากำลังดำเนินการช่วงทดลองใช้ Origin และจะสิ้นสุดใน Chrome 145 (21 เม.ย. 2026) เพื่อเปิดใช้ฟีเจอร์นี้สำหรับผู้เข้าชมแอปทั้งหมด หากต้องการเข้าร่วมการทดลองใช้ โปรดดูโพสต์เริ่มต้นใช้งานช่วงทดลองใช้จากต้นทาง
ข้อมูลอัปเดตเกี่ยวกับ Dawn
มีการเพิ่มอาร์กิวเมนต์ message
ลงในฟังก์ชัน WGPUQueueWorkDoneCallback
เพื่อให้สอดคล้องกับฟังก์ชันเรียกกลับอื่นๆ ที่ใช้สถานะด้วย ดูคำขอส่งการเปลี่ยนแปลง webgpu-headers
เมื่อลิงก์ emdawnwebgpu กับ -sSHARED_MEMORY
ระบบจะคอมไพล์ไฟล์ webgpu.cpp ด้วยแฟล็กนี้ด้วย ดู Dawn CL 244075
ซึ่งเป็นเพียงไฮไลต์สำคัญบางส่วนเท่านั้น ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่ครอบคลุมในซีรีส์มีอะไรใหม่ใน WebGPU
Chrome 140
- คำขอของอุปกรณ์จะใช้ตัวดัดแปลง
- รูปแบบย่อสำหรับการใช้พื้นผิวในที่ที่ใช้มุมมองพื้นผิว
- textureSampleLevel ของ WGSL รองรับพื้นผิว 1 มิติ
- เลิกใช้งานการใช้พื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียว bgra8unorm
- นำแอตทริบิวต์ isFallbackAdapter ของ GPUAdapter ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 139
- รองรับพื้นผิว 3 มิติสำหรับรูปแบบที่บีบอัด BC และ ASTC
- ฟีเจอร์ใหม่ "ฟีเจอร์หลักและขีดจำกัด"
- การทดลองใช้แหล่งที่มาสำหรับโหมดความเข้ากันได้ของ WebGPU
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 138
- คำย่อสำหรับการใช้บัฟเฟอร์เป็นทรัพยากรที่เชื่อมโยง
- การเปลี่ยนแปลงข้อกำหนดด้านขนาดสำหรับบัฟเฟอร์ที่แมปไว้ตอนสร้าง
- รายงานสถาปัตยกรรมสำหรับ GPU รุ่นล่าสุด
- เลิกใช้งานแอตทริบิวต์ isFallbackAdapter ของ GPUAdapter
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 137
- ใช้มุมมองพื้นผิวสำหรับการเชื่อมโยง ExternalTexture
- คัดลอกบัฟเฟอร์โดยไม่ต้องระบุออฟเซ็ตและขนาด
- WGSL workgroupUniformLoad โดยใช้พอยน์เตอร์ไปยังอะตอม
- แอตทริบิวต์ powerPreference ของ GPUAdapterInfo
- นำแอตทริบิวต์ compatibilityMode ของ GPURequestAdapterOptions ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 136
- แอตทริบิวต์ isFallbackAdapter ของ GPUAdapterInfo
- การปรับปรุงเวลาในการคอมไพล์ Shader ใน D3D12
- บันทึกและคัดลอกรูปภาพแคนวาส
- ข้อจำกัดของโหมดความเข้ากันได้ของ Lift
- ข้อมูลอัปเดตเกี่ยวกับ 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
- GPUCanvasContext getConfiguration()
- Primitive ของจุดและเส้นต้องไม่มีการปรับความลึก
- ฟังก์ชันการสแกนแบบรวมสำหรับกลุ่มย่อย
- การรองรับการวาดหลายรายการแบบอ้อมในเวอร์ชันทดลอง
- ตัวเลือกการคอมไพล์โมดูล Shader แบบเข้มงวด
- นำ requestAdapterInfo() ของ GPUAdapter ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 130
- การผสมผสานแหล่งที่มา 2 แหล่ง
- การปรับปรุงเวลาในการคอมไพล์ Shader บน Metal
- การเลิกใช้งาน requestAdapterInfo() ของ GPUAdapter
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 129
- รองรับ HDR ด้วยโหมดการแมปโทนสีของ Canvas
- การสนับสนุนกลุ่มย่อยที่เพิ่มขึ้น
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 128
- การทดลองใช้กลุ่มย่อย
- เลิกใช้งานการตั้งค่าอคติของความลึกสำหรับเส้นและจุด
- ซ่อนคำเตือนในเครื่องมือสำหรับนักพัฒนาเว็บเกี่ยวกับข้อผิดพลาดที่ไม่ได้บันทึกหาก preventDefault
- WGSL interpolate sampling first and either
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 127
- การรองรับ OpenGL ES ใน Android เวอร์ชันทดลอง
- แอตทริบิวต์ข้อมูล GPUAdapter
- การปรับปรุงการทำงานร่วมกันของ WebAssembly
- ข้อผิดพลาดของเครื่องมือเข้ารหัสคำสั่งที่ปรับปรุงแล้ว
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 126
- เพิ่มขีดจำกัด maxTextureArrayLayers
- การเพิ่มประสิทธิภาพการอัปโหลดบัฟเฟอร์สำหรับแบ็กเอนด์ Vulkan
- การปรับปรุงเวลาการคอมไพล์ Shader
- บัฟเฟอร์คำสั่งที่ส่งต้องไม่ซ้ำกัน
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 125
- กลุ่มย่อย (ฟีเจอร์ที่อยู่ระหว่างการพัฒนา)
- แสดงผลไปยังชิ้นส่วนของพื้นผิว 3 มิติ
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
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
- Unset vertex buffer
- ยกเลิกการตั้งค่ากลุ่มที่เชื่อมโยง
- ปิดเสียงข้อผิดพลาดจากการสร้างไปป์ไลน์แบบไม่พร้อมกันเมื่ออุปกรณ์สูญหาย
- ข้อมูลอัปเดตเกี่ยวกับการสร้างโมดูล 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