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

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

প্রকাশিত: 23 এপ্রিল, 2025

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 এ Shader সংকলন সময়ের উন্নতি

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

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

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

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

ক্রোম ব্যবহারকারীরা এখন একটি WebGPU ক্যানভাসে ডান-ক্লিক করতে পারেন এবং প্রসঙ্গ মেনু বিকল্পগুলি অ্যাক্সেস করতে পারেন সেভ ইমেজ অ্যাজ… বা ছবি অনুলিপি করুনসংখ্যা 40902474 দেখুন।

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

সামঞ্জস্য মোড সীমাবদ্ধতা তুলে নিন

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

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

কোর-ডিফল্টিং অ্যাডাপ্টারগুলি সর্বদা "core-features-and-limits" বৈশিষ্ট্য সমর্থন করে এবং এটি তাদের থেকে তৈরি করা GPU ডিভাইসগুলিতে স্বয়ংক্রিয়ভাবে সক্ষম হয়। সামঞ্জস্যতা-ডিফল্টিং অ্যাডাপ্টারের জন্য, "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.
}

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

ভোরের আপডেট

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

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

এটি শুধুমাত্র কিছু মূল হাইলাইট কভার করে। কমিটের সম্পূর্ণ তালিকা দেখুন।

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

ওয়েবজিপিইউ সিরিজে নতুন কী কভার করা হয়েছে তার একটি তালিকা।

ক্রোম 136

ক্রোম 135

ক্রোম 134

ক্রোম 133

ক্রোম 132

ক্রোম 131

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113