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

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

প্রকাশিত: ৮ জানুয়ারী, ২০২৫

টেক্সচার ভিউ ব্যবহার

GPU টেক্সচার ভিউ বর্তমানে তাদের সোর্স GPU টেক্সচার থেকে সমস্ত ব্যবহারের পতাকা উত্তরাধিকার সূত্রে পায়। এটি সমস্যাযুক্ত হতে পারে কারণ কিছু ভিউ ফর্ম্যাট নির্দিষ্ট ব্যবহারের সাথে সামঞ্জস্যপূর্ণ নয়। এই সমস্যাটি সমাধানের জন্য, ঐচ্ছিক usage সদস্যের সাথে createView() কল করলে আপনি সোর্স টেক্সচারের ব্যবহারের পতাকার একটি উপসেট স্পষ্টভাবে নির্দিষ্ট করতে পারবেন যা নির্বাচিত ভিউ ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ।

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

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 363903526

const texture = myDevice.createTexture({
  size: [4, 4],
  format: "rgba8unorm",
  usage:
    GPUTextureUsage.RENDER_ATTACHMENT |
    GPUTextureUsage.TEXTURE_BINDING |
    GPUTextureUsage.STORAGE_BINDING,
  viewFormats: ["rgba8unorm-srgb"],
});

const view = texture.createView({
  format: 'rgba8unorm-srgb',
  usage: GPUTextureUsage.RENDER_ATTACHMENT, // Restrict allowed usage.
});

৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং

HDR রেন্ডারিংয়ের জন্য 32-বিট ফ্লোটিং-পয়েন্ট টেক্সচার অপরিহার্য, যাতে রঙের বিস্তৃত মান সংরক্ষণ করা যায় এবং আর্টিফ্যাক্টের রঙ ব্যান্ডিং প্রতিরোধ করা যায়। উদাহরণস্বরূপ, বৈজ্ঞানিক ভিজ্যুয়ালাইজেশনে।

নতুন "float32-blendable" GPU বৈশিষ্ট্যটি "r32float" , "rg32float" , এবং "rgba32float" ফর্ম্যাট সহ GPU টেক্সচারগুলিকে মিশ্রিত করে। এই বৈশিষ্ট্য সহ একটি GPU ডিভাইসের অনুরোধ করার সময় যেকোনো float32-ফরম্যাট সংযুক্তির সাথে ব্লেন্ডিং ব্যবহার করে এমন একটি রেন্ডার পাইপলাইন তৈরি করা এখন সম্ভব।

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 369649348

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("float32-blendable")) {
  throw new Error("32-bit float textures blending support is not available");
}
// Explicitly request 32-bit float textures blending support.
const device = await adapter.requestDevice({
  requiredFeatures: ["float32-blendable"],
});

// ... Creation of shader modules is omitted for readability.

// Create a render pipeline that uses blending for the rgba32float format.
device.createRenderPipeline({
  vertex: { module: myVertexShaderModule },
  fragment: {
    module: myFragmentShaderModule,
    targets: [
      {
        format: "rgba32float",
        blend: { color: {}, alpha: {} },
      },
    ],
  },
  layout: "auto",
});

// Create the GPU texture with rgba32float format and
// send the appropriate commands to the GPU...

GPUDevice adapterInfo অ্যাট্রিবিউট

ব্যবহারকারী-প্রদত্ত GPUDevice অবজেক্ট গ্রহণকারী লাইব্রেরিগুলির জন্য ভৌত GPU সম্পর্কে তথ্য অ্যাক্সেস করা গুরুত্বপূর্ণ, কারণ তাদের GPU আর্কিটেকচারের উপর ভিত্তি করে সমাধানগুলি অপ্টিমাইজ বা বাস্তবায়নের প্রয়োজন হতে পারে। যদিও GPUAdapter অবজেক্টের মাধ্যমে এই তথ্য অ্যাক্সেস করা সম্ভব, তবে কেবল GPUDevice থেকে এটি পাওয়ার কোনও সরাসরি উপায় নেই। এটি অসুবিধাজনক হতে পারে, কারণ এর জন্য ব্যবহারকারীদের GPUDevice পাশাপাশি অতিরিক্ত তথ্য সরবরাহ করতে হতে পারে।

