WebGPU তে নতুন কী (Chrome 142)

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

প্রকাশিত: ২২ অক্টোবর, ২০২৫

টেক্সচার ফর্ম্যাট সাপোর্ট ক্ষমতা বাড়ানো হয়েছে

নতুন "texture-formats-tier1" GPU বৈশিষ্ট্যটি ডেভেলপারদের WebGPU-এর নিম্ন ক্ষমতার জন্য পুনরায় লেখার প্রয়োজন ছাড়াই ওয়েবে বিদ্যমান কন্টেন্ট পোর্ট করতে দেয়। এটি রেন্ডার অ্যাটাচমেন্ট, ব্লেন্ডেবল, মাল্টিস্যাম্পলিং ক্ষমতা এবং "read-only" " স্টোরেজ টেক্সচার অ্যাক্সেস সহ নতুন "r16unorm" , "r16snorm" "rg16unorm" "rg16snorm" , "rgba16unorm" , এবং "rgba16snorm" " টেক্সচার ফর্ম্যাটগুলিকে সমর্থন করে। এটি রেন্ডার অ্যাটাচমেন্ট, ব্লেন্ডেবল, মাল্টিস্যাম্পলিং এবং রেজলভ ক্ষমতা সহ বিদ্যমান "r8snorm" , "rg8snorm" , "rgba8snorm" টেক্সচার ফর্ম্যাটগুলিকেও অনুমতি দেয়। "read-only" বা "write-only" "write-only" টেক্সচার অ্যাক্সেসের সাথে আরও টেক্সচার ফর্ম্যাট ব্যবহার করা যেতে পারে।

নতুন "texture-formats-tier2" GPU বৈশিষ্ট্যটি নির্দিষ্ট ফর্ম্যাটের জন্য "read-write" স্টোরেজ টেক্সচার অ্যাক্সেস সক্ষম করে, যা ওয়েবে Unreal Engine পোর্ট করার মতো প্রকল্পগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ। মনে রাখবেন যে ডিভাইস তৈরির সময় "texture-formats-tier2" সক্ষম করলে স্বয়ংক্রিয়ভাবে "texture-formats-tier1" সক্ষম হয়।

নিম্নলিখিত স্নিপেট এবং chromestatus এন্ট্রি দেখুন।

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

const requiredFeatures = [];
if (adapter.features.has("texture-format-tier1")) {
  requiredFeatures.push("texture-format-tier1");
}
if (adapter.features.has("texture-format-tier2")) {
  requiredFeatures.push("texture-format-tier2");
}
const device = await adapter.requestDevice({ requiredFeatures });

// Later on, when dealing with "r8unorm" texture formats for example...
if (device.features.has("texture-format-tier2")) {
  // Use "read-write" storage texture access...
} else if (device.features.has("texture-format-tier1")) {
  // Use "read-only" or "write-only" storage texture access...
} else {
  // Fallback: Use another texture format...
}

ইন্টেল কর্মীদের তাদের কাজের জন্য অনেক ধন্যবাদ!

WGSL-এ আদিম সূচক

primitive_index হল একটি অন্তর্নির্মিত WGSL মান যা একটি ফ্র্যাগমেন্ট শেডার দ্বারা প্রক্রিয়াকৃত বর্তমান primitive (উদাহরণস্বরূপ, একটি বিন্দু, রেখা, বা ত্রিভুজ) কে অনন্যভাবে সনাক্ত করে। এটি 0 থেকে শুরু হয়, প্রতিটি primitive প্রক্রিয়াকরণের পরে 1 দ্বারা বৃদ্ধি পায় এবং প্রতিটি অঙ্কিত উদাহরণের মধ্যে 0 এ রিসেট হয়।

যখন "primitive-index" বৈশিষ্ট্যটি GPUAdapter-এ উপলব্ধ থাকে, তখন WGSL-এ primitive index সমর্থন পেতে এই বৈশিষ্ট্য সহ একটি GPUDevice অনুরোধ করুন এবং enable primitive_index; সহ আপনার WGSL কোডে এই এক্সটেনশনটি স্পষ্টভাবে সক্ষম করুন। একবার সক্ষম হয়ে গেলে, প্রতি-primitive ডেটা অ্যাক্সেস করতে বা উদাহরণস্বরূপ রেন্ডার করা প্রতিটি স্বতন্ত্র জ্যামিতিক আকৃতির জন্য পরিবর্তিত লজিক সম্পাদন করতে আপনার ফ্র্যাগমেন্ট শেডারে primitive_index বিল্ট-ইন পূর্ণসংখ্যা মান ব্যবহার করুন।

নিচের কোড স্নিপেটে একটি ফ্র্যাগমেন্ট শেডার দেখানো হয়েছে যা দ্বিতীয় প্রিমিটিভকে লাল রঙে এবং অন্যান্য সমস্ত প্রিমিটিভকে নীল রঙে রেন্ডার করে।

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("primitive-index")) {
  throw new Error("Primitive index support is not available");
}
// Explicitly request primitive index support.
const device = await adapter.requestDevice({
  requiredFeatures: ["primitive-index"],
});

const fragmentShaderModule = device.createShaderModule({ code: `
  enable primitive_index;

  @fragment
  fn main(@builtin(primitive_index) i : u32) -> @location(0) vec4f {
    if (i == 1) {
      return vec4f(1, 0, 0, 1);
    }
    return vec4f(0, 1, 0, 1);
  }`,
});
// Send the appropriate commands to the GPU...

আরও জানতে Primitive Picking নমুনাটি দেখুন এবং chromestatus এন্ট্রিটি দেখুন।

ত্রিমাত্রিক চা-পাতার মডেলের ত্রিভুজগুলি তাদের আদিম সূচক মানের উপর ভিত্তি করে রঙিন করা হয়েছে।
"প্রাথমিক সূচক" মোডে আদিম পিকিং নমুনা।

ভোরের আপডেট

DAWN_BUILD_MONOLITHIC_LIBRARY CMake ভেরিয়েবলটি যে ধরণের মোনোলিথিক লাইব্রেরি তৈরি করতে ব্যবহৃত হয়, তার ডিফল্ট মান OFF থেকে STATIC এ পরিবর্তন করা হয়েছে, যার ফলে ডিফল্টরূপে libwebgpu* ফাইলগুলি তৈরি হবে।

ডন এখন wgpu::PresentMode::Undefined ডিফল্টিং সঠিকভাবে পরিচালনা করে যখন একটি wgpu::Surface কনফিগার করা হয়। সংখ্যা 441410668 দেখুন।

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

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

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

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