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

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

প্রকাশিত: ২৬ মার্চ, ২০২৫

নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরি করার অনুমতি দিন

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

উদাহরণস্বরূপ, আপনি এমন একটি পাইপলাইন তৈরি করতে চাইতে পারেন যা শুধুমাত্র বাইন্ড গ্রুপ লেআউট 0 এবং 2 ব্যবহার করে। আপনি বাইন্ড গ্রুপ লেআউট 1 কে ফ্র্যাগমেন্ট ডেটাতে এবং গ্রুপ লেআউট 2 কে ভার্টেক্স ডেটাতে বাইন্ড করতে পারেন, এবং তারপর ফ্র্যাগমেন্ট শেডার ছাড়াই রেন্ডার করতে পারেন। সমস্যা 377836524 দেখুন।

const bgl0 = myDevice.createBindGroupLayout({ entries: myGlobalEntries });
const bgl1 = myDevice.createBindGroupLayout({ entries: myFragmentEntries });
const bgl2 = myDevice.createBindGroupLayout({ entries: myVertexEntries });

// Create a pipeline layout that will be used to render without a fragment shader.
const myPipelineLayout = myDevice.createPipelineLayout({
  bindGroupLayouts: [bgl0, null, bgl2],
});

ভিউপোর্টগুলিকে রেন্ডার টার্গেট সীমানা অতিক্রম করতে দিন

ভিউপোর্ট যাচাইকরণের প্রয়োজনীয়তাগুলি শিথিল করা হয়েছে যাতে ভিউপোর্টগুলি রেন্ডার লক্ষ্য সীমানার বাইরে যেতে পারে। এটি বিশেষ করে UI এর মতো 2D উপাদান আঁকার জন্য কার্যকর যা বর্তমান ভিউপোর্টের বাইরে প্রসারিত হতে পারে। সংখ্যা 390162929 দেখুন।

const passEncoder = myCommandEncoder.beginRenderPass({
  colorAttachments: [
    {
      view: myColorTexture.createView(),
      loadOp: "clear",
      storeOp: "store",
    },
  ],
});

// Set a viewport that extends past the render target's bounds by 8 pixels
// in all directions.
passEncoder.setViewport(
  /*x=*/ -8,
  /*y=*/ -8,
  /*width=*/ myColorTexture.width + 16,
  /*height=*/ myColorTexture.height + 16,
  /*minDepth=*/ 0,
  /*maxDepth=*/ 1,
);

// Draw geometry and complete the render pass as usual.

অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্যতা মোডে সহজ অ্যাক্সেস

chrome://flags/#enable-unsafe-webgpu ফ্ল্যাগ এখন অ্যান্ড্রয়েডে পরীক্ষামূলক WebGPU সামঞ্জস্যতা মোডের জন্য প্রয়োজনীয় সমস্ত ক্ষমতা সক্ষম করে। এর সাহায্যে, আপনি featureLevel: "compatibility" বিকল্পের সাহায্যে সামঞ্জস্যতা মোডে একটি GPUAdapter অনুরোধ করতে পারেন এবং এমনকি Vulkan সমর্থন না থাকা ডিভাইসগুলিতে OpenGL ES ব্যাকএন্ড অ্যাক্সেস পেতে পারেন। নিম্নলিখিত উদাহরণটি দেখুন এবং dawn:389876644 ইস্যু করুন।

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
WebGPU রিপোর্ট পৃষ্ঠাটি Android ডিভাইসে সামঞ্জস্যতা মোডে একটি GPUAdapter দেখায়।
webgpureport.org- এ সামঞ্জস্যতা মোড অ্যাডাপ্টারের তথ্য।

maxInterStageShaderComponents সীমা সরান

পূর্বে ঘোষিত হিসাবে, maxInterStageShaderComponents সীমাটি বিভিন্ন কারণের কারণে সরানো হয়েছে:

  • maxInterStageShaderVariables এর সাথে রিডানডেন্সি: এই সীমাটি ইতিমধ্যেই একই উদ্দেশ্যে কাজ করে, শেডার পর্যায়ের মধ্যে পাস করা ডেটার পরিমাণ নিয়ন্ত্রণ করে।
  • ছোটখাটো অসঙ্গতি: যদিও দুটি সীমা গণনা করার পদ্ধতিতে সামান্য পার্থক্য রয়েছে, এই পার্থক্যগুলি সামান্য এবং maxInterStageShaderVariables সীমার মধ্যে কার্যকরভাবে পরিচালনা করা যেতে পারে।
  • সরলীকরণ: maxInterStageShaderComponents অপসারণ করলে শেডার ইন্টারফেস সহজতর হয় এবং ডেভেলপারদের জন্য জটিলতা হ্রাস পায়। সূক্ষ্ম পার্থক্য সহ দুটি পৃথক সীমা পরিচালনা করার পরিবর্তে, তারা আরও উপযুক্তভাবে নামকরণ করা এবং ব্যাপক maxInterStageShaderVariables উপর ফোকাস করতে পারে।

364338810 অপসারণ এবং ইস্যু করার ইচ্ছা দেখুন।

ভোরের আপডেট

ডেপথ টেক্সচারের নমুনা সংগ্রহের জন্য ফিল্টারিং স্যাম্পলার ব্যবহার করা আর সম্ভব নয়। মনে করিয়ে দিচ্ছি, ডেপথ টেক্সচার শুধুমাত্র নন-ফিল্টারিং বা তুলনামূলক স্যাম্পলারের সাথে ব্যবহার করা যেতে পারে। সংখ্যা 379788112 দেখুন।

WGPURequiredLimits এবং WGPUSupportedLimits কাঠামোগুলিকে WGPULimits এ সমতল করা হয়েছে। সংখ্যা 374263404 দেখুন।

নিম্নলিখিত কাঠামোগুলির নাম পরিবর্তন করা হয়েছে। সংখ্যা 42240793 দেখুন।

  • WGPUImageCopyBuffer এখন WGPUTexelCopyBufferInfo
  • WGPUImageCopyTexture এখন WGPUTexelCopyTextureInfo
  • WGPUTextureDataLayout এখন WGPUTexelCopyBufferLayout

WGPUAdapterInfo struct-এ subgroupMinSize এবং subgroupMaxSize সদস্যদের যোগ করা হয়েছে। webgpu-headers PR দেখুন।

DAWN_TRACE_FILE_BASE এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে প্রোগ্রামটি চালানোর সময় এখন মেটালে ডন API ব্যবহার ট্রেস করা সম্ভব, যা একটি .gputrace ফাইল সংরক্ষণ করে যা পরে XCode এর মেটাল ডিবাগারে লোড করা যেতে পারে। ডিবাগিং ডন ডকুমেন্টেশন দেখুন।

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

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

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

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