এই সমস্যা সমাধানের জন্য, GPUAdapterInfo এখন GPUDevice adapterInfo অ্যাট্রিবিউটের মাধ্যমে প্রকাশ করা হচ্ছে। এগুলি বিদ্যমান GPUAdapter info অ্যাট্রিবিউটের অনুরূপ।

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 376600838

function optimizeForGpuDevice(device) {
  if (device.adapterInfo.vendor === "amd") {
    // Use AMD-specific optimizations.
  } else if (device.adapterInfo.architecture.includes("turing")) {
    // Optimize for NVIDIA Turing architecture.
  }
}

অবৈধ ফর্ম্যাট থ্রো জাভাস্ক্রিপ্ট ত্রুটি সহ ক্যানভাস প্রসঙ্গ কনফিগার করা হচ্ছে

পূর্বে, GPU ক্যানভাস কনটেক্সটের configure() পদ্ধতিতে একটি অবৈধ টেক্সচার ফর্ম্যাট ব্যবহার করার ফলে GPU বৈধতা ত্রুটি দেখা দিত। এটিকে JavaScript TypeError এ পরিবর্তন করা হয়েছে। এটি এমন পরিস্থিতি প্রতিরোধ করে যেখানে getCurrentTexture() GPU ক্যানভাস কনটেক্সট ভুলভাবে কনফিগার করা সত্ত্বেও একটি বৈধ GPU টেক্সচার ফেরত দেয়। আরও তথ্য 372837859 সংখ্যায় পাওয়া যাবে।

টেক্সচারের উপর স্যাম্পলার সীমাবদ্ধতা ফিল্টার করা

"sint" , "uint" , এবং " depth" ফর্ম্যাট টেক্সচার ব্যবহার করে ফিল্টারিং স্যাম্পলার ব্যবহার করা আগে অনুমোদিত ছিল। এখন এটি সঠিকভাবে ফিল্টারিং স্যাম্পলারের সাথে "sint" বা "uint" ফর্ম্যাট টেক্সচার ব্যবহার নিষিদ্ধ করে। মনে রাখবেন যে আপনি যদি ফিল্টারিং স্যাম্পলারের সাথে " depth" টেক্সচার ব্যবহার করেন তবে এটি বর্তমানে একটি সতর্কতা জারি করে কারণ ভবিষ্যতে এটি নিষিদ্ধ করা হবে। সংখ্যা 376497143 দেখুন।

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

বর্ধিত উপগোষ্ঠী পরীক্ষা-নিরীক্ষা

প্রাথমিকভাবে Chrome 131-এ শেষ হওয়ার জন্য নির্ধারিত সাবগ্রুপ পরীক্ষাটি Chrome 133-তে সম্প্রসারিত করা হয়েছে, যা 16 এপ্রিল, 2025-এ শেষ হবে। প্রথম অরিজিন ট্রায়ালটি কর্মক্ষমতার উপর দৃষ্টি নিবদ্ধ করলেও, এতে গুরুত্বপূর্ণ পোর্টেবিলিটি সুরক্ষার অভাব ছিল। এই সুরক্ষাগুলি এখন যুক্ত করা হবে, যা বিদ্যমান কোডে ত্রুটি সৃষ্টি করতে পারে।

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

Windows-এ requestAdapter() এর সাথে powerPreference বিকল্পটি ব্যবহার করা হলে DevTools-এ এখন একটি সতর্কতা দেখা যাচ্ছে। Chrome যখন দুটি ভিন্ন GPU ব্যবহার করতে এবং তাদের মধ্যে ফলাফল কম্পোজ করতে জানে তখন এই সতর্কতাটি সরিয়ে ফেলা হবে। সমস্যা 369219127 দেখুন।

