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

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

maxTextureArrayLayers সীমা বাড়ান

একটি 2D টেক্সচারের গভীরতা বা স্তর গণনার জন্য সর্বাধিক অনুমোদিত মান ডিফল্টরূপে 256। সমর্থিত হলে maxTextureArrayLayers সীমা ব্যবহার করে 2048 পর্যন্ত অনুরোধ করা সম্ভব। নিম্নলিখিত উদাহরণ এবং ইস্যু 42241514 দেখুন।

const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxTextureArrayLayers < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max texture array layers attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxTextureArrayLayers: 2048 }
});

Vulkan ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশান

ভলকান ব্যাকএন্ডের জন্য GPUQueue-এর writeBuffer() পদ্ধতিতে কল করার সময় একটি দ্রুত পথ এখন উপলব্ধ। অতিরিক্ত অনুলিপি এবং সিঙ্ক্রোনাইজেশনের প্রয়োজন বাদ দিয়ে ডেটা এখন সরাসরি গন্তব্য বাফারে লেখা হতে পারে। এই অপ্টিমাইজেশানটি জিপিইউতে ডেটা আপলোড করার জন্য প্রয়োজনীয় মেমরি ট্র্যাফিক হ্রাস করে৷

দ্রুত পথ অপ্টিমাইজেশানের জন্য বাফারের মেমরিকে হোস্ট দৃশ্যমান এবং এতে কোন মুলতুবি থাকা GPU অপারেশন ছাড়াই প্রয়োজন। সংখ্যা 42242084 দেখুন।

Shader সংকলন সময় উন্নতি

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

রেন্ডার পাইপলাইন তৈরিতে Tint কম্পাইলার দিয়ে WGSL কে SPIR-V, তারপর ISA-তে Driver কম্পাইলারের সাথে রূপান্তর করা জড়িত।
ChromeOS-এ পাইপলাইন তৈরি করুন।

এই উন্নতিগুলি, ইতিমধ্যেই অ্যান্ড্রয়েডে অ্যাক্সেসযোগ্য, ক্রমাগতভাবে ChromeOS ডিভাইসগুলিতে প্রসারিত হচ্ছে যা Vulkan ব্যাকএন্ড সহ WebGPU সমর্থন করে৷ সংখ্যা 42250751 দেখুন।

জমা দেওয়া কমান্ড বাফার অনন্য হতে হবে

submit() পদ্ধতি সহ GPUQueue-এ জমা দেওয়া প্রতিটি GPUCommandBuffer অবশ্যই অনন্য হতে হবে, অন্যথায় একটি বৈধতা ত্রুটি তৈরি হবে। এটি একটি স্পেসিফিকেশন বাগ ছিল। সংখ্যা 42241492 দেখুন।

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

const commandEncoder = device.createCommandEncoder();
const commandBuffer = commandEncoder.finish();

device.queue.submit([commandBuffer, commandBuffer]);
// ⚠️ Validation fails because command buffers are not unique.

ভোরের আপডেট

C++ র‍্যাপার webgpu_cpp.h এখন শুধুমাত্র শিরোনাম, এটির ব্যবহারকে সহজ করে এবং বিকল্প C++ র‍্যাপারের সাথে সহজে ইন্টিগ্রেশন সক্ষম করে। সংখ্যা 40195122 দেখুন।

webgpu.h C API আর Swapchain অবজেক্টের ধারণা প্রকাশ করে না। এই পরিবর্তনটি জাভাস্ক্রিপ্ট API এর সাথে ঘনিষ্ঠভাবে সারিবদ্ধ করার জন্য। অভ্যন্তরীণ কনফিগারেশন এখন নতুন wgpu::Surface অবজেক্টের Configure() পদ্ধতির মাধ্যমে সম্পন্ন করা হয়েছে, যা ভবিষ্যতের পরিবর্তন সাপেক্ষে। WebGPU ডকুমেন্টেশন সহ একটি অ্যাপ তৈরি করুন- এ একটি উদাহরণ দেখুন। সংখ্যা 42241264 দেখুন।

কমিটের সম্পূর্ণ তালিকা দেখুন।

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

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

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113