เผยแพร่เมื่อวันที่ 26 มีนาคม 2025
อนุญาตให้สร้างเลย์เอาต์ไปป์ไลน์ที่มีเลย์เอาต์กลุ่มการเชื่อมโยง Null
ก่อนหน้านี้ การสร้างเลย์เอาต์กลุ่มการเชื่อมโยงที่ว่างเปล่าจำเป็นต้องเพิ่มกลุ่มการเชื่อมโยงที่มีการเชื่อมโยงเป็น 0 ซึ่งไม่สะดวก ซึ่งไม่จําเป็นอีกต่อไปเนื่องจากตอนนี้ระบบอนุญาตให้ใช้เลย์เอาต์กลุ่มการเชื่อมโยง Null และละเว้นเมื่อสร้างเลย์เอาต์ไปป์ไลน์ ซึ่งจะช่วยให้การพัฒนาง่ายขึ้น
เช่น คุณอาจต้องการสร้างไปป์ไลน์ที่ใช้เฉพาะเลย์เอาต์กลุ่มการเชื่อมโยง 0 และ 2 คุณสามารถกําหนดเลย์เอาต์กลุ่มการเชื่อมโยง 1 ให้กับข้อมูลเศษและเลย์เอาต์กลุ่มการเชื่อมโยง 2 ให้กับข้อมูลเวิร์กเท็กซ์ จากนั้นจึงแสดงผลโดยไม่มีโปรแกรมเปลี่ยนรูปแบบเศษ ดูปัญหา 377836524
const bgl0 = myDevice.createBindGroupLayout({ entries: myGlobalEntries });
const bgl1 = myDevice.createBindGroupLayout({ entries: myFragmentEntries });
const bgl2 = myDevice.createBindGroupLayout({ entries: myVertexEntries });
// Create a pipeline layout that will be used to render without a fragment shader.
const myPipelineLayout = myDevice.createPipelineLayout({
bindGroupLayouts: [bgl0, null, bgl2],
});
อนุญาตให้วิวพอร์ตขยายเกินขอบเขตเป้าหมายการแสดงผล
เราผ่อนปรนข้อกำหนดในการตรวจสอบวิวพอร์ตเพื่อให้วิวพอร์ตอยู่นอกขอบเขตเป้าหมายการแสดงผลได้ ซึ่งมีประโยชน์อย่างยิ่งสำหรับการวาดองค์ประกอบ 2 มิติ เช่น UI ที่อาจขยายออกไปนอกวิวพอร์ตปัจจุบัน ดูปัญหา 390162929
const passEncoder = myCommandEncoder.beginRenderPass({
colorAttachments: [
{
view: myColorTexture.createView(),
loadOp: "clear",
storeOp: "store",
},
],
});
// Set a viewport that extends past the render target's bounds by 8 pixels
// in all directions.
passEncoder.setViewport(
/*x=*/ -8,
/*y=*/ -8,
/*width=*/ myColorTexture.width + 16,
/*height=*/ myColorTexture.height + 16,
/*minDepth=*/ 0,
/*maxDepth=*/ 1,
);
// Draw geometry and complete the render pass as usual.
เข้าถึงโหมดความเข้ากันได้แบบทดลองใน Android ได้ง่ายขึ้น
ตอนนี้ Flag chrome://flags/#enable-unsafe-webgpu
เพียงอย่างเดียวจะเปิดใช้ความสามารถทั้งหมดที่จําเป็นสําหรับโหมดความเข้ากันได้ของ WebGPU เวอร์ชันทดลองบน Android ซึ่งจะช่วยให้คุณขอ GPUAdapter ในโหมดความเข้ากันได้ด้วยตัวเลือก featureLevel: "compatibility"
และเข้าถึงแบ็กเอนด์ OpenGL ES ในอุปกรณ์ที่ไม่รองรับ Vulkan ได้ ดูตัวอย่างต่อไปนี้และปัญหา dawn:389876644
// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });

นำขีดจำกัด maxInterStageShaderComponents ออก
ตามที่ได้ประกาศไปก่อนหน้านี้ เราจะนำขีดจำกัด maxInterStageShaderComponents ออกเนื่องจากปัจจัยหลายประการดังนี้
- การทำงานซ้ำกับ
maxInterStageShaderVariables
: ข้อจำกัดนี้มีประโยชน์คล้ายกันอยู่แล้ว ซึ่งก็คือการควบคุมปริมาณข้อมูลที่ส่งผ่านระหว่างระยะของโปรแกรมเปลี่ยนรูปแบบ - ความคลาดเคลื่อนเล็กน้อย: แม้ว่าวิธีคํานวณขีดจํากัด 2 รายการจะแตกต่างกันเล็กน้อย แต่ความคลาดเคลื่อนเหล่านี้ก็เล็กน้อยและจัดการได้อย่างมีประสิทธิภาพภายในขีดจํากัด
maxInterStageShaderVariables
- ลดความซับซ้อน: การนํา
maxInterStageShaderComponents
ออกจะช่วยปรับปรุงอินเทอร์เฟซ Shader และลดความซับซ้อนสําหรับนักพัฒนาแอป ผู้ใช้สามารถมุ่งเน้นที่maxInterStageShaderVariables
ที่มีชื่อเหมาะสมและครอบคลุมมากขึ้นแทนที่จะต้องจัดการขีดจํากัด 2 รายการแยกกันซึ่งมีความแตกต่างเล็กน้อย
โปรดดูความตั้งใจที่จะนำออกและปัญหา 364338810
การอัปเดต Dawn
คุณใช้เครื่องมือสุ่มตัวอย่างการกรองเพื่อสุ่มตัวอย่างพื้นผิวความลึกไม่ได้อีกต่อไป โปรดทราบว่าพื้นผิวความลึกใช้ได้กับเครื่องสุ่มตัวอย่างแบบไม่กรองหรือแบบเปรียบเทียบเท่านั้น ดูปัญหา 379788112
โครงสร้าง WGPURequiredLimits
และ WGPUSupportedLimits
ได้รวมเป็น WGPULimits
แล้ว ดูปัญหา 374263404
เราได้เปลี่ยนชื่อโครงสร้างต่อไปนี้ ดูปัญหา 42240793
WGPUImageCopyBuffer
เปลี่ยนชื่อเป็นWGPUTexelCopyBufferInfo
WGPUImageCopyTexture
เปลี่ยนชื่อเป็นWGPUTexelCopyTextureInfo
WGPUTextureDataLayout
เปลี่ยนชื่อเป็นWGPUTexelCopyBufferLayout
เพิ่มสมาชิก subgroupMinSize
และ subgroupMaxSize
ไปยังโครงสร้าง WGPUAdapterInfo
แล้ว ดู webgpu-headers PR
ตอนนี้คุณสามารถติดตามการใช้งาน Dawn API ใน Metal ได้แล้วเมื่อเรียกใช้โปรแกรมด้วยตัวแปรสภาพแวดล้อม DAWN_TRACE_FILE_BASE
ซึ่งจะบันทึกไฟล์ .gputrace ที่โหลดลงในโปรแกรมแก้ไขข้อบกพร่อง Metal ของ XCode ได้ในภายหลัง ดูเอกสารประกอบของ Debugging Dawn
ข้อมูลนี้เป็นเพียงไฮไลต์สำคัญบางส่วนเท่านั้น ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่ครอบคลุมในชุดมีอะไรใหม่ใน WebGPU
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