খুব বড় GPU বাফার তৈরি করার সময় ত্রুটি বার্তায় GPU বাফারের আকার এখন উপস্থিত থাকে। সংখ্যা 374167798 দেখুন।

১৬-বিট নরমালাইজড টেক্সচার ফর্ম্যাটের জন্য পরীক্ষামূলক সমর্থন

"chromium-experimental-snorm16-texture-formats" এবং "chromium-experimental-unorm16-texture-formats" GPU বৈশিষ্ট্যগুলির পিছনে এখন পরীক্ষামূলকভাবে যথাক্রমে ১৬-বিট স্বাক্ষরিত নরমালাইজড এবং আনসাইনড নরমালাইজড টেক্সচার ফর্ম্যাট উপলব্ধ, যখন সেগুলি স্ট্যান্ডার্ডাইজেশনের জন্য আলোচনা করা হচ্ছে।

এই বৈশিষ্ট্যগুলি COPY_SRC , COPY_DST , TEXTURE_BINDING , RENDER_ATTACHMENT ব্যবহার, মাল্টিস্যাম্পলিং এবং সমাধান ক্ষমতা সহ 16-বিট নরমালাইজড টেক্সচার ফর্ম্যাটের জন্য সমর্থন যোগ করে। অতিরিক্ত ফর্ম্যাটগুলি হল "r16unorm" , "rg16unorm" , "rgba16unorm" , "r16snorm" , "rg16snorm" , এবং "rgba16snorm"

এই পরীক্ষামূলক বৈশিষ্ট্যগুলি স্ট্যান্ডার্ডাইজড না হওয়া পর্যন্ত, Chrome-এ উপলব্ধ করার জন্য chrome://flags/#enable-unsafe-webgpu "Unsafe WebGPU Support" ফ্ল্যাগটি সক্ষম করুন।

নিম্নলিখিত স্নিপেটটি দেখুন এবং 374790898 ইস্যু করুন

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("chromium-experimental-snorm16-texture-formats")) {
  throw new Error("16-bit signed normalized formats support is not available");
}
// Explicitly request 16-bit signed normalized formats support.
const device = await adapter.requestDevice({
  requiredFeatures: ["chromium-experimental-snorm16-texture-formats"],
});

// Create a texture with the rgba16snorm format which consists of four
// components, each of which is a 16-bit, normalized, signed integer value.
const texture = device.createTexture({
  size: [4, 4],
  format: "rgba16snorm",
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING,
});

// Send the appropriate commands to the GPU...

ভোরের আপডেট

wgpu::Adapter এবং wgpu::Device থেকে EnumerateFeatures(FeatureName * features) পদ্ধতিগুলি GetFeatures(SupportedFeatures * features) ব্যবহারের পক্ষে অবচিত। সংখ্যা 368672123 দেখুন।

webgpu.h C API সমস্ত char const * একটি WGPUStringView কাঠামোতে পরিবর্তন করেছে যা একটি ভিউকে UTF-8 এনকোডেড স্ট্রিংয়ে সংজ্ঞায়িত করে। এটি স্ট্রিংয়ের ডেটার দিকে একটি পয়েন্টারের মতো কাজ করে, একটি দৈর্ঘ্যের সাথে মিলিত হয়। এটি আপনাকে স্ট্রিংয়ের কিছু অংশ কপি না করেই কাজ করতে দেয়। সংখ্যা 42241188 দেখুন।

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

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

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

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩

,

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

প্রকাশিত: ৮ জানুয়ারী, ২০২৫

টেক্সচার ভিউ ব্যবহার

