WebGPU (Chrome 136) এ নতুন কি আছে

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

প্রকাশিত: ২৩ এপ্রিল, ২০২৫

GPUAdapterInfo হল FallbackAdapter বৈশিষ্ট্য

GPUAdapterInfo isFallbackAdapter বুলিয়ান অ্যাট্রিবিউটটি নির্দেশ করে যে GPUAdapter-এর কর্মক্ষমতা সংক্রান্ত উল্লেখযোগ্য সীমাবদ্ধতা রয়েছে কিনা, যা বৃহত্তর সামঞ্জস্যতা, আরও পূর্বাভাসযোগ্য আচরণ, অথবা উন্নত গোপনীয়তার বিনিময়ে। এই সংযোজনটি প্রয়োজনীয় ছিল কারণ ব্যবহারকারী-প্রদত্ত GPUDevice অবজেক্ট গ্রহণকারী লাইব্রেরিগুলি GPUDevice-এর adapterInfo অ্যাট্রিবিউটের মাধ্যমে এই তথ্য অ্যাক্সেস করতে পারেনি। নিম্নলিখিত উদাহরণটি দেখুন এবং 403172841 ইস্যু করুন

const adapter = await navigator.gpu.requestAdapter();

if (adapter?.info.isFallbackAdapter) {
  // The returned adapter is a software-backed fallback adapter, which
  // may have significantly lower performance and fewer features.
}

যেহেতু Chrome এখনও ফলব্যাক অ্যাডাপ্টারের জন্য সমর্থন সরবরাহ করেনি, তাই isFallbackAdapter বর্তমানে ব্যবহারকারীদের ডিভাইসে সর্বদা মিথ্যা। আমরা তদন্ত করছি যে GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি অবচিত এবং সরানো যেতে পারে কিনা। প্রেরণের উদ্দেশ্য দেখুন।

D3D12-তে শেডার সংকলন সময়ের উন্নতি

Chrome টিম WebGPU শেডার ল্যাঙ্গুয়েজ কম্পাইলার Tint-কে উন্নত করে চলেছে, D3D12 ব্যাকএন্ডের সাথে WebGPU সমর্থনকারী ডিভাইসগুলির জন্য একটি ইন্টারমিডিয়েট রিপ্রেজেন্টেশন (IR) যোগ করে। Tint-এর অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (AST) এবং HLSL ব্যাকএন্ড রাইটারের মধ্যে অবস্থিত এই IR কম্পাইলারটিকে আরও দক্ষ এবং রক্ষণাবেক্ষণযোগ্য করে তুলবে, যা শেষ পর্যন্ত ডেভেলপার এবং ব্যবহারকারী উভয়কেই উপকৃত করবে। প্রাথমিক পরীক্ষাগুলি দেখায় যে Tint-এর নতুন সংস্করণটি Unity-এর WGSL শেডারগুলিকে HLSL-এ অনুবাদ করার সময় 10 গুণ বেশি দ্রুত।

একটি ফ্লোচার্ট WGSL শেডার কোডকে নিম্ন-স্তরের GPU নির্দেশাবলীতে রূপান্তর করার প্রক্রিয়া দেখায়।
উইন্ডোজে রেন্ডার পাইপলাইন তৈরি।

এই উন্নতিগুলি—যা ইতিমধ্যেই Android, ChromeOS এবং macOS-এ অ্যাক্সেসযোগ্য—ক্রমাগতভাবে D3D12 ব্যাকএন্ড সহ WebGPU সমর্থনকারী Windows ডিভাইসগুলিতে সম্প্রসারিত হচ্ছে। সংখ্যা 42251045 দেখুন।

ক্যানভাস ছবি সংরক্ষণ এবং কপি করুন

Chrome ব্যবহারকারীরা এখন WebGPU ক্যানভাসে ডান-ক্লিক করে কনটেক্সট মেনু অপশন "Save Image As..." অথবা "Copy Image " অ্যাক্সেস করতে পারবেন। সংখ্যা 40902474 দেখুন।

দ্য
ব্যবহারকারী "ছবিটি এইভাবে সংরক্ষণ করুন..." প্রসঙ্গ মেনু নির্বাচন করেছেন।

সামঞ্জস্যতা মোড সীমাবদ্ধতা উত্তোলন করুন

