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

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

WGSL ভাষা এক্সটেনশন সমর্থিত

GPU অবজেক্টের wgslLanguageFeatures সদস্য সমর্থিত WGSL ভাষা এক্সটেনশনের নাম তালিকাভুক্ত করে। সমর্থিত WGSL ভাষা এক্সটেনশনগুলি স্বয়ংক্রিয়ভাবে সক্ষম হয়, তাই আপনাকে স্পষ্টভাবে একটি অনুরোধ করতে হবে না। এই তালিকাটি বর্তমানে খালি কিন্তু আপনি ভবিষ্যতে তাদের প্রচুর আশা করতে পারেন (উদাহরণস্বরূপ, do-while loops )। দেখুন ভোরের সংখ্যা: 1777

if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
  // Use unknown-feature in WGSL shader code.
}

Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন

Chromium টিম Direct3D 11-এর জন্য WebGPU সমর্থন যোগ করার জন্য কাজ করছে৷ আপনি এখন --enable-unsafe-webgpu --use-webgpu-adapter=d3d11 কমান্ড-লাইন পতাকাগুলির সাথে Windows-এ Chrome চালিয়ে স্থানীয়ভাবে এটির সাথে পরীক্ষা করতে পারেন৷ প্রভাত সংখ্যা দেখুন: 1705

AC পাওয়ারে ডিফল্টরূপে আলাদা GPU পান

দ্বৈত GPU macOS ডিভাইসে, powerPreference বিকল্প ছাড়া requestAdapter() কল করা হলে, ব্যবহারকারীর ডিভাইস এসি পাওয়ারে থাকলে বিচ্ছিন্ন GPU ফেরত দেওয়া হয়। অন্যথায়, সমন্বিত GPU ফেরত দেওয়া হয়। পরিবর্তন দেখুন 4499307

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

নতুন DevTools সতর্কতা

যদি depth কীটি একটি GPUExtend3DDict এ ব্যবহার করা হয় তাহলে একটি সতর্কতা DevTools কনসোলে দেখানো হয় যেহেতু সঠিক কীটি depthOrArrayLayersক্রোমিয়াম সংখ্যা দেখুন:1440900

যদি একটি GPUBlendComponent স্পষ্ট এবং ডিফল্ট সদস্যের মিশ্রণ থাকে তাহলে একটি সতর্কতাও উত্থাপিত হয়। দেখুন ভোরের সংখ্যা: 1785

যদিও শূন্য-আকারের প্রেরণ এবং ড্র বৈধ, একটি সতর্কীকরণ বিকাশকারীদের যখন সম্ভব তখন সেগুলি এড়াতে উত্সাহিত করে৷ দেখুন ভোরের সংখ্যা: 1786

আরও ভাল ত্রুটি বার্তা

একটি GPUCommandEncoder ব্যবহার করার সময় একটি উন্নত ত্রুটি বার্তা প্রদান করা হয় যদি finish() ইতিমধ্যেই কল করা হয়। দেখুন ভোরের সংখ্যা: 1736

ধ্বংসকৃত বস্তুর সাথে কমান্ড বাফার জমা দেওয়ার সময়, submit() এ ব্যবহৃত কমান্ড বাফারের লেবেলগুলি এখন ত্রুটি বার্তায় দৃশ্যমান। দেখুন ভোরের সংখ্যা: 1747

গভীরতার স্টেনসিল অবস্থার অবৈধ অংশটি এখন ত্রুটি বার্তায় নির্দিষ্ট করা হয়েছে যখন depthStencil যাচাই করার সময়। দেখুন ভোরের সংখ্যা: 1735

minBindingSize যাচাইকরণ ত্রুটির বার্তাটি এখন বাইন্ডিংয়ের গ্রুপ এবং সংখ্যা প্রতিবেদন করে যা যাচাইকরণ ব্যর্থ হয়েছে, সেইসাথে বাফারও। দেখুন ভোরের সংখ্যা:1604

একটি GPUBuffer অবজেক্টে mapAsync() পদ্ধতি দ্বারা প্রত্যাবর্তিত ত্রুটি বার্তাগুলি ডিবাগ করার সময় বিকাশকারীদের সাহায্য করার জন্য উন্নত করা হয়েছে৷ নীচের একটি উদাহরণ দেখুন এবং ক্রোমিয়াম ইস্যু করুন:1431622

// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);

// Before it has been mapped, request another mapping.
try {
  await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
  // New! Error message tells you mapping is already pending.
  console.warn(error.message);
}

macOS ডিবাগিং টুলে লেবেল

use_user_defined_labels_in_backend ডিবাগ টগল আপনাকে অবজেক্ট লেবেলগুলিকে ব্যাকএন্ডে ফরোয়ার্ড করার অনুমতি দেয় যাতে সেগুলি RenderDoc, PIX বা Instruments এর মত প্ল্যাটফর্ম-নির্দিষ্ট ডিবাগিং টুলগুলিতে দেখা যায়। এখন থেকে, আপনি যখন ডিবাগিংয়ের জন্য এটি সক্ষম করেন তখন macOS-এ একটি আরও ভাল ডিবাগ অভিজ্ঞতা প্রদান করা হয়৷ প্রভাত সংখ্যা দেখুন: 1784

WebGPU থেকে আসা কাস্টম লেবেল সমন্বিত macOS-এ Instruments অ্যাপের স্ক্রিনশট।
MacOS-এ Instruments অ্যাপে ব্যবহারকারীর সংজ্ঞায়িত লেবেল।

কম্পাইলেশন ব্যর্থ হলে HLSL লগ করুন

dump_shaders ডিবাগ টগল আপনাকে ডাব্লুজিএসএল শেডার এবং অনুবাদিত ব্যাকএন্ড শেডার লগ ইনপুট করার অনুমতি দেয়। এখন থেকে, যখন আপনি এটিকে ডিবাগ করার জন্য সক্ষম করবেন, কম্পাইলেশন ব্যর্থ হলে HLSL ডাম্প করা হবে। দেখুন প্রভাত সংখ্যা:1681

ভোরের আপডেট

শীর্ষবিন্দু বাফার আনসেট করুন

wgpu::Buffer to SetVertexBuffer()wgpu::RenderPassEncoder বা wgpu::RenderBundleEncoder পরিবর্তে nullptr পাস করা আপনাকে একটি প্রদত্ত স্লটে পূর্বে সেট করা ভার্টেক্স বাফার আনসেট করতে দেয়। দেখুন ভোরের সংখ্যা:1675

// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);

ক্ষণস্থায়ী সংযুক্তি

আপনি সংযুক্তিগুলি তৈরি করতে পারেন যা রেন্ডার পাস অপারেশনগুলিকে টাইল মেমরিতে থাকার অনুমতি দেয়, VRAM ট্র্যাফিক এড়ানো এবং সম্ভাব্যভাবে wgpu::TextureUsage::TransientAttachment ব্যবহার সেট করে টেক্সচারের জন্য VRAM বরাদ্দ এড়ানো। এই বৈশিষ্ট্য শুধুমাত্র মেটাল এবং Vulkan জন্য সমর্থিত. প্রভাত সংখ্যা দেখুন: 1695

wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
             wgpu::TextureUsage::TransientAttachment;

auto transientTexture = device.CreateTexture(&desc);

// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.

depot_tools ছাড়া বিল্ডিং

একটি নতুন DAWN_FETCH_DEPENDENCIES CMake বিকল্প আপনাকে একটি পাইথন স্ক্রিপ্ট ব্যবহার করে ডন নির্ভরতা আনতে দেয় যা এটির উপর নির্ভরশীল সমস্ত প্রকল্পের দ্বারা depot_tools ইনস্টল করার পরিবর্তে DEPS ফাইলগুলি পাঠ করে। পরিবর্তন 131750 দেখুন।

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

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

ক্রোম 130

ক্রোম 129

ক্রোম 128

ক্রোম 127

ক্রোম 126

ক্রোম 125

ক্রোম 124

ক্রোম 123

ক্রোম 122

ক্রোম 121

ক্রোম 120

ক্রোম 119

ক্রোম 118

ক্রোম 117

ক্রোম 116

ক্রোম 115

ক্রোম 114

ক্রোম 113