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

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

আনসেট ভার্টেক্স বাফার

GPURenderPassEncoder বা GPURenderBundleEncoder এর setVertexBuffer() ফাংশনে GPUBuffer এর পরিবর্তে null পাস করলে, একটি নির্দিষ্ট স্লটে পূর্বে সেট করা ভার্টেক্স বাফারকে আনসেট করা যায়। ইস্যু dawn:1675 দেখুন।

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

আনসেট বাইন্ড গ্রুপ

GPURenderPassEncoder বা GPURenderBundleEncoder এর setBindGroup() ফাংশনে GPUBindGroup এর পরিবর্তে null পাস করলে, একটি নির্দিষ্ট স্লটে পূর্বে সেট করা বাইন্ড গ্রুপকে আনসেট করা যায়। ইস্যু dawn:1675 দেখুন।

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলো নীরব করুন

GPUDevice এর createComputePipelineAsync() এবং createRenderPipelineAsync() মেথডগুলো একটি প্রমিজ রিটার্ন করে, যা পাইপলাইন তৈরি সম্পন্ন হলে রিজলভ হয়। এখন থেকে, GPUDevice lost গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলো চাপা দেওয়া হবে, যাতে হারিয়ে যাওয়া ডিভাইসগুলো যথাসম্ভব সচল বলে মনে হয়। ডন ইস্যু:1874 দেখুন।

SPIR-V শেডার মডিউল তৈরির আপডেট

এখন createShaderModule() ব্যবহার করে একটি SPIR-V শেডার মডিউল তৈরি করলে একটি TypeError দেখা দেয়, যদি না আপনি Chrome-কে "Unsafe WebGPU Support" ফ্ল্যাগ দিয়ে চালান, কারণ SPIR-V, WebGPU স্পেসিফিকেশনের অংশ নয়। এই পরিবর্তনের আগে, SPIR-V ব্যবহার করলে এর পরিবর্তে একটি GPUInternalError তৈরি হতো। পরিবর্তনটি দেখুন chromium:4711911

ডেভেলপারদের অভিজ্ঞতা উন্নত করা

ভার্টেক্স শেডারে বাইন্ড গ্রুপ লেআউট বাইন্ডিং-এর জন্য ভ্যালিডেশন এরর মেসেজটি রিড-রাইট স্টোরেজ বাফার এবং রাইট-অনলি স্টোরেজ টেক্সচার বাইন্ডিং-এর ক্ষেত্রে উন্নত করা হয়েছে। ইস্যু dawn:1883 দেখুন।

স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ ক্যাশিং পাইপলাইন

createRenderPipeline({ layout: "auto" }) দিয়ে তৈরি পাইপলাইনগুলো এখন ক্রোমের ক্যাশিং মেকানিজম ব্যবহার করে। এর মানে হলো, এই পাইপলাইনগুলো আরও দক্ষতার সাথে তৈরি হবে এবং কম মেমরি ব্যবহার করবে। `dawn:1933` ইস্যুটি দেখুন।

ভোরের আপডেট

অ্যাডাপ্টার পাওয়ার সময় অ্যাপ্লিকেশনগুলোর জন্য একটি নির্দিষ্ট ব্যাকএন্ডে অনুরোধ করা সহজ করতে, wgpu::RequestAdapterOptionsBackendType এখন wgpu::RequestAdapterOptions এর একটি অংশ। নিম্নলিখিত উদাহরণ এবং dawn:1875 ইস্যুটি দেখুন।

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

Node.js-এর জন্য বেশ কিছু অতিরিক্ত মেথড প্রয়োগ করা হয়েছে। dawn:142465 পরিবর্তনটি দেখুন।

webgpu.h C API-টি বুলিয়ান ভ্যালুর জন্য এর টাইপ stdbool থেকে WGPUBool এ পরিবর্তন করেছে, যা একটি uint32_t । এই পরিবর্তনটি করা হয়েছে যাতে C এবং C++-এ API-টির একটি সমতুল্য ABI থাকে।

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

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

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

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

ক্রোম ১৪৬

ক্রোম ১৪৫

ক্রোম ১৪৪

ক্রোম ১৪৩

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