WebGPU-তে নতুন কী আছে (Chrome 127)

ফ্রাঁসোয়া বোফোর্ট
François Beaufort

অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন

এখন আপনি অ্যান্ড্রয়েডের জন্য ক্রোমে পরীক্ষামূলক ওয়েবজিপিইউ কম্প্যাটিবিলিটি মোড চালু করার সময় ওপেনজিএল ইএস ব্যাকএন্ড থেকে একটি GPUAdapter অ্যাক্সেস করতে পারবেন। এটি বিশেষ করে সেইসব অ্যান্ড্রয়েড ডিভাইসের জন্য উপযোগী, যেগুলিতে ভলকান ১.১ বা তার চেয়ে উন্নত সংস্করণের সাপোর্ট নেই। নিম্নলিখিত উদাহরণ এবং ইস্যু dawn:1545 দেখুন।

// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({ compatibilityMode: true });
WebGPU রিপোর্ট পেজটি অ্যান্ড্রয়েড ডিভাইসের OpenGL ES ব্যাকএন্ড থেকে GPUAdapter-এর তথ্য দেখায়।
webgpureport.org- এ OpenGL ES অ্যাডাপ্টারের তথ্য

যেহেতু এই ফিচারটি এখনও পরীক্ষামূলক পর্যায়ে রয়েছে, তাই আপনাকে নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:

  1. নিম্নলিখিত Chrome ফ্ল্যাগগুলি সক্রিয় করুন: "Unsafe WebGPU Support", "WebGPU Developer Features", এবং "Enable command line on non-rooted devices"।
  2. আপনার অ্যান্ড্রয়েড ডিভাইসে ইউএসবি ডিবাগিং চালু করুন।
  3. আপনার অ্যান্ড্রয়েড ডিভাইসটি আপনার ওয়ার্কস্টেশনের সাথে সংযুক্ত করুন, Vulkan-এর পরিবর্তে OpenGL ES ব্যাকএন্ডকে অগ্রাধিকার দিতে adb shell 'echo "_ --use-webgpu-adapter=opengles" > /data/local/tmp/chrome-command-line' চালান এবং Chrome পুনরায় চালু করুন।

GPUAdapter তথ্য অ্যাট্রিবিউট

GPUAdapter info অ্যাট্রিবিউটের মাধ্যমে এখন একটি অ্যাডাপ্টারের শনাক্তকারী তথ্য সিনক্রোনাস পদ্ধতিতে পাওয়া যায়। পূর্বে, অ্যাডাপ্টারের তথ্য পাওয়ার একমাত্র উপায় ছিল অ্যাসিঙ্ক্রোনাস GPUAdapter requestAdapterInfo() মেথড কল করা। তবে, webGPU স্পেক থেকে requestAdapterInfo() সরিয়ে ফেলা হয়েছে এবং ওয়েব ডেভেলপারদের প্রয়োজনীয় পরিবর্তনের জন্য যথেষ্ট সময় দিতে এই বছরের শেষের দিকে ক্রোম থেকেও এটি সরিয়ে দেওয়া হবে। নিম্নলিখিত উদাহরণ, Chrome Status এবং ইস্যু 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 হিপ সরাসরি WebGPU-তে পাঠানোর সুবিধার জন্য, নিম্নলিখিত BufferSource আর্গুমেন্টগুলির আকার আর 2 GB-তে সীমাবদ্ধ থাকছে না: setBindGroup() -এর dynamicOffsetsData , writeBuffer() এর source data , এবং writeTexture() এর source data Pin। ইস্যু 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)

এটি ত্রুটির কারণ বর্ণনা করে বটে, তবে কোন কলটির কারণে আসলে ভ্যালিডেশন ত্রুটিটি ঘটেছে তা এটি নির্দেশ করে না। নিম্নলিখিত ত্রুটিটিতে উন্নত মেসেজিং দেখানো হয়েছে, যেখানে ত্রুটি সৃষ্টিকারী কমান্ডটিও অন্তর্ভুক্ত রয়েছে। পরিবর্তন ১৯২২৪৫ দেখুন।

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() -এর C সমতুল্য। এর পরিবর্তে, সমর্থিত ফরম্যাটের তালিকা পেতে wgpu::Surface::GetCapabilities() ব্যবহার করুন, তারপর এই সারফেসের জন্য পছন্দের টেক্সচার ফরম্যাট পেতে formats[0] ব্যবহার করুন। ইতিমধ্যে, wgpu::Surface::GetPreferredFormat() কল করলে একটি ডেপ্রিকেশন সতর্কতা প্রদর্শিত হয়। ইস্যু 290 দেখুন।

wgpu::Surface::GetCapabilities() কল করার সময়, একটি সারফেসের সমর্থিত টেক্সচার ব্যবহারগুলো এখন wgpu::SurfaceCapabilities::usages এর মাধ্যমে পাওয়া যায়। এগুলোতে সর্বদা wgpu::TextureUsage::RenderAttachment অন্তর্ভুক্ত থাকবে বলে আশা করা হচ্ছে। ইস্যু ৩০১ দেখুন।

এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।

WebGPU-তে নতুন কী আছে

'What's New in WebGPU' সিরিজে যা যা আলোচনা করা হয়েছে, তার একটি তালিকা।

ক্রোম ১৪৭-১৪৮

ক্রোম ১৪৬

ক্রোম ১৪৫

ক্রোম ১৪৪

ক্রোম ১৪৩

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