প্রকাশিত: 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-তে নতুন কি আছে
ওয়েবজিপিইউ সিরিজে নতুন কী কভার করা হয়েছে তার একটি তালিকা।
ক্রোম 132
- টেক্সচার ভিউ ব্যবহার
- 32-বিট ফ্লোট টেক্সচারের মিশ্রণ
- GPUDevice adapterInfo বৈশিষ্ট্য
- অবৈধ বিন্যাসের সাথে ক্যানভাস প্রসঙ্গ কনফিগার করা জাভাস্ক্রিপ্ট ত্রুটি থ্রো
- টেক্সচারের উপর নমুনা সীমাবদ্ধতা ফিল্টারিং
- বর্ধিত সাবগ্রুপ পরীক্ষা
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- 16-বিট স্বাভাবিক টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম 131
- WGSL এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং লাইন আদিম গভীরতা পক্ষপাত থাকতে হবে না
- সাবগ্রুপগুলির জন্য অন্তর্নির্মিত ফাংশন অন্তর্ভুক্ত স্ক্যান
- মাল্টি-ড্র পরোক্ষ জন্য পরীক্ষামূলক সমর্থন
- Shader মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() সরান
- ভোরের আপডেট
ক্রোম 130
- দ্বৈত উৎস মিশ্রন
- ধাতুতে Shader সংকলন সময় উন্নতি
- GPUAdapter রিকোয়েস্ট অ্যাডাপ্টারইনফো() এর অবচয়
- ভোরের আপডেট
ক্রোম 129
ক্রোম 128
- সাবগ্রুপগুলির সাথে পরীক্ষা করা হচ্ছে
- লাইন এবং পয়েন্টের জন্য গভীরতার পক্ষপাত সেটিং বাতিল করুন
- ডিফল্ট প্রতিরোধ করলে ক্যাপচারড ত্রুটি DevTools সতর্কতা লুকান
- WGSL ইন্টারপোলেট স্যাম্পলিং প্রথমে এবং হয়
- ভোরের আপডেট
ক্রোম 127
- অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য বৈশিষ্ট্য
- WebAssembly ইন্টারপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম 126
- maxTextureArrayLayers সীমা বাড়ান
- Vulkan ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশান
- Shader সংকলন সময় উন্নতি
- জমা দেওয়া কমান্ড বাফার অনন্য হতে হবে
- ভোরের আপডেট
ক্রোম 125
ক্রোম 124
- রিড-ওনলি এবং রিড-রাইট স্টোরেজ টেক্সচার
- সেবা কর্মী এবং শেয়ার্ড ওয়ার্কার্স সমর্থন
- নতুন অ্যাডাপ্টারের তথ্য বৈশিষ্ট্য
- বাগ ফিক্স
- ভোরের আপডেট
ক্রোম 123
- DP4a বিল্ট-ইন ফাংশন WGSL-এ সমর্থন করে
- WGSL-এ অনিয়ন্ত্রিত পয়েন্টার পরামিতি
- WGSL-এ কম্পোজিট ডিরেফারেন্স করার জন্য সিনট্যাক্স চিনি
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য আলাদা পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম 122
- সামঞ্জস্যপূর্ণ মোডের সাথে নাগাল প্রসারিত করুন (বিকাশের বৈশিষ্ট্য)
- maxVertexAttributes সীমা বাড়ান
- ভোরের আপডেট
ক্রোম 121
- অ্যান্ড্রয়েডে WebGPU সমর্থন করুন
- উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন
- গণনা এবং রেন্ডার পাসে টাইমস্ট্যাম্প প্রশ্ন
- শেডার মডিউলে ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture রঙের স্থান হিসাবে প্রদর্শন-p3 সমর্থন করে
- মেমরি হিপ তথ্য
- ভোরের আপডেট
ক্রোম 120
- WGSL-এ 16-বিট ফ্লোটিং-পয়েন্ট মানগুলির জন্য সমর্থন
- সীমা ধাক্কা
- গভীরতা-স্টেনসিল অবস্থায় পরিবর্তন
- অ্যাডাপ্টারের তথ্য আপডেট
- টাইমস্ট্যাম্প ক্যোয়ান্টাইজেশন
- বসন্ত-পরিষ্কার বৈশিষ্ট্য
ক্রোম 119
- ফিল্টারযোগ্য 32-বিট ফ্লোট টেক্সচার
- unorm10-10-10-2 শীর্ষবিন্দু বিন্যাস
- rgb10a2uint টেক্সচার ফরম্যাট
- ভোরের আপডেট
ক্রোম 118
-
copyExternalImageToTexture()
এ HTMLImageElement এবং ImageData সমর্থন - পঠন-লেখা এবং শুধুমাত্র-পঠন সঞ্চয়স্থান টেক্সচারের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম 117
- শীর্ষবিন্দু বাফার আনসেট করুন
- বাইন্ড গ্রুপ আনসেট করুন
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলি নীরব করুন৷
- SPIR-V shader মডিউল তৈরির আপডেট
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ পাইপলাইন ক্যাশ করা হচ্ছে
- ভোরের আপডেট
ক্রোম 116
- ওয়েবকোডেক্স ইন্টিগ্রেশন
- হারিয়ে যাওয়া ডিভাইস GPUAdapter
requestDevice()
দ্বারা ফেরত দেওয়া হয়েছে -
importExternalTexture()
বলা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - বিশেষ সঙ্গতি
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম 115
- WGSL ভাষা এক্সটেনশন সমর্থিত
- Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন
- AC পাওয়ারে ডিফল্টরূপে আলাদা GPU পান
- বিকাশকারীর অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম 114
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- getCurrentTexture() কনফিগার না করা ক্যানভাসে InvalidStateError নিক্ষেপ করে
- WGSL আপডেট
- ভোরের আপডেট