GPUDevice-এ উপলব্ধ থাকাকালীন পরীক্ষামূলক "core-features-and-limits" বৈশিষ্ট্যটি chrome://flags/#enable-unsafe-webgpu ফ্ল্যাগ সক্রিয় থাকলে সমস্ত সামঞ্জস্য মোড সীমাবদ্ধতা (বৈশিষ্ট্য এবং সীমা) তুলে দেয়। সমস্যা 395855517 দেখুন।

featureLevel: "compatibility" বিকল্পটি ব্যবহার করে একটি GPUAdapter অনুরোধ করলে ব্রাউজারটি পরীক্ষামূলক WebGPU সামঞ্জস্যতা মোড নির্বাচন করতে ইঙ্গিত দেয়। সফল হলে, ফলাফল প্রাপ্ত অ্যাডাপ্টারটি "compatibility-defaulting" হবে। অন্যথায়, এটি "core-defaulting" হবে, যা featureLevel: "core" বিকল্পটি ব্যবহার করার মতোই। তাছাড়া, requiredFeatures এবং requiredLimits ছাড়া requestDevice() কল করলে GPUAdapter এর ডিফল্ট ক্ষমতা সহ একটি GPUDevice অনুরোধ করা হয়।

কোর-ডিফল্টিং অ্যাডাপ্টারগুলি সর্বদা "core-features-and-limits" বৈশিষ্ট্যটি সমর্থন করে এবং এটি তাদের থেকে তৈরি GPUDevices-এ স্বয়ংক্রিয়ভাবে সক্রিয় হয়। সামঞ্জস্য-ডিফল্টিং অ্যাডাপ্টারের জন্য, "core-features-and-limits" বৈশিষ্ট্যটি সমর্থিত হতে পারে এবং তাদের থেকে তৈরি GPUDevices-এ অনুরোধ করা যেতে পারে। উভয় ধরণের অ্যাডাপ্টার "float32-blendable" এর মতো বৈশিষ্ট্যগুলিও সমর্থন করতে পারে, যা কোর এবং সামঞ্জস্য উভয় মোডেই ঐচ্ছিক।

নিম্নলিখিত উদাহরণটি এমন একটি অ্যাপ্লিকেশনের জন্য যার জন্য "float32-blendable" প্রয়োজন এবং যদি উপলব্ধ থাকে তবে মূল বৈশিষ্ট্যগুলি ব্যবহার করে সমর্থন করে, তবে মূল বৈশিষ্ট্যগুলি উপলব্ধ না থাকলে কেবল সামঞ্জস্য বৈশিষ্ট্যগুলি ব্যবহার করে।

const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });

if (!adapter || !adapter.features.has("float32-blendable")) {
  throw new Error("32-bit float textures blending support is not available");
}

const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
  requiredFeatures.push("core-features-and-limits");
}

const device = await adapter.requestDevice({ requiredFeatures });

if (!device.features.has("core-features-and-limits")) {
  // Compatibility mode restrictions validation rules will apply.
}

"core-features-and-limits" বৈশিষ্ট্যের পরিবর্তে পরীক্ষামূলক GPUAdapter featureLevel এবং isCompatibilityMode বৈশিষ্ট্যগুলি সরানো হয়েছে। সংখ্যা 395855516 দেখুন।

ভোরের আপডেট

কলব্যাক স্ট্যাটাস enum InstanceDropped নাম পরিবর্তন করে CallbackCancelled করা হয়েছে যাতে স্পষ্ট হয় যে কলব্যাক বাতিল করা হয়েছে, কিন্তু ইভেন্টের সাথে সম্পর্কিত ব্যাকগ্রাউন্ড প্রসেসিং, যেমন পাইপলাইন সংকলন, এখনও চলমান থাকতে পারে। নতুন নামটি আরও সাধারণভাবে প্রযোজ্য, যদি পরবর্তীতে অন্য বাতিলকরণ প্রক্রিয়া যোগ করা হয়। সংখ্যা 520 দেখুন।

wgpu::PopErrorScopeStatus::EmptyStack enum যা নির্দেশ করে যে ত্রুটি স্কোপ স্ট্যাক পপ করা যায়নি, তার নাম পরিবর্তন করে wgpu::PopErrorScopeStatus::Error হয়েছে (যা আরও সাধারণভাবে প্রযোজ্য)। কলব্যাকে এখন ডিবাগিংয়ে সহায়তা করার জন্য একটি সংশ্লিষ্ট ত্রুটি ব্যাখ্যা বার্তাও অন্তর্ভুক্ত রয়েছে। সমস্যা 369 দেখুন।

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

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

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

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