ส่วนขยายภาษา WGSL ที่รองรับ
สมาชิก wgslLanguageFeatures
ของออบเจ็กต์ GPU
จะแสดงชื่อของส่วนขยายภาษา WGSL ที่รองรับ ระบบจะเปิดใช้ส่วนขยายภาษา WGSL ที่รองรับให้โดยอัตโนมัติ คุณจึงไม่ต้องขอส่วนขยายดังกล่าวอย่างชัดเจน ขณะนี้รายการนี้ว่างเปล่า แต่คาดว่าจะมีรายการอีกมากในอนาคต (เช่น do-while loops
) โปรดดูปัญหารุ่งเช้า:1777
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
การสนับสนุนแบบทดลองสำหรับ Direct3D 11
ทีม Chromium กำลังพยายามเพิ่มการรองรับ WebGPU สำหรับ Direct3D 11 ตอนนี้คุณทดสอบในเครื่องได้โดยการเรียกใช้ Chrome บน Windows ด้วยแฟล็กบรรทัดคำสั่ง --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
ดูปัญหารุ่งเช้า:1705
รับ GPU แบบแยกกันโดยค่าเริ่มต้นเมื่อใช้ไฟ AC
ในอุปกรณ์ macOS แบบ Dual GPU หากมีการเรียกใช้ requestAdapter()
โดยไม่มี powerPreference
ระบบจะแสดงผล GPU แบบแยกต่างหากเมื่อผู้ใช้กำลังเสียบปลั๊ก AC มิเช่นนั้น ระบบจะแสดงผล GPU ที่ผสานรวม ดูการเปลี่ยนแปลง 4499307
การปรับปรุงประสบการณ์การใช้งานของนักพัฒนาซอฟต์แวร์
คำเตือนใหม่สำหรับเครื่องมือสำหรับนักพัฒนาเว็บ
หากมีการใช้คีย์ depth
ใน GPUExtend3DDict
คำเตือนจะแสดงในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บ เนื่องจากคีย์ที่ถูกต้องคือ depthOrArrayLayers
ดูปัญหา chromium:1440900
นอกจากนี้ ระบบจะแสดงคำเตือนหาก GPUBlendComponent
มีทั้งสมาชิกที่อาจไม่เหมาะสมและสมาชิกที่ตั้งค่าเริ่มต้นผสมกัน ดูรุ่งอรุณปัญหา:1785
แม้ว่าการจ่ายงานและการออกรางวัลในขนาดเป็น 0 จะเป็นข้อมูลที่ถูกต้อง แต่คำเตือนก็แนะนำให้นักพัฒนาแอปหลีกเลี่ยงเมื่อเป็นไปได้ ดูปัญหารุ่งเช้า:1786
ข้อความแสดงข้อผิดพลาดที่ดีกว่าเดิม
ข้อความแสดงข้อผิดพลาดที่ปรับปรุงแล้วจะแสดงเมื่อใช้ GPUCommandEncoder
หากมีการเรียกใช้ finish()
แล้ว ดูปัญหารุ่งเช้า:1736
เมื่อส่งบัฟเฟอร์คำสั่งที่มีออบเจ็กต์ที่ถูกทำลายแล้ว ป้ายกำกับของบัฟเฟอร์คำสั่งที่ใช้ใน submit()
จะปรากฏในข้อความแสดงข้อผิดพลาด ดูรุ่งอรุณปัญหา:1747
ขณะนี้มีการระบุส่วนที่ไม่ถูกต้องของสถานะลายฉลุความลึกไว้ในข้อความแสดงข้อผิดพลาดเมื่อตรวจสอบความถูกต้อง depthStencil
แล้ว ดูรุ่งอรุณปัญหา:1735
ตอนนี้ข้อความแสดงข้อผิดพลาดเกี่ยวกับการตรวจสอบ minBindingSize
จะรายงานกลุ่มและจํานวนการเชื่อมโยงที่ผ่านการตรวจสอบ รวมถึงบัฟเฟอร์ ดูปัญหารุ่งเช้า:1604
ข้อความแสดงข้อผิดพลาดที่แสดงผลโดยเมธอด mapAsync()
ในออบเจ็กต์ GPUBuffer
ได้รับการปรับปรุงเพื่อช่วยนักพัฒนาซอฟต์แวร์เมื่อทำการแก้ไขข้อบกพร่อง ดูตัวอย่างด้านล่างและปัญหา chromium:1431622
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
ป้ายกำกับในเครื่องมือแก้ไขข้อบกพร่องของ macOS
ปุ่มเปิด/ปิดการแก้ไขข้อบกพร่อง use_user_defined_labels_in_backend
ช่วยให้คุณส่งต่อป้ายกำกับออบเจ็กต์ไปยังแบ็กเอนด์เพื่อให้มองเห็นได้ในเครื่องมือแก้ไขข้อบกพร่องเฉพาะแพลตฟอร์ม เช่น RenderDoc, PIX หรือ Instruments จากนี้ไป คุณจะมอบประสบการณ์การแก้ไขข้อบกพร่องที่ดีขึ้นได้ใน macOS เมื่อเปิดใช้การแก้ไขข้อบกพร่อง ดูรุ่งอรุณของปัญหา:1784
บันทึก HLSL หากการรวบรวมล้มเหลว
ปุ่มเปิด/ปิดการแก้ไขข้อบกพร่อง dump_shaders
ช่วยให้คุณบันทึกตัวปรับแสงเงา WGSL และตัวปรับแสงเงาของแบ็กเอนด์ที่แปลแล้วได้ จากนี้ไป เมื่อเปิดใช้การแก้ไขข้อบกพร่อง ระบบจะถ่ายโอน HLSL หากมีการคอมไพล์ไม่สำเร็จ ดูปัญหารุ่งเช้า:1681
ข้อมูลอัปเดตเกี่ยวกับ Dawn
ยกเลิกการตั้งค่าบัฟเฟอร์จุดยอดมุม
การส่ง nullptr
แทนที่จะเป็น wgpu::Buffer
ไปยัง SetVertexBuffer()
ใน wgpu::RenderPassEncoder
หรือ wgpu::RenderBundleEncoder
จะทำให้คุณยกเลิกการตั้งค่าบัฟเฟอร์จุดยอดมุมที่กำหนดไว้ก่อนหน้านี้ในช่องที่กำหนดได้ ดูปัญหารุ่งเช้า:1675
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
ไฟล์แนบแบบชั่วคราว
คุณสามารถสร้างไฟล์แนบที่อนุญาตให้ดำเนินการผ่านการแสดงผลในหน่วยความจำไทล์ได้ เพื่อหลีกเลี่ยงการรับส่ง VRAM และอาจหลีกเลี่ยงการจัดสรร VRAM สำหรับพื้นผิวโดยการตั้งค่าการใช้งาน wgpu::TextureUsage::TransientAttachment
ฟีเจอร์นี้รองรับเฉพาะเมทัลและ Vulkan เท่านั้น ดูรุ่งเช้าของปัญหา: 1695
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
สิ่งปลูกสร้างที่ไม่มี depot_tools
ตัวเลือก DAWN_FETCH_DEPENDENCIES
CMake ใหม่ให้คุณดึงข้อมูลทรัพยากร Dependency ของ Dawn ได้โดยใช้สคริปต์ Python ที่อ่านไฟล์ DEPS แทนการติดตั้ง depot_tools
โดยโปรเจ็กต์ทั้งหมดที่ต้องอาศัยทรัพยากรดังกล่าว โปรดดูการเปลี่ยนแปลง 131750
มีอะไรใหม่ใน WebGPU
รายการของทุกอย่างที่มีการพูดถึงในซีรีส์มีอะไรใหม่ใน WebGPU
Chrome 125
Chrome 124
- พื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียวและอ่านอย่างเดียว
- การสนับสนุน Service Worker และตัวช่วยแบบแชร์
- แอตทริบิวต์ข้อมูลอะแดปเตอร์ใหม่
- แก้ไขข้อบกพร่อง
- ข้อมูลอัปเดตยามเช้า
Chrome 123
- การรองรับฟังก์ชันในตัวของ DP4a ใน WGSL
- พารามิเตอร์ตัวชี้แบบไม่จำกัดใน WGSL
- น้ำตาลไวยากรณ์สำหรับการยกเลิกการอ้างอิงคอมโพสิตใน WGSL
- สถานะแบบอ่านอย่างเดียวสำหรับมุมมองที่เป็นลายฉลุและความลึก
- ข้อมูลอัปเดตยามเช้า
Chrome 122
- ขยายการเข้าถึงด้วยโหมดความเข้ากันได้ (ฟีเจอร์อยู่ระหว่างการพัฒนา)
- เพิ่มขีดจํากัด maxVertexAttributes
- ข้อมูลอัปเดตยามเช้า
Chrome 121
- รองรับ WebGPU ใน Android
- ใช้ DXC แทน FXC สำหรับการคอมไพล์ตัวปรับแสงเงาใน Windows
- การค้นหาการประทับเวลาในการประมวลผลและแสดงผลบัตร
- จุดแรกเข้าเริ่มต้นไปยังโมดูลตัวปรับแสงเงา
- รองรับ display-p3 เป็นพื้นที่สี GPUExternalTexture
- ข้อมูลฮีพของหน่วยความจำ
- ข้อมูลอัปเดตยามเช้า
Chrome 120
- รองรับค่าจุดลอยตัว 16 บิตใน WGSL
- ก้าวข้ามขีดจำกัด
- การเปลี่ยนแปลงสถานะของฉลุลายความลึก
- การอัปเดตข้อมูลอะแดปเตอร์
- การวัดปริมาณของการค้นหาการประทับเวลา
- ฟีเจอร์ทำความสะอาดฤดูใบไม้ผลิ
Chrome 119
- พื้นผิวแบบลอยแบบ 32 บิตที่กรองได้
- รูปแบบ Verm10-10-10-2
- รูปแบบพื้นผิวของ rgb10a2uint
- ข้อมูลอัปเดตยามเช้า
Chrome 118
- การรองรับ HTMLImageElement และ ImageData ใน
copyExternalImageToTexture()
- การสนับสนุนแบบทดลองสำหรับพื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียวและอ่านอย่างเดียว
- ข้อมูลอัปเดตยามเช้า
Chrome 117
- ยกเลิกการตั้งค่าบัฟเฟอร์เวอร์เท็กซ์
- ยกเลิกการตั้งค่ากลุ่มการเชื่อมโยง
- ปิดเสียงข้อผิดพลาดจากการสร้างไปป์ไลน์แบบไม่พร้อมกันเมื่ออุปกรณ์สูญหาย
- การอัปเดตการสร้างโมดูลตัวปรับแสงเงา SPIR-V
- การปรับปรุงประสบการณ์ของนักพัฒนาซอฟต์แวร์
- การแคชไปป์ไลน์ด้วยเลย์เอาต์ที่สร้างขึ้นโดยอัตโนมัติ
- ข้อมูลอัปเดตยามเช้า
Chrome 116
- การผสานรวม WebCodecs
- อุปกรณ์ที่สูญหายได้รับคืนโดย GPUAdapter
requestDevice()
- เล่นวิดีโอได้ลื่นไหลแม้เรียกใช้
importExternalTexture()
- ความสอดคล้องของข้อกำหนด
- การปรับปรุงประสบการณ์ของนักพัฒนาซอฟต์แวร์
- ข้อมูลอัปเดตยามเช้า
Chrome 115
- ส่วนขยายภาษา WGSL ที่รองรับ
- การสนับสนุนแบบทดลองสำหรับ Direct3D 11
- รับ GPU แบบแยกกันโดยค่าเริ่มต้นเมื่อใช้ไฟ AC
- การปรับปรุงประสบการณ์ของนักพัฒนาซอฟต์แวร์
- ข้อมูลอัปเดตยามเช้า
Chrome 114
- เพิ่มประสิทธิภาพ JavaScript
- getCurrentTexture() ใน Canvas ที่ไม่ได้กำหนดค่าแสดงข้อผิดพลาด invalidStateError
- ข้อมูลอัปเดตเกี่ยวกับ WGSL
- ข้อมูลอัปเดตยามเช้า