WebCodecs इंटिग्रेशन
WebGPU, HTMLVideoElement
से importExternalTexture()
के ज़रिए ओपेक "बाहरी टेक्सचर" ऑब्जेक्ट बनाने के लिए, एपीआई दिखाता है. इन ऑब्जेक्ट का इस्तेमाल करके, वीडियो फ़्रेम को बेहतर तरीके से सैंपल के तौर पर लिया जा सकता है. इसके लिए, सोर्स YUV कलर मॉडल के डेटा से, सिर्फ़ 0-कॉपी का इस्तेमाल किया जा सकता है.
हालांकि, शुरुआती WebGPU स्पेसिफ़िकेशन में, WebCodecs VideoFrame
ऑब्जेक्ट से GPUExternalTexture
ऑब्जेक्ट बनाने की अनुमति नहीं दी गई है. यह क्षमता, वीडियो प्रोसेस करने वाले बेहतर ऐप्लिकेशन के लिए ज़रूरी है. ये ऐसे ऐप्लिकेशन हैं जो पहले से ही WebCodecs का इस्तेमाल कर रहे हैं और वीडियो प्रोसेसिंग पाइपलाइन में WebGPU को इंटिग्रेट करना चाहते हैं. WebCodecs इंटिग्रेशन के ज़रिए, GPUExternalTexture
और copyExternalImageToTexture()
कॉल के लिए, VideoFrame
को सोर्स के तौर पर इस्तेमाल किया जा सकता है. नीचे दिया गया उदाहरण और chromestatus एंट्री देखें.
// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);
// Create texture from VideoFrame.
const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.
WebCodecs के साथ वीडियो अपलोड करना एक्सपेरिमेंटल सैंपल देखें.
जीपीयू अडैप्टर के लिए अनुरोध करने से जुड़ा खोया हुआ डिवाइस
अगर GPUAdapter
पर requestDevice()
तरीका काम नहीं कर रहा है, क्योंकि इसका इस्तेमाल GPUDevice
बनाने के लिए पहले ही किया जा चुका है, तो अब यह null
के साथ अस्वीकार करने वाले प्रॉमिस को वापस करने के बजाय, 'खो गया' के तौर पर तुरंत GPUDevice
से पूरा हो जाता है. Chromium से जुड़ी समस्या:1234617 देखें.
const adapter = await navigator.gpu.requestAdapter();
const device1 = await adapter.requestDevice();
// New! The promise is not rejected anymore with null.
const device2 = await adapter.requestDevice();
// And the device is immediately marked as lost.
const info = await device2.lost;
अगरImportExternalTexture() को कॉल किया जाता है, तो वीडियो चलाने में कोई दिक्कत नहीं आती
जब importExternalTexture()
को HTMLVideoElement
के साथ कॉल किया जाता है, तो व्यूपोर्ट में वीडियो न दिखने पर, उससे जुड़े वीडियो को रोका नहीं जाता. Chromium से जुड़ी समस्या:1425252 देखें.
खास जानकारी का पालन
GPUPipelineError()
कंस्ट्रक्टर में message
आर्ग्युमेंट ज़रूरी नहीं है. Chromium बदलें:4613967 देखें.
अगर WGSL स्रोत code
में \0
है, तो createShaderModule()
को कॉल करते समय एक गड़बड़ी ट्रिगर होती है. जारी करने का समय:1345 देखें.
createSampler()
के साथ किसी टेक्सचर का सैंपल बनाते समय, ज़्यादा से ज़्यादा जानकारी (lodMaxClamp
) का डिफ़ॉल्ट लेवल 32 होता है. Chromium बदलें:4608063 देखें.
डेवलपर के अनुभव को बेहतर बनाना
DevTools JavaScript कंसोल में एक मैसेज दिखाया गया है. इसमें, डेवलपर को याद दिलाया गया है कि जब वे किसी ऐसे प्लैटफ़ॉर्म पर WebGPU का इस्तेमाल कर रहे हैं जो काम नहीं करता. Chromium बदलें:4589369 देखें.
बफ़र की पुष्टि करने से जुड़ी गड़बड़ी के मैसेज, DevTools JavaScript कंसोल में तुरंत दिखाए जाते हैं. ऐसा तब होता है, जब getMappedRange()
काम नहीं कर पाता और इसके लिए, डेवलपर को सूची में निर्देश भेजने की ज़रूरत नहीं होती. Chromium बदलें:4597950 देखें.
Dawn के अपडेट
disallow_unsafe_apis
डीबग टॉगल का नाम बदलकर allow_unsafe_apis
कर दिया गया है. साथ ही, इसे डिफ़ॉल्ट तौर पर 'बंद है' पर सेट किया गया है. यह टॉगल ऐसे एपीआई एंट्री पॉइंट या पैरामीटर कॉम्बिनेशन पर पुष्टि करने से जुड़ी गड़बड़ियों को छिपा देता है जिन्हें अभी तक सुरक्षित नहीं माना गया है. यह डीबग करने के लिए काम का हो सकता है.
जारी करने का समय:1685 देखें.
wgpu::ShaderModuleWGSLDescriptor
के काम न करने वाले source
एट्रिब्यूट को code
के पक्ष में हटा दिया जाता है. बदलाव सुबह:130321 देखें.
वह wgpu::RenderBundle::SetLabel()
तरीका लागू कर दिया गया है जो मौजूद नहीं है. Change dawn:134502 देखें.
wgpu::RequestAdapterOptionsBackendType
विकल्प वाले अडैप्टर को पाने के दौरान, ऐप्लिकेशन किसी खास बैकएंड का अनुरोध कर सकते हैं. नीचे एक उदाहरण देखें और समस्या डॉन:1875.
wgpu::RequestAdapterOptionsBackendType backendTypeOptions = {};
backendTypeOptions.backendType = wgpu::BackendType::D3D12;
wgpu::RequestAdapterOptions options = {};
options.nextInChain = &backendTypeOptions;
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
स्वैपचेन टेक्सचर के लिए, ज़्यादा इस्तेमाल के साथ SwapChain::GetCurrentTexture()
का एक नया तरीका जोड़ा गया है, ताकि वापस किए गए wgpu::Texture
को कॉपी में इस्तेमाल किया जा सके. नीचे एक उदाहरण देखें और जारी करें:1551.
wgpu::SwapChain swapchain = myDevice.CreateSwapChain(mySurface, &myDesc);
swapchain.GetCurrentTexture();
swapchain.Present();
इसमें सिर्फ़ कुछ खास बातों के बारे में बताया गया है. कमियों की पूरी सूची देखें.
WebGPU में नया क्या है
WebGPU में नया क्या है सीरीज़ में शामिल सभी चीज़ों की सूची.
Chrome 125
Chrome 124
- रीड-ओनली और रीड-राइट स्टोरेज टेक्सचर
- सर्विस वर्कर और कर्मचारियों से जुड़ी सहायता
- अडैप्टर की जानकारी से जुड़े नए एट्रिब्यूट
- गड़बड़ियां ठीक करना
- Dawn के बारे में अपडेट
Chrome 123
- DP4a में पहले से मौजूद फ़ंक्शन, WGSL में काम करते हैं
- WGSL में बिना पाबंदी वाले पॉइंटर पैरामीटर
- WGSL में डिफ़रेंसिंग कंपोज़िट के लिए सिंटैक्स शुगर
- स्टेंसिल और गहराई के पहलुओं के लिए अलग-अलग रीड-ओनली मोड
- Dawn के बारे में अपडेट
Chrome 122
- कपैसिटी मोड की मदद से पहुंच बढ़ाना (यह सुविधा अभी डेवलप की जा रही है)
- maxVertexAttributes की सीमा बढ़ाएं
- Dawn के बारे में अपडेट
Chrome 121
- Android पर WebGPU की मदद करना
- Windows पर शेडर कंपाइलेशन के लिए, FXC के बजाय DXC का इस्तेमाल करना
- कंप्यूट और रेंडर पास में टाइमस्टैंप क्वेरी
- शेडर मॉड्यूल के लिए डिफ़ॉल्ट एंट्री पॉइंट
- Display-p3 को जीपीयूएक्सटर्नल टेक्सचर कलर स्पेस के तौर पर इस्तेमाल करें
- मेमोरी के हीप की जानकारी
- Dawn के बारे में अपडेट
Chrome 120
- WGSL में 16-बिट फ़्लोटिंग-पॉइंट वैल्यू के साथ काम करता है
- सीमाएं पूरी करें
- डेप्थ-स्टेंसिल के स्टेटस में बदलाव
- अडैप्टर की जानकारी से जुड़े अपडेट
- टाइमस्टैंप क्वेरी को कैलकुलेट करना
- वसंत की सफ़ाई से जुड़ी सुविधाएं
Chrome 119
- फ़िल्टर की जा सकने वाली 32-बिट फ़्लोट टेक्सचर
- unorm10-10-10-2 वर्टेक्स फ़ॉर्मैट
- debug10a2uint टेक्सचर फ़ॉर्मैट
- Dawn के बारे में अपडेट
Chrome 118
copyExternalImageToTexture()
में HTMLImageElement और ImageData से जुड़ी सहायता- रीड-राइट और रीड-ओनली स्टोरेज टेक्सचर के लिए एक्सपेरिमेंट के तौर पर काम करने की सुविधा
- Dawn के बारे में अपडेट
Chrome 117
- वर्टेक्स बफ़र को अनसेट करें
- बाइंड ग्रुप को अनसेट करें
- डिवाइस खो जाने पर, एक साथ काम नहीं करने वाली पाइपलाइन बनने से जुड़ी गड़बड़ियों की आवाज़ बंद करना
- SPIR-V शेडर मॉड्यूल बनाने के बारे में अपडेट
- डेवलपर के अनुभव को बेहतर बनाना
- अपने-आप जनरेट हुए लेआउट की मदद से पाइपलाइन को कैश मेमोरी में सेव करना
- Dawn के बारे में अपडेट
Chrome 116
- WebCodecs इंटिग्रेशन
- जीपीयू अडैप्टर
requestDevice()
से मिला खोया हुआ डिवाइस - अगर
importExternalTexture()
कॉल किया जा रहा है, तो वीडियो बिना किसी रुकावट के चलाएं - खास जानकारी का पालन
- डेवलपर के अनुभव को बेहतर बनाना
- Dawn के बारे में अपडेट
Chrome 115
- इसके साथ काम करने वाले WGSL भाषा एक्सटेंशन
- Direct3D 11 के लिए एक्सपेरिमेंटल सहायता
- एसी पावर पर डिफ़ॉल्ट रूप से डिस्क्रीट जीपीयू पाएं
- डेवलपर के अनुभव को बेहतर बनाना
- Dawn के बारे में अपडेट
Chrome 114
- JavaScript को ऑप्टिमाइज़ करना
- कॉन्फ़िगर नहीं किए गए कैनवस पर getCurrentTexture(), अमान्य राज्य गड़बड़ी देता है
- WGSL से जुड़े अपडेट
- Dawn के बारे में अपडेट