সাবগ্রুপগুলির সাথে পরীক্ষা করা হচ্ছে
সাবগ্রুপ বৈশিষ্ট্যটি SIMD-স্তরের সমান্তরালতা সক্ষম করে, একটি গোষ্ঠীর মধ্যে থ্রেডগুলিকে যোগাযোগ করতে এবং সম্মিলিত গণিত ক্রিয়াকলাপ সম্পাদন করতে দেয় (উদাহরণস্বরূপ, 16টি সংখ্যার যোগফল গণনা করা)। এটি ক্রস-থ্রেড ডেটা ভাগ করে নেওয়ার একটি অত্যন্ত দক্ষ ফর্ম প্রদান করে।
chrome://flags/#enable-unsafe-webgpu
"অনিরাপদ ওয়েবজিপিইউ সমর্থন" পতাকার পিছনে স্থানীয় পরীক্ষার জন্য উপগোষ্ঠী প্রস্তাবের একটি ন্যূনতম বাস্তবায়ন উপলব্ধ।
অরিজিন ট্রায়ালের জন্য সাইন আপ করে আপনি প্রকৃত ব্যবহারকারীদের সাথে আপনার সাইটে সাবগ্রুপগুলিও চেষ্টা করতে পারেন৷ অরিজিন ট্রায়াল ব্যবহার করার জন্য আপনার সাইটকে কীভাবে প্রস্তুত করতে হয় তার নির্দেশাবলীর জন্য মূল ট্রায়ালের সাথে শুরু করুন পড়ুন। অরিজিন ট্রায়ালটি Chrome 128 থেকে 131 পর্যন্ত চলবে (ফেব্রুয়ারি 19, 2025 শেষ হবে)। পরীক্ষা করার অভিপ্রায় দেখুন।
যখন একটি GPUAdapter
এ "subgroups"
বৈশিষ্ট্যটি উপলব্ধ থাকে, তখন WGSL-এ সাবগ্রুপ সমর্থন পেতে এবং এর minSubgroupSize
এবং maxSubgroupSize
সীমা চেক করতে এই বৈশিষ্ট্য সহ একটি GPUDevice
অনুরোধ করুন।
আপনাকে আপনার ডাব্লুজিএসএল কোডে এই এক্সটেনশনটি সুস্পষ্টভাবে সক্ষম করতে হবে enable subgroups;
. সক্রিয় করা হলে, আপনি নিম্নলিখিত সংযোজনগুলিতে অ্যাক্সেস পাবেন:
-
subgroup_invocation_id
: সাবগ্রুপের মধ্যে থ্রেডের সূচকের জন্য একটি অন্তর্নির্মিত মান। -
subgroup_size
: সাবগ্রুপ সাইজ অ্যাক্সেসের জন্য একটি অন্তর্নির্মিত মান। -
subgroupBallot(value)
: বিট ফিল্ডের একটি সেট দেখায় যেখানেsubgroup_invocation_id
এর সাথে সংশ্লিষ্ট বিটটি 1 হয় যদি সেই সক্রিয় আহ্বানের জন্যvalue
সত্য হয় এবং অন্যথায় 0 হয়। -
subgroupBroadcast(value, id)
:subgroup_invocation_id
ম্যাচিংid
সহ আমন্ত্রণ থেকেvalue
সাবগ্রুপের মধ্যে সমস্ত আহ্বানে সম্প্রচার করে। দ্রষ্টব্য:id
অবশ্যই একটি কম্পাইল-টাইম ধ্রুবক হতে হবে।
আরও অন্তর্নির্মিত ফাংশন যেমন subgroupAdd
, subgroupAll
, subgroupElect
, subgroupShuffle
ভবিষ্যতে যোগ করা হবে৷ সংখ্যা 354738715 দেখুন।
সাবগ্রুপ অপারেশনে f16 কে অনুমতি দিতে, "subgroups"
, "subgroups-f16"
এবং "shader-f16"
ফিচার সহ একটি GPUDevice
অনুরোধ করুন, তারপর আপনার WGSL কোডে enable f16, subgroups, subgroups_f16;
.
নিম্নোক্ত কোড স্নিপেটটি উপগোষ্ঠীর সম্ভাব্যতা খুঁজে বের করার জন্য একটি ভিত্তি প্রদান করে।
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
throw new Error("Subgroups support is not available");
}
// Explicitly request subgroups support.
const device = await adapter.requestDevice({
requiredFeatures: ["subgroups"],
});
const shaderModule = device.createShaderModule({ code: `
enable subgroups;
var<workgroup> wgmem : u32;
@group(0) @binding(0)
var<storage, read> inputs : array<u32>;
@group(0) @binding(1)
var<storage, read_write> output : array<u32>;
@compute @workgroup_size(64)
fn main(@builtin(subgroup_size) subgroupSize : u32,
@builtin(subgroup_invocation_id) id : u32,
@builtin(local_invocation_index) lid : u32) {
// One thread per workgroup writes the value to workgroup memory.
if (lid == 0) {
wgmem = inputs[lid];
}
workgroupBarrier();
var v = 0u;
// One thread per subgroup reads the value from workgroup memory
// and shares that value with every other thread in the subgroup
// to reduce local memory bandwidth.
if (id == 0) {
v = wgmem;
}
v = subgroupBroadcast(v, 0);
output[lid] = v;
}`,
});
// Send the appropriate commands to the GPU...
লাইন এবং পয়েন্টের জন্য গভীরতার পক্ষপাত সেটিং বাতিল করুন
রেন্ডার পাইপলাইনের টপোলজি একটি লাইন বা পয়েন্ট টাইপ হলে একটি WebGPU স্পেস পরিবর্তন depthBias
, depthBiasSlopeScale
, এবং depthBiasClamp
একটি নন-জিরো মান সেট করতে একটি বৈধতা ত্রুটি করে। ডেভেলপারদের তাদের কোড আপডেট করার জন্য পর্যাপ্ত সময় দিতে, DevTools Console-এ এই আসন্ন বৈধতা সম্পর্কে একটি সতর্কতা দেখানো হয় এবং এই পরিস্থিতিতে মানগুলিকে 0-তে বাধ্য করা হয়। সংখ্যা 352567424 দেখুন।
ডিফল্ট প্রতিরোধ করলে ক্যাপচারড ত্রুটি DevTools সতর্কতা লুকান
DevTools কনসোলে, uncapturederror
ইভেন্টের জন্য সতর্কতা আর প্রদর্শিত হয় না যদি uncapturederror
এর জন্য কোনো ইভেন্ট লিসেনার নিবন্ধিত হয়ে থাকে এবং ইভেন্ট লিসেনার কলব্যাকের মধ্যে ইভেন্ট preventDefault()
পদ্ধতি কল করা হয়। এই আচরণ জাভাস্ক্রিপ্টে ইভেন্ট পরিচালনার সাথে মেলে। নিম্নলিখিত উদাহরণ এবং ইস্যু 40263619 দেখুন।
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
device.addEventListener("uncapturederror", (event) => {
// Prevents browser warning to show up in the DevTools Console.
event.preventDefault();
// TODO: Handle event.error
});
WGSL ইন্টারপোলেট স্যাম্পলিং প্রথমে এবং হয়
WGSL interpolate
অ্যাট্রিবিউট আপনাকে ব্যবহারকারী-সংজ্ঞায়িত IO ডেটা ইন্টারপোলেশন পরিচালনা করতে দেয়। এখন, নতুন ইন্টারপোলেট স্যাম্পলিং প্যারামিটারগুলি first
(ডিফল্ট) এবং either
আপনাকে অতিরিক্ত নিয়ন্ত্রণ দেয়: first
আদিম এর প্রথম শীর্ষ থেকে মান ব্যবহার করে, যখন either
প্রথম বা শেষ শীর্ষবিন্দুকে অনুমতি দেয়। সংখ্যা 340278447 দেখুন।
ভোরের আপডেট
অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপগুলি পরিচালনা করার জন্য ডনের WGPU ফিউচারের বাস্তবায়ন এখন সম্পূর্ণ হয়েছে। মূল ধারণার মধ্যে রয়েছে সুবিধাবাদী ইভেন্ট প্রক্রিয়াকরণের জন্য wgpuInstanceProcessEvents এবং কলব্যাক অবস্থান নির্ধারণের জন্য WGPUCallbackMode । WGPUFuture একটি অসীম জীবনকাল সহ এক-বারের ইভেন্টগুলিকে নির্দেশ করে এবং wgpuInstanceWaitAny যেকোন ভবিষ্যত বা সময় শেষ হওয়ার জন্য অপেক্ষা করে। সংখ্যা 42240932 দেখুন।
CompositeAlphaMode::Auto
মান এখন Surface::GetCapabilities()
দ্বারা রিপোর্ট করা হয় না। এটি এখনও বৈধ, এবং Surface::GetCapabilities().alphaMode[0]
এর সমতুল্য। সংখ্যা 292 দেখুন।
OpenGL ব্যাকএন্ড এখন প্রতিটি Present()
কলের জন্য y-ফ্লিপ ব্লিট সহ Surface
সমর্থন করে। সংখ্যা 344814083 দেখুন।
Adapter::GetProperties()
পদ্ধতিটি Adapter::GetInfo()
ব্যবহার করার পক্ষে উপেক্ষিত হয়েছে।
যশওয়ান্ত, একজন বহিরাগত অবদানকারী, সমস্ত CMake ফাইলগুলিকে পুনঃলিখন করেছেন, সেগুলিকে আপডেট করা সহজ করে এবং প্রি-বিল্ড করার অনুমতি দেয়৷ CMake প্রকল্পে ডন ব্যবহার করার জন্য কুইকস্টার্ট গাইড দেখুন।
এটি শুধুমাত্র কিছু মূল হাইলাইট কভার করে। কমিটের সম্পূর্ণ তালিকা দেখুন।
WebGPU-তে নতুন কি আছে
ওয়েবজিপিইউ সিরিজে নতুন কী কভার করা হয়েছে তার একটি তালিকা।
ক্রোম 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 আপডেট
- ভোরের আপডেট