WebGPU में नया क्या है (Chrome 127)

François Beaufort
François Beaufort

Android पर OpenGL ES के लिए प्रयोग के तौर पर उपलब्ध सहायता

Android के लिए Chrome में, प्रयोग के तौर पर उपलब्ध WebGPU के साथ काम करने वाले मोड का अनुरोध करते समय, अब OpenGL ES बैकएंड से GPUAdapter को ऐक्सेस किया जा सकता है. यह सुविधा खास तौर पर, उन Android डिवाइसों के लिए काम की है जो Vulkan 1.1 या इसके बाद के वर्शन के साथ काम नहीं करते. नीचे दिया गया उदाहरण और समस्या सुबह:1545 देखें.

// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({ compatibilityMode: true });
WebGPU के रिपोर्ट पेज पर, Android डिवाइस पर OpenGL ES बैकएंड से मिली जीपीयू अडैप्टर की जानकारी दिखाई गई है.
webgpureport.org में OpenGL ES अडैप्टर की जानकारी

यह सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. इसलिए, आपको ये चरण पूरे करने होंगे:

  1. इन Chrome फ़्लैग को चालू करें: "असुरक्षित WebGPU सहायता", "WebGPU डेवलपर के लिए सुविधाएं", और "बिना रूट वाले डिवाइसों पर कमांड लाइन चालू करें".
  2. अपने Android डिवाइस पर यूएसबी डीबग करने की सुविधा चालू करें.
  3. अपने Android डिवाइस को वर्कस्टेशन से कनेक्ट करें और Vulkan पर OpenGL ES बैकएंड का इस्तेमाल करने के लिए, adb shell 'echo "_ --use-webgpu-adapter=opengles" > /data/local/tmp/chrome-command-line' चलाएं. इसके बाद, Chrome को रीस्टार्ट करें.

जीपीयू अडैप्टर की जानकारी देने वाला एट्रिब्यूट

अडैप्टर की पहचान करने से जुड़ी जानकारी, अब जीपीयू अडैप्टर info एट्रिब्यूट की मदद से सिंक्रोनस तरीके से हासिल की जा सकती है. इससे पहले, अडैप्टर की जानकारी पाने के लिए, एसिंक्रोनस जीपीयू अडैप्टर 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 इंटरऑप में सुधार

WebAssembly हीप को सीधे WebGPU में पास करने के लिए, अब इन बफ़र सोर्स का साइज़ दो जीबी तक सीमित नहीं है: setBindGroup() में dynamicOffsetsData, writeBuffer() में सोर्स data, और सोर्स data पिन 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]).

डॉन से जुड़े अपडेट

webgpu.h C API में अब wgpuSurfaceGetPreferredFormat() मौजूद नहीं है, जो Dawn के wgpu::Surface::GetPreferredFormat() के बराबर है. इसके बजाय, इस्तेमाल किए जा सकने वाले फ़ॉर्मैट की सूची पाने के लिए wgpu::Surface::GetCapabilities() का इस्तेमाल करें. इसके बाद, इस सरफ़ेस के लिए पसंदीदा टेक्सचर फ़ॉर्मैट पाने के लिए, formats[0] का इस्तेमाल करें. इस दौरान, wgpu::Surface::GetPreferredFormat() को कॉल करने पर, चेतावनी वाला मैसेज दिखता है. समस्या 290 देखें.

wgpu::Surface::GetCapabilities() को कॉल करते समय अब wgpu::SurfaceCapabilities::usages पर, किसी सरफ़ेस के साथ काम करने वाले टेक्सचर इस्तेमाल की जानकारी उपलब्ध है. उनमें wgpu::TextureUsage::RenderAttachment हमेशा शामिल होना चाहिए. समस्या 301 देखें.

इसमें सिर्फ़ कुछ अहम हाइलाइट के बारे में बताया गया है. वादों की पूरी सूची देखें.

WebGPU में नया क्या है

WebGPU में नया क्या है सीरीज़ में शामिल सभी चीज़ों की सूची.

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113