প্রকাশিত: ৭ ফেব্রুয়ারী, ২০২৪, সর্বশেষ আপডেট: ১৭ অক্টোবর, ২০২৫
এই ডকুমেন্টে ব্যাখ্যা করা হয়েছে কেন WebGPU ক্রোম ব্রাউজারে অকার্যকর হতে পারে বা প্রত্যাশা অনুযায়ী কাজ করছে না, যেখানে সম্ভব সমস্যাগুলি সমাধানের জন্য স্পষ্ট পদক্ষেপ সহ।
navigator.gpu অনির্ধারিত
নিম্নলিখিত উদাহরণে একটি জাভাস্ক্রিপ্ট ত্রুটি দেখানো হয়েছে যা আপনি যখন navigator
gpu
উপলব্ধ না থাকে তখন পেতে পারেন:
const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')
এটি নিম্নলিখিত কারণগুলির মধ্যে একটির কারণে হতে পারে। এই নির্দিষ্ট ক্রমে সেগুলি দেখুন:
WebGPU-এর জন্য ChromeOS, macOS, Windows-এ Chrome 113 বা তার বেশি এবং Android-এ Chrome 121 বা তার বেশি সংস্করণ প্রয়োজন।
chrome://version
এ আপনার সংস্করণটি পরীক্ষা করুন এবং প্রয়োজনে আপডেট করুন।WebGPU শুধুমাত্র সুরক্ষিত প্রেক্ষাপটের জন্য অ্যাক্সেসযোগ্য। যদি আপনি আপনার কোডটি একটি অনিরাপদ প্রোটোকলের মাধ্যমে পরিবেশন করেন (উদাহরণস্বরূপ,
http:
,file:
), তাহলে হয় সুরক্ষিতhttps:
প্রোটোকল ব্যবহার করুন অথবা আপনার ওয়েব অ্যাপ তৈরির সময় নিম্নলিখিত উপায়গুলির মধ্যে একটি ব্যবহার করে এটি সমাধান করুন:http://localhost
অথবাhttp://127.0.0.1
এ আপনার কোড স্থানীয়ভাবে পরিবেশন করুন:npx http-server
অথবাpython3 -m http.server
।chrome://flags/#unsafely-treat-insecure-origin-as-secure
treated as secure" তালিকায় অরিজিনটি যোগ করুন এবং Chrome পুনরায় চালু করুন।Node.js ইনস্টল করুন এবং
npx servez --ssl
চালান যাতে আপনার ফোল্ডারটি https-এর উপর জাল সার্টিফিকেট দিয়ে পরিবেশন করা যায়। আপনি Chrome-এ এখনও একটি সতর্কতা পাবেন যা আপনি "Advanced" এবং তারপর "Proceed to..." এ ক্লিক করে বাইপাস করতে পারেন।ngrok ব্যবহার করে আপনার স্থানীয় ওয়েব সার্ভারকে ইন্টারনেটে উন্মুক্ত করুন।
GPU অ্যাডাপ্টারটি শূন্য।
requestAdapter()
কল করার সময় আপনি যে অ্যাডাপ্টারটি পান তা null হলে আপনি যে জাভাস্ক্রিপ্ট ত্রুটি পেতে পারেন তার একটি উদাহরণ নিচে দেওয়া হল:
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)
এটি নিম্নলিখিত কারণগুলির মধ্যে একটির জন্য ঘটে। এই নির্দিষ্ট ক্রমে সেগুলি দেখুন:
ব্যবহারকারী যখন
chrome://settings/system
এ "Use graphics acceleration when available" বন্ধ করে রাখেন তখন WebGPU অক্ষম থাকে। এই সেটিংটি বন্ধ আছে কিনা তা পরীক্ষা করে আবার চালু করুন।এই প্ল্যাটফর্মে এখনও WebGPU সমর্থিত নয়। আপনি
chrome://flags/#enable-unsafe-webgpu
ফ্ল্যাগ সক্ষম করে Chrome পুনরায় চালু করতে পারেন। Linux পরীক্ষামূলক সহায়তার জন্য, আপনাকেchrome://flags/#enable-vulkan
ফ্ল্যাগও সক্ষম করতে হবে। আরও জানতে Headless Chrome-এ WebGPU সাপোর্ট দেখুন।GPU হার্ডওয়্যারটি বিশেষভাবে ব্লকলিস্ট করা হয়েছে। যদি আপনি
chrome://gpu
তে "WebGPU has been disabled via blocklist or command line" দেখতে পান, তাহলে আপনিchrome://flags/#enable-unsafe-webgpu
ফ্ল্যাগটি সক্রিয় করে এবং Chrome পুনরায় চালু করে WebGPU অ্যাডাপ্টার ব্লকলিস্টটি অক্ষম করতে পারেন। আপনিchrome://flags/#ignore-gpu-blocklist
ফ্ল্যাগটি সক্রিয় করে এবং Chrome পুনরায় চালু করে বিল্ট-ইন সফ্টওয়্যার রেন্ডারিং তালিকাটি ওভাররাইড করতে পারেন।requestAdapter()
এ পাস করা বিকল্পগুলির জন্য কোনও মিলিত GPU অ্যাডাপ্টার নেই। বিভিন্ন বিকল্প দিয়েrequestAdapter()
কল করার চেষ্টা করুন ।WebGPU-এর জন্য একটি GPU (হার্ডওয়্যার অথবা সফ্টওয়্যার-অনুকরণকৃত) প্রয়োজন। আপনি
chrome://gpu
ওয়েবসাইটে গিয়ে Chrome একটি GPU সনাক্ত করে কিনা তা পরীক্ষা করতে পারেন।GPU প্রক্রিয়াটি বেশ কয়েকবার ক্র্যাশ হয়েছে। আপনি পৃষ্ঠাটি পুনরায় লোড করতে পারেন অথবা Chrome পুনরায় চালু করতে পারেন। আরও জানতে WebGPU ডিভাইস লস সেরা অনুশীলনগুলি দেখুন।
WebGPU WebGL এর চেয়ে ধীর গতির
chrome://gpu
খুলুন এবং নিশ্চিত করুন যে আপনি "WebGPU: Hardware accelerated" পড়তে পারেন। যদি আপনি "WebGPU: Software only, hardware acceleration unavailable" পড়ে থাকেন, তাহলে আপনার GPU ড্রাইভার আপডেট করার প্রয়োজন হতে পারে।WebGL ধারণাগুলিকে WebGPU তে সরাসরি অনুবাদ করলে WebGPU-এর অনন্য অপ্টিমাইজেশনের সম্পূর্ণ সুবিধা নাও পাওয়া যেতে পারে। তাদের কিছু পার্থক্য সম্পর্কে জানতে WebGL থেকে WebGPU দেখুন।
উইন্ডোজ-নির্দিষ্ট সীমাবদ্ধতা
Windows ডিভাইসে WebGPU ব্যবহার করার সময় নিম্নলিখিত সীমাবদ্ধতাগুলি সম্পর্কে সচেতন থাকুন:
Chrome একসাথে একাধিক GPU অ্যাডাপ্টার ব্যবহার সমর্থন করে না। সমস্যাটি দেখুন chromium:329211593 ।
Chrome সর্বদা একই GPU অ্যাডাপ্টার ব্যবহার করে যা অন্যান্য Chrome ওয়ার্কলোডের জন্য বরাদ্দ করা হয়, যা সাধারণত ল্যাপটপের জন্য ইন্টিগ্রেটেড গ্রাফিক্স কার্ড, পাওয়ার ব্যবহারের দিকটির কারণে (যেমন: পাওয়ার সাশ্রয়)। এর অর্থ হল
requestAdapter()
কল করার সময়powerPreference
বিকল্পটির কোনও প্রভাব পড়ে না। আপনি যদিchrome://flags/#force-high-performance-gpu
ফ্ল্যাগ সক্ষম করে এবং Chrome পুনরায় চালু করে উচ্চ কর্মক্ষমতা সম্পন্ন GPU ব্যবহার করতে বাধ্য করতে পারেন।