การรองรับ OpenGL ES เวอร์ชันทดลองบน Android
ตอนนี้คุณเข้าถึง GPUAdapter
จากแบ็กเอนด์ OpenGL ES ได้แล้วเมื่อขอโหมดความเข้ากันได้ของ WebGPU เวอร์ชันทดลองใน Chrome สำหรับ Android ซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับอุปกรณ์ Android ที่ไม่รองรับ Vulkan 1.1 ขึ้นไป ดูตัวอย่างต่อไปนี้และ issue dawn:1545
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({ compatibilityMode: true });
เนื่องจากฟีเจอร์นี้ยังอยู่ในขั้นทดลอง คุณจึงต้องทำตามขั้นตอนต่อไปนี้
- เปิดใช้แฟล็ก Chrome ต่อไปนี้ "การรองรับ WebGPU ที่ไม่ปลอดภัย" "ฟีเจอร์สำหรับนักพัฒนาซอฟต์แวร์ WebGPU" และ "เปิดใช้บรรทัดคำสั่งในอุปกรณ์ที่ไม่ได้รูท"
- เปิดใช้การแก้ไขข้อบกพร่องผ่าน USB ในอุปกรณ์ Android
- เชื่อมต่ออุปกรณ์ Android กับเวิร์กสเตชัน เรียกใช้
adb shell 'echo "_ --use-webgpu-adapter=opengles" > /data/local/tmp/chrome-command-line'
เพื่อใช้แบ็กเอนด์ OpenGL ES มากกว่า Vulkan แล้วรีสตาร์ท Chrome
แอตทริบิวต์ข้อมูล GPUAdapter
ตอนนี้คุณรับข้อมูลระบุตัวตนเกี่ยวกับอะแดปเตอร์แบบซิงค์ได้แล้วโดยใช้แอตทริบิวต์ info
ของ GPUAdapter ก่อนหน้านี้ การเรียกใช้เมธอด GPU แบบอะซิงโครนัส requestAdapterInfo()
เป็นวิธีเดียวในการรับข้อมูลอะแดปเตอร์ อย่างไรก็ตาม ระบบนำ requestAdapterInfo()
ออกจากข้อกำหนดของ WebGPU แล้ว และจะนำออกใน Chrome ภายในปีนี้ เพื่อให้นักพัฒนาซอฟต์แวร์เว็บได้มีเวลาปรับเปลี่ยนที่จำเป็น โปรดดูตัวอย่างต่อไปนี้สถานะ Chrome และปัญหา 335383516
const adapter = await navigator.gpu.requestAdapter();
const info = adapter.info;
// During the transition period, you can use the following:
// const info = adapter.info || await adapter.requestAdapterInfo();
console.log(`Vendor: ${info.vendor}`); // "arm"
console.log(`Architecture: ${info.architecture}`); // "valhall"
การปรับปรุงการทำงานร่วมกันของ WebAssembly
เราไม่จำกัดขนาดอาร์กิวเมนต์ BufferSource ต่อไปนี้ไว้ที่ 2 GB อีกต่อไปเพื่อรองรับกอง WebAssembly ที่ส่งไปยัง WebGPU โดยตรง ได้แก่ dynamicOffsetsData
ใน setBindGroup()
, แหล่งที่มา data
ใน writeBuffer()
และแหล่งที่มา data
Pin writeTexture()
ดูปัญหา 339049388
ปรับปรุงข้อผิดพลาดของโปรแกรมเปลี่ยนไฟล์คำสั่ง
ตอนนี้ข้อผิดพลาดในการตรวจสอบบางอย่างที่มาจากโปรแกรมเข้ารหัสคําสั่งจะมีข้อมูลตามบริบทที่ปรับปรุงแล้ว เช่น การพยายามเริ่มพาสการประมวลผลขณะที่พาสการแสดงผลยังคงเปิดอยู่จะทำให้เกิดข้อผิดพลาดต่อไปนี้
Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
at CheckCurrentEncoder (..\..\third_party\dawn\src\dawn\native\EncodingContext.h:106)
ข้อความนี้อธิบายสาเหตุของข้อผิดพลาด แต่ไม่ได้ระบุว่าการเรียกใช้ใดทำให้เกิดข้อผิดพลาดในการตรวจสอบ ข้อผิดพลาดต่อไปนี้แสดงข้อความที่ได้รับการปรับปรุงซึ่งมีคำสั่งที่ทริกเกอร์ข้อผิดพลาด ดูการเปลี่ยนแปลง 192245
Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
- While encoding [CommandEncoder (unlabeled)].BeginComputePass([ComputePassDescriptor]).
การอัปเดต Dawn
C API ของ webgpu.h จะไม่แสดง wgpuSurfaceGetPreferredFormat()
อีกต่อไป ซึ่งเป็น C ที่เทียบเท่ากับ wgpu::Surface::GetPreferredFormat()
ของ Dawn แต่ให้ใช้ wgpu::Surface::GetCapabilities()
เพื่อดูรายการรูปแบบที่รองรับ แล้วใช้ formats[0]
เพื่อดูรูปแบบพื้นผิวที่ต้องการสำหรับพื้นผิวนี้ ในระหว่างนี้ การเรียกใช้ wgpu::Surface::GetPreferredFormat()
จะแสดงคำเตือนการเลิกใช้งาน ดูปัญหา 290
การใช้พื้นผิวที่รองรับของพื้นผิวพร้อมใช้งานแล้วผ่าน wgpu::SurfaceCapabilities::usages
เมื่อเรียกใช้ wgpu::Surface::GetCapabilities()
โดยควรมี wgpu::TextureUsage::RenderAttachment
เสมอ โปรดดูปัญหา 301
ข้อมูลนี้เป็นเพียงไฮไลต์สำคัญบางส่วนเท่านั้น ดูรายการคอมมิตทั้งหมด
มีอะไรใหม่ใน WebGPU
รายการทุกอย่างที่ครอบคลุมในชุดมีอะไรใหม่ใน WebGPU
Chrome 131
- ตัดระยะทางใน WGSL
- GPUCanvasContext getConfiguration()
- องค์ประกอบพื้นฐานของจุดและเส้นต้องไม่มีอคติด้านความลึก
- ฟังก์ชันการสแกนแบบรวมในตัวสำหรับกลุ่มย่อย
- การรองรับการดึงข้อมูลแบบหลายดึงข้อมูลโดยอ้อมในขั้นทดลอง
- ตัวเลือกการรวบรวมโมดูล Shader คณิตศาสตร์แบบเข้มงวด
- นํา GPUAdapter requestAdapterInfo() ออก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 130
- การผสมผสานแหล่งที่มาแบบคู่
- การปรับปรุงเวลาคอมไพล์ Shader ใน Metal
- การเลิกใช้งาน requestAdapterInfo() ของ GPUAdapter
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 129
- การรองรับ HDR ด้วยโหมดการปรับโทนสีของ Canvas
- การรองรับกลุ่มย่อยที่เพิ่มขึ้น
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 128
- การทดสอบกับกลุ่มย่อย
- เลิกใช้งานการตั้งค่าความเอียงของภาพสำหรับเส้นและจุด
- ซ่อนคำเตือนข้อผิดพลาดที่ไม่ได้บันทึกไว้สำหรับ DevTools หาก preventDefault
- WGSL จะปัดเศษการสุ่มตัวอย่างก่อน แล้วทำอย่างใดอย่างหนึ่งต่อไปนี้
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 127
- การรองรับ OpenGL ES ใน Android แบบทดลอง
- แอตทริบิวต์ข้อมูล GPUAdapter
- การปรับปรุงความสามารถในการทำงานร่วมกันของ WebAssembly
- ข้อผิดพลาดเกี่ยวกับโปรแกรมเข้ารหัสคําสั่งที่ปรับปรุงแล้ว
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 126
- เพิ่มขีดจํากัด maxTextureArrayLayers
- การเพิ่มประสิทธิภาพการอัปโหลดบัฟเฟอร์สําหรับแบ็กเอนด์ Vulkan
- การปรับปรุงเวลาคอมไพล์ Shader
- บัฟเฟอร์คำสั่งที่ส่งต้องไม่ซ้ำกัน
- ข้อมูลอัปเดตเมื่อรุ่งเช้า
Chrome 125
- กลุ่มย่อย (ฟีเจอร์อยู่ระหว่างการพัฒนา)
- แสดงผลเป็นภาพตัดขวางพื้นผิว 3 มิติ
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 124
- พื้นผิวพื้นที่เก็บข้อมูลแบบอ่านอย่างเดียวและแบบอ่านและเขียน
- การสนับสนุนของ Service Worker และผู้ปฏิบัติงานที่แชร์
- แอตทริบิวต์ข้อมูลอะแดปเตอร์ใหม่
- แก้ไขข้อบกพร่อง
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 123
- การรองรับฟังก์ชันในตัวของ DP4a ใน WGSL
- พารามิเตอร์พอยน์เตอร์ที่ไม่จํากัดใน WGSL
- Syntax sugar สำหรับการนำคอมโพสิทมาอ้างอิงใน WGSL
- แยกสถานะอ่านอย่างเดียวสำหรับแสตนซิลและมิติความลึก
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 122
- ขยายการเข้าถึงด้วยโหมดความเข้ากันได้ (ฟีเจอร์ที่อยู่ระหว่างการพัฒนา)
- เพิ่มขีดจํากัด maxVertexAttributes
- ข้อมูลอัปเดตเกี่ยวกับ Dawn
Chrome 121
- รองรับ WebGPU ใน Android
- ใช้ DXC แทน FXC สำหรับการคอมไพล์ shader ใน Windows
- การค้นหาการประทับเวลาในการคำนวณและผ่านการแสดงผล
- จุดแรกเข้าเริ่มต้นสำหรับโมดูลตัวปรับเฉดสี
- รองรับ 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
- ยกเลิกการตั้งค่าบัฟเฟอร์ Vertex
- ยกเลิกการตั้งค่ากลุ่มการเชื่อมโยง
- ซ่อนข้อผิดพลาดจากการสร้างไปป์ไลน์แบบแอซิงค์เมื่ออุปกรณ์สูญหาย
- การอัปเดตการสร้างโมดูล 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