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

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

প্রকাশিত: 8 জানুয়ারী, 2025

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

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
});

32-বিট ফ্লোট টেক্সচারের মিশ্রণ

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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 বৈশিষ্ট্য

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
  }
}

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

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

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

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

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

বর্ধিত সাবগ্রুপ পরীক্ষা

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

বিকাশকারীর অভিজ্ঞতা উন্নত করা

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

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

16-বিট স্বাভাবিক টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন

16-বিট স্বাক্ষরিত স্বাভাবিকীকৃত এবং স্বাক্ষরবিহীন স্বাভাবিক টেক্সচার ফরম্যাটগুলি এখন পরীক্ষামূলকভাবে "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://flags/#enable-unsafe-webgpu এ "অনিরাপদ ওয়েবজিপিইউ সমর্থন" ফ্ল্যাগটিকে Chrome-এ উপলব্ধ করতে সক্ষম করুন৷

নিম্নলিখিত স্নিপেট এবং ইস্যু 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-তে নতুন কি আছে

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

ক্রোম 137

ক্রোম 136

ক্রোম 135

ক্রোম 134

ক্রোম 133

ক্রোম 132

ক্রোম 131

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113

,

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

প্রকাশিত: 8 জানুয়ারী, 2025

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

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
});

32-বিট ফ্লোট টেক্সচারের মিশ্রণ

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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 বৈশিষ্ট্য

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
  }
}

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

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

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

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

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

বর্ধিত সাবগ্রুপ পরীক্ষা

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

বিকাশকারীর অভিজ্ঞতা উন্নত করা

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

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

16-বিট স্বাভাবিক টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন

16-বিট স্বাক্ষরিত স্বাভাবিকীকৃত এবং স্বাক্ষরবিহীন স্বাভাবিক টেক্সচার ফরম্যাটগুলি এখন পরীক্ষামূলকভাবে "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://flags/#enable-unsafe-webgpu এ "অনিরাপদ ওয়েবজিপিইউ সমর্থন" ফ্ল্যাগটিকে Chrome-এ উপলব্ধ করতে সক্ষম করুন৷

নিম্নলিখিত স্নিপেট এবং ইস্যু 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-তে নতুন কি আছে

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

ক্রোম 137

ক্রোম 136

ক্রোম 135

ক্রোম 134

ক্রোম 133

ক্রোম 132

ক্রোম 131

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113

,

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

প্রকাশিত: 8 জানুয়ারী, 2025

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

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
});

32-বিট ফ্লোট টেক্সচারের মিশ্রণ

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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 বৈশিষ্ট্য

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

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

নিম্নলিখিত স্নিপেট, ক্রোমেস্ট্যাটাস এন্ট্রি এবং ইস্যু 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.
  }
}

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

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

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

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

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

বর্ধিত সাবগ্রুপ পরীক্ষা

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

বিকাশকারীর অভিজ্ঞতা উন্নত করা

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

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

16-বিট স্বাভাবিক টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন

16-বিট স্বাক্ষরিত স্বাভাবিকীকৃত এবং স্বাক্ষরবিহীন স্বাভাবিক টেক্সচার ফরম্যাটগুলি এখন পরীক্ষামূলকভাবে "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://flags/#enable-unsafe-webgpu এ "অনিরাপদ ওয়েবজিপিইউ সমর্থন" ফ্ল্যাগটিকে Chrome-এ উপলব্ধ করতে সক্ষম করুন৷

নিম্নলিখিত স্নিপেট এবং ইস্যু 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-তে নতুন কি আছে

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

ক্রোম 137

ক্রোম 136

ক্রোম 135

ক্রোম 134

ক্রোম 133

ক্রোম 132

ক্রোম 131

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

Chrome 113

,

ফ্রান্সোইস বিউফোর্ট
François Beaufort

প্রকাশিত: 8 জানুয়ারী, 2025

টেক্সচার দেখুন ব্যবহার

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

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

নিম্নলিখিত স্নিপেট, ক্রোমস্ট্যাটাস এন্ট্রি এবং 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.
});

32-বিট ফ্লোট টেক্সচার মিশ্রণ

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

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

নিম্নলিখিত স্নিপেট, ক্রোমস্ট্যাটাস এন্ট্রি এবং 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 অবজেক্টগুলিকে গ্রহণ করে এমন গ্রন্থাগারগুলির জন্য এটি গুরুত্বপূর্ণ, কারণ তাদের জিপিইউ আর্কিটেকচারের ভিত্তিতে ওয়ার্কআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআর যদিও GPUAdapter অবজেক্টের মাধ্যমে এই তথ্য অ্যাক্সেস করা সম্ভব, তবে এটি একা GPUDevice থেকে পাওয়ার কোনও সরাসরি উপায় নেই। এটি অসুবিধে হতে পারে, কারণ এটি ব্যবহারকারীদের GPUDevice পাশাপাশি অতিরিক্ত তথ্য সরবরাহ করার প্রয়োজন হতে পারে।

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

নিম্নলিখিত স্নিপেট, ক্রোমস্ট্যাটাস এন্ট্রি এবং 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.
  }
}

অবৈধ ফর্ম্যাট দিয়ে ক্যানভাস প্রসঙ্গটি কনফিগার করা জাভাস্ক্রিপ্ট ত্রুটি

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

টেক্সচারে নমুনা বিধিনিষেধ ফিল্টারিং

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

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

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

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

বিকাশকারীদের অভিজ্ঞতা উন্নত করা

উইন্ডোজে requestAdapter() সাথে powerPreference বিকল্পটি ব্যবহার করা হলে ডিভটুলগুলিতে এখন একটি সতর্কতা দৃশ্যমান। এই সতর্কতাটি সরানো হবে যখন ক্রোম কীভাবে দুটি পৃথক জিপিইউ ব্যবহার করতে পারে এবং তাদের মধ্যে ফলাফলগুলি সংমিশ্রণ করতে জানে। সংখ্যা 369219127 দেখুন।

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

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

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

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

যতক্ষণ না এই পরীক্ষামূলক বৈশিষ্ট্যগুলি মানক করা হয়, ততক্ষণ chrome://flags/#enable-unsafe-webgpu ক্রোমে উপলব্ধ করতে সক্ষম করুন "অনিরাপদ ওয়েবজিপিইউ সমর্থন" পতাকা সক্ষম করুন।

নিম্নলিখিত স্নিপেট দেখুন এবং 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 দেখুন।

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

এটি কেবল কয়েকটি মূল হাইলাইটগুলি কভার করে। প্রতিশ্রুতির বিস্তৃত তালিকা দেখুন।

ওয়েবজিপুতে নতুন কী

ওয়েবজিপিইউ সিরিজে নতুন কী রয়েছে তাতে আচ্ছাদিত সমস্ত কিছুর একটি তালিকা।

Chrome 137

Chrome 136

Chrome 135

ক্রোম 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

ক্রোম 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

ক্রোম 114

Chrome 113