GPU টেক্সচার ভিউ বর্তমানে তাদের সোর্স GPU টেক্সচার থেকে সমস্ত ব্যবহারের পতাকা উত্তরাধিকার সূত্রে পায়। এটি সমস্যাযুক্ত হতে পারে কারণ কিছু ভিউ ফর্ম্যাট নির্দিষ্ট ব্যবহারের সাথে সামঞ্জস্যপূর্ণ নয়। এই সমস্যাটি সমাধানের জন্য, ঐচ্ছিক usage সদস্যের সাথে createView() কল করলে আপনি সোর্স টেক্সচারের ব্যবহারের পতাকার একটি উপসেট স্পষ্টভাবে নির্দিষ্ট করতে পারবেন যা নির্বাচিত ভিউ ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ।

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

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 363903526

const texture = myDevice.createTexture({
  size: [4, 4],
  format: "rgba8unorm",
  usage:
    GPUTextureUsage.RENDER_ATTACHMENT |
    GPUTextureUsage.TEXTURE_BINDING |
    GPUTextureUsage.STORAGE_BINDING,
  viewFormats: ["rgba8unorm-srgb"],
});

const view = texture.createView({
  format: 'rgba8unorm-srgb',
  usage: GPUTextureUsage.RENDER_ATTACHMENT, // Restrict allowed usage.
});

৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং

HDR রেন্ডারিংয়ের জন্য 32-বিট ফ্লোটিং-পয়েন্ট টেক্সচার অপরিহার্য, যাতে রঙের বিস্তৃত মান সংরক্ষণ করা যায় এবং আর্টিফ্যাক্টের রঙ ব্যান্ডিং প্রতিরোধ করা যায়। উদাহরণস্বরূপ, বৈজ্ঞানিক ভিজ্যুয়ালাইজেশনে।

নতুন "float32-blendable" GPU বৈশিষ্ট্যটি "r32float" , "rg32float" , এবং "rgba32float" ফর্ম্যাট সহ GPU টেক্সচারগুলিকে মিশ্রিত করে। এই বৈশিষ্ট্য সহ একটি GPU ডিভাইসের অনুরোধ করার সময় যেকোনো float32-ফরম্যাট সংযুক্তির সাথে ব্লেন্ডিং ব্যবহার করে এমন একটি রেন্ডার পাইপলাইন তৈরি করা এখন সম্ভব।

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 369649348

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("float32-blendable")) {
  throw new Error("32-bit float textures blending support is not available");
}
// Explicitly request 32-bit float textures blending support.
const device = await adapter.requestDevice({
  requiredFeatures: ["float32-blendable"],
});

// ... Creation of shader modules is omitted for readability.

// Create a render pipeline that uses blending for the rgba32float format.
device.createRenderPipeline({
  vertex: { module: myVertexShaderModule },
  fragment: {
    module: myFragmentShaderModule,
    targets: [
      {
        format: "rgba32float",
        blend: { color: {}, alpha: {} },
      },
    ],
  },
  layout: "auto",
});

// Create the GPU texture with rgba32float format and
// send the appropriate commands to the GPU...

GPUDevice adapterInfo অ্যাট্রিবিউট

ব্যবহারকারী-প্রদত্ত GPUDevice অবজেক্ট গ্রহণকারী লাইব্রেরিগুলির জন্য ভৌত GPU সম্পর্কে তথ্য অ্যাক্সেস করা গুরুত্বপূর্ণ, কারণ তাদের GPU আর্কিটেকচারের উপর ভিত্তি করে সমাধানগুলি অপ্টিমাইজ বা বাস্তবায়নের প্রয়োজন হতে পারে। যদিও GPUAdapter অবজেক্টের মাধ্যমে এই তথ্য অ্যাক্সেস করা সম্ভব, তবে কেবল GPUDevice থেকে এটি পাওয়ার কোনও সরাসরি উপায় নেই। এটি অসুবিধাজনক হতে পারে, কারণ এর জন্য ব্যবহারকারীদের GPUDevice পাশাপাশি অতিরিক্ত তথ্য সরবরাহ করতে হতে পারে।

এই সমস্যা সমাধানের জন্য, GPUAdapterInfo এখন GPUDevice adapterInfo অ্যাট্রিবিউটের মাধ্যমে প্রকাশ করা হচ্ছে। এগুলি বিদ্যমান GPUAdapter info অ্যাট্রিবিউটের অনুরূপ।

নিম্নলিখিত স্নিপেটটি দেখুন, chromestatus এন্ট্রি , এবং ইস্যু 376600838

function optimizeForGpuDevice(device) {
  if (device.adapterInfo.vendor === "amd") {
    // Use AMD-specific optimizations.
  } else if (device.adapterInfo.architecture.includes("turing")) {
    // Optimize for NVIDIA Turing architecture.
  }
}

অবৈধ ফর্ম্যাট থ্রো জাভাস্ক্রিপ্ট ত্রুটি সহ ক্যানভাস প্রসঙ্গ কনফিগার করা হচ্ছে

পূর্বে, GPU ক্যানভাস কনটেক্সটের configure() পদ্ধতিতে একটি অবৈধ টেক্সচার ফর্ম্যাট ব্যবহার করার ফলে GPU বৈধতা ত্রুটি দেখা দিত। এটিকে JavaScript TypeError এ পরিবর্তন করা হয়েছে। এটি এমন পরিস্থিতি প্রতিরোধ করে যেখানে getCurrentTexture() GPU ক্যানভাস কনটেক্সট ভুলভাবে কনফিগার করা সত্ত্বেও একটি বৈধ GPU টেক্সচার ফেরত দেয়। আরও তথ্য 372837859 সংখ্যায় পাওয়া যাবে।

টেক্সচারের উপর স্যাম্পলার সীমাবদ্ধতা ফিল্টার করা

"sint" , "uint" , এবং " depth" ফর্ম্যাট টেক্সচার ব্যবহার করে ফিল্টারিং স্যাম্পলার ব্যবহার করা আগে অনুমোদিত ছিল। এখন এটি সঠিকভাবে ফিল্টারিং স্যাম্পলারের সাথে "sint" বা "uint" ফর্ম্যাট টেক্সচার ব্যবহার নিষিদ্ধ করে। মনে রাখবেন যে আপনি যদি ফিল্টারিং স্যাম্পলারের সাথে " depth" টেক্সচার ব্যবহার করেন তবে এটি বর্তমানে একটি সতর্কতা জারি করে কারণ ভবিষ্যতে এটি নিষিদ্ধ করা হবে। সংখ্যা 376497143 দেখুন।

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

বর্ধিত উপগোষ্ঠী পরীক্ষা-নিরীক্ষা

প্রাথমিকভাবে Chrome 131-এ শেষ হওয়ার জন্য নির্ধারিত সাবগ্রুপ পরীক্ষাটি Chrome 133-তে সম্প্রসারিত করা হয়েছে, যা 16 এপ্রিল, 2025-এ শেষ হবে। প্রথম অরিজিন ট্রায়ালটি কর্মক্ষমতার উপর দৃষ্টি নিবদ্ধ করলেও, এতে গুরুত্বপূর্ণ পোর্টেবিলিটি সুরক্ষার অভাব ছিল। এই সুরক্ষাগুলি এখন যুক্ত করা হবে, যা বিদ্যমান কোডে ত্রুটি সৃষ্টি করতে পারে।

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

Windows-এ requestAdapter() এর সাথে powerPreference বিকল্পটি ব্যবহার করা হলে DevTools-এ এখন একটি সতর্কতা দেখা যাচ্ছে। Chrome যখন দুটি ভিন্ন GPU ব্যবহার করতে এবং তাদের মধ্যে ফলাফল কম্পোজ করতে জানে তখন এই সতর্কতাটি সরিয়ে ফেলা হবে। সমস্যা 369219127 দেখুন।

খুব বড় GPU বাফার তৈরি করার সময় ত্রুটি বার্তায় GPU বাফারের আকার এখন উপস্থিত থাকে। সংখ্যা 374167798 দেখুন।

১৬-বিট নরমালাইজড টেক্সচার ফর্ম্যাটের জন্য পরীক্ষামূলক সমর্থন

