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 के साथ वीडियो अपलोड करना प्रयोगात्मक नमूना देखें.
जीपीयू अडैप्टर requestDevice() के ज़रिए, खोया हुआ डिवाइस लौटाया गया
अगर GPUAdapter
पर requestDevice()
तरीका काम नहीं करता, क्योंकि GPUDevice
को बनाने के लिए पहले ही इसका इस्तेमाल किया जा चुका है, तो अब वह GPUDevice
के साथ 'खो गया' के तौर पर मार्क हो जाता है. इससे, null
के साथ अस्वीकार किए जाने वाले प्रॉमिस को दिखाया नहीं जाता. 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()
को कॉल करते समय गड़बड़ी हुई. समस्या dawn:1345 देखें.
createSampler()
के साथ किसी टेक्सचर का सैंपल लेने के लिए, इस्तेमाल किए जाने वाले ब्यौरे का डिफ़ॉल्ट ज़्यादा से ज़्यादा लेवल (lodMaxClamp
) 32 है. Chromium बदलना:4608063 देखें.
डेवलपर के अनुभव को बेहतर बनाना
DevTools JavaScript कंसोल में एक मैसेज दिखाया जाता है. इसमें, डेवलपर को याद दिलाया जाता है कि जब वे किसी ऐसे प्लैटफ़ॉर्म पर WebGPU का इस्तेमाल कर रहे हैं जिसके साथ यह सुविधा काम नहीं करती. Chromium बदलना:4589369 देखें.
बफ़र की पुष्टि से जुड़ी गड़बड़ी के मैसेज, DevTools JavaScript कंसोल में तुरंत दिखने लगते हैं. ऐसा तब होता है, जब getMappedRange()
काम नहीं करता. इसके बाद, डेवलपर को सूची में निर्देश भेजने की ज़रूरत नहीं पड़ती. Chromium बदलना:4597950 देखें.
डॉन से जुड़े अपडेट
disallow_unsafe_apis
डीबग टॉगल का नाम बदलकर, allow_unsafe_apis
कर दिया गया है. साथ ही, इसे डिफ़ॉल्ट रूप से 'बंद है' पर सेट कर दिया गया है. यह टॉगल, उन एपीआई एंट्री पॉइंट या पैरामीटर के कॉम्बिनेशन पर पुष्टि करने से जुड़ी गड़बड़ियों को रोकता है जिन्हें अब तक सुरक्षित नहीं माना गया है. यह डीबग करने के लिए मददगार हो सकता है.
समस्या dawn:1685 देखें.
code
के लिए wgpu::ShaderModuleWGSLDescriptor
का source
एट्रिब्यूट हटा दिया गया है. यह अब काम नहीं करता. Change dawn:130321 देखें.
छूटे हुए wgpu::RenderBundle::SetLabel()
तरीके को लागू कर दिया गया है. बदलें 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
का इस्तेमाल, कॉपी में किया जा सकता है. नीचे इसका उदाहरण देखें और समस्या dawn:1551 पर जाएं.
wgpu::SwapChain swapchain = myDevice.CreateSwapChain(mySurface, &myDesc);
swapchain.GetCurrentTexture();
swapchain.Present();
इसमें सिर्फ़ कुछ अहम हाइलाइट के बारे में बताया गया है. वादों की पूरी सूची देखें.
WebGPU में नया क्या है
WebGPU में नया क्या है सीरीज़ में शामिल सभी चीज़ों की सूची.
Chrome 128
- सबग्रुप के साथ एक्सपेरिमेंट करना
- लाइनों और पॉइंट के लिए, डेप्थ बायस की सेटिंग को बंद करना
- PauseDefault के तहत, कैप्चर नहीं की गई गड़बड़ी की चेतावनी छिपाएं
- WGSL, पहले सैंपलिंग को इंटरपोलेट करता है और दोनों में से किसी एक
- डॉन से जुड़े अपडेट
Chrome 127
- Android पर OpenGL ES के लिए प्रयोग के तौर पर उपलब्ध सहायता
- GPUAdapter की जानकारी वाला एट्रिब्यूट
- WebAssembly इंटरऑप में सुधार
- निर्देश एन्कोडर से जुड़ी बेहतर गड़बड़ियां
- डॉन से जुड़े अपडेट
Chrome 126
- maxTextureArraylayers की सीमा बढ़ाना
- Vulkan बैकएंड के लिए, बफ़र अपलोड को ऑप्टिमाइज़ करना
- समय को बेहतर बनाने के लिए शेडर इस्तेमाल करने की सुविधा
- सबमिट किए गए निर्देश के बफ़र, यूनीक होने चाहिए
- डॉन से जुड़े अपडेट
Chrome 125
Chrome 124
- रीड-ओनली और रीड-राइट स्टोरेज टेक्सचर
- सर्विस वर्कर और शेयर किए गए कर्मचारियों के लिए सहायता
- अडैप्टर की जानकारी देने वाले नए एट्रिब्यूट
- गड़बड़ियां ठीक की गईं
- डॉन से जुड़े अपडेट
Chrome 123
- WGSL में DP4a बिल्ट-इन फ़ंक्शन काम करते हैं
- WGSL में बिना पाबंदी वाले पॉइंटर पैरामीटर
- डब्ल्यूजीएसएल में कंपोज़िट को डीरेफ़रेंस करने के लिए सिंटैक्स शुगर
- स्टेंसल और डेप्थ के पहलुओं के लिए, रीड-ओनली स्टेटस अलग करना
- डॉन से जुड़े अपडेट
Chrome 122
- कंपैटबिलिटी मोड की मदद से, ज़्यादा से ज़्यादा लोगों तक पहुंचें (डेवलपमेंट में उपलब्ध सुविधा)
- maxVertexAttributes की सीमा बढ़ाना
- डॉन से जुड़े अपडेट
Chrome 121
- Android पर WebGPU के साथ काम करना
- Windows पर शेडर को कंपाइल करने के लिए, FXC के बजाय DXC का इस्तेमाल करना
- कंप्यूट और रेंडर में टाइमस्टैंप क्वेरी
- शेडर मॉड्यूल के लिए डिफ़ॉल्ट एंट्री पॉइंट
- GPExternalTexture कलर स्पेस के तौर पर Display-p3 का इस्तेमाल करना
- मेमोरी हीप की जानकारी
- डॉन से जुड़े अपडेट
Chrome 120
- WGSL में 16-बिट फ़्लोटिंग-पॉइंट वैल्यू के साथ काम करता है
- सीमाएं पार करें
- डेप्थ-स्टेंसिल की स्थिति में बदलाव
- अडैप्टर की जानकारी के अपडेट
- टाइमस्टैंप क्वेरी की गिनती करना
- वसंत साफ़ करने की सुविधाएं
Chrome 119
- फ़िल्टर किए जा सकने वाले 32-बिट फ़्लोट टेक्सचर
- unorm10-10-10-2 वर्टेक्स फ़ॉर्मैट
- आरजीबी10a2uint टेक्स्चर फ़ॉर्मैट
- डॉन से जुड़े अपडेट
Chrome 118
copyExternalImageToTexture()
में HTMLImageElement और ImageData सहायता- रीड-ओनली और रीड-ओनली स्टोरेज टेक्स्चर के लिए एक्सपेरिमेंट के तौर पर उपलब्ध सहायता
- डॉन से जुड़े अपडेट
Chrome 117
- वर्टेक्स बफ़र को अनसेट करें
- बाइंड किए गए ग्रुप को अनसेट करें
- डिवाइस खो जाने पर, एक साथ काम न करने वाली पाइपलाइन बनाने की वजह से होने वाली गड़बड़ियों की आवाज़ बंद करना
- SPIR-V शेडर मॉड्यूल बनाने से जुड़े अपडेट
- डेवलपर के अनुभव को बेहतर बनाना
- अपने-आप जनरेट होने वाले लेआउट की मदद से पाइपलाइन को कैश मेमोरी में सेव करना
- डॉन से जुड़े अपडेट
Chrome 116
- WebCodecs इंटिग्रेशन
- GPAdapter
requestDevice()
से खोया हुआ डिवाइस लौटाया गया - अगर
importExternalTexture()
चालू है, तो वीडियो बिना किसी रुकावट के चलाएं - खास जानकारी का पालन
- डेवलपर के अनुभव को बेहतर बनाना
- डॉन से जुड़े अपडेट
Chrome 115
- WGSL के साथ काम करने वाले भाषा एक्सटेंशन
- Direct3D 11 के लिए एक्सपेरिमेंट के तौर पर उपलब्ध सहायता
- एसी पावर पर, डिफ़ॉल्ट रूप से अलग-अलग जीपीयू पाएं
- डेवलपर के अनुभव को बेहतर बनाना
- डॉन से जुड़े अपडेट
Chrome 114
- JavaScript ऑप्टिमाइज़ करना
- कॉन्फ़िगर नहीं किए गए कैनवस पर getCurrentTexture() से अमान्य स्थिति गड़बड़ी मिलती है
- WGSL से जुड़े अपडेट
- डॉन से जुड़े अपडेट