"chromium-experimental-snorm16-texture-formats" এবং "chromium-experimental-unorm16-texture-formats" GPU বৈশিষ্ট্যগুলির পিছনে এখন পরীক্ষামূলকভাবে যথাক্রমে ১৬-বিট স্বাক্ষরিত নরমালাইজড এবং আনসাইনড নরমালাইজড টেক্সচার ফর্ম্যাট উপলব্ধ, যখন সেগুলি স্ট্যান্ডার্ডাইজেশনের জন্য আলোচনা করা হচ্ছে।

এই বৈশিষ্ট্যগুলি COPY_SRC , COPY_DST , TEXTURE_BINDING , RENDER_ATTACHMENT ব্যবহার, মাল্টিস্যাম্পলিং এবং সমাধান ক্ষমতা সহ 16-বিট নরমালাইজড টেক্সচার ফর্ম্যাটের জন্য সমর্থন যোগ করে। অতিরিক্ত ফর্ম্যাটগুলি হল "r16unorm" , "rg16unorm" , "rgba16unorm" , "r16snorm" , "rg16snorm" , এবং "rgba16snorm"

এই পরীক্ষামূলক বৈশিষ্ট্যগুলি স্ট্যান্ডার্ডাইজড না হওয়া পর্যন্ত, Chrome-এ উপলব্ধ করার জন্য chrome://flags/#enable-unsafe-webgpu "Unsafe WebGPU Support" ফ্ল্যাগটি সক্ষম করুন।

নিম্নলিখিত স্নিপেটটি দেখুন এবং 374790898 ইস্যু করুন

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("chromium-experimental-snorm16-texture-formats")) {
  throw new Error("16-bit signed normalized formats support is not available");
}
// Explicitly request 16-bit signed normalized formats support.
const device = await adapter.requestDevice({
  requiredFeatures: ["chromium-experimental-snorm16-texture-formats"],
});

// Create a texture with the rgba16snorm format which consists of four
// components, each of which is a 16-bit, normalized, signed integer value.
const texture = device.createTexture({
  size: [4, 4],
  format: "rgba16snorm",
  usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING,
});

// Send the appropriate commands to the GPU...

ভোরের আপডেট

wgpu::Adapter এবং wgpu::Device থেকে EnumerateFeatures(FeatureName * features) পদ্ধতিগুলি GetFeatures(SupportedFeatures * features) ব্যবহারের পক্ষে অবচিত। সংখ্যা 368672123 দেখুন।

webgpu.h C API সমস্ত char const * একটি WGPUStringView কাঠামোতে পরিবর্তন করেছে যা একটি ভিউকে UTF-8 এনকোডেড স্ট্রিংয়ে সংজ্ঞায়িত করে। এটি স্ট্রিংয়ের ডেটার দিকে একটি পয়েন্টারের মতো কাজ করে, একটি দৈর্ঘ্যের সাথে মিলিত হয়। এটি আপনাকে স্ট্রিংয়ের কিছু অংশ কপি না করেই কাজ করতে দেয়। সংখ্যা 42241188 দেখুন।

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

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

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

ক্রোম ১৪২

ক্রোম ১৪১

ক্রোম ১৪০

ক্রোম ১৩৯

ক্রোম ১৩৮

ক্রোম ১৩৭

ক্রোম ১৩৬

ক্রোম ১৩৫

ক্রোম ১৩৪

ক্রোম ১৩৩

ক্রোম ১৩২

ক্রোম ১৩১

ক্রোম ১৩০

ক্রোম ১২৯

ক্রোম ১২৮

ক্রোম ১২৭

ক্রোম ১২৬

ক্রোম ১২৫

ক্রোম ১২৪

ক্রোম ১২৩

ক্রোম ১২২

ক্রোম ১২১

ক্রোম ১২০

ক্রোম ১১৯

ক্রোম ১১৮

ক্রোম ১১৭

ক্রোম ১১৬

ক্রোম ১১৫

ক্রোম ১১৪

ক্রোম ১১৩