অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
ক্রোম টিম আনন্দের সাথে জানাচ্ছে যে, কোয়ালকম এবং এআরএম জিপিইউ দ্বারা চালিত অ্যান্ড্রয়েড ১২ ও তার পরবর্তী সংস্করণের ডিভাইসগুলিতে ক্রোম ১২১-এ এখন থেকে ওয়েবজিপিইউ ডিফল্টরূপে সক্রিয় থাকবে।
অদূর ভবিষ্যতে অ্যান্ড্রয়েড ১১ চালিত ডিভাইস সহ আরও বিস্তৃত পরিসরের অ্যান্ড্রয়েড ডিভাইসে এর সমর্থন ধীরে ধীরে প্রসারিত হবে। বিভিন্ন হার্ডওয়্যার কনফিগারেশনে একটি নির্বিঘ্ন অভিজ্ঞতা নিশ্চিত করার জন্য এই সম্প্রসারণটি আরও পরীক্ষা এবং অপ্টিমাইজেশনের উপর নির্ভরশীল হবে। ইস্যু chromium:1497815 দেখুন।

উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
SM6+ গ্রাফিক্স হার্ডওয়্যারযুক্ত উইন্ডোজ D3D12 মেশিনে শেডার কম্পাইল করার জন্য ক্রোম এখন DXC (ডাইরেক্টএক্স কম্পাইলার)-এর শক্তি ব্যবহার করে। পূর্বে, উইন্ডোজে শেডার কম্পাইলেশনের জন্য WebGPU FXC (এফএক্স কম্পাইলার)-এর উপর নির্ভর করত। কার্যকরী হলেও, FXC-তে DXC-তে থাকা ফিচার সেট এবং পারফরম্যান্স অপটিমাইজেশনের অভাব ছিল।
প্রাথমিক পরীক্ষায় দেখা গেছে যে, FXC-এর তুলনায় DXC ব্যবহার করলে কম্পিউট শেডার কম্পাইলেশনের গতি গড়ে ২০% বৃদ্ধি পায়।
কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
টাইমস্ট্যাম্প কোয়েরির মাধ্যমে ওয়েবজিপিইউ অ্যাপ্লিকেশনগুলো নির্ভুলভাবে (ন্যানোসেকেন্ড পর্যন্ত) পরিমাপ করতে পারে যে, তাদের জিপিইউ কমান্ডগুলো কম্পিউট এবং রেন্ডার পাসগুলো সম্পাদন করতে ঠিক কতটা সময় নেয়। জিপিইউ ওয়ার্কলোডগুলোর পারফরম্যান্স এবং আচরণ সম্পর্কে ধারণা পেতে এগুলো ব্যাপকভাবে ব্যবহৃত হয়।
যখন কোনো GPUAdapter এ "timestamp-query" ফিচারটি উপলব্ধ থাকে, তখন আপনি নিম্নলিখিত কাজগুলো করতে পারবেন:
-
"timestamp-query"বৈশিষ্ট্যসহ একটিGPUDeviceজন্য অনুরোধ করুন। -
"timestamp"টাইপের একটিGPUQuerySetতৈরি করুন। -
GPUQuerySetএ টাইমস্ট্যাম্প মানগুলি কোথায় লিখতে হবে তা নির্ধারণ করতেGPUComputePassDescriptor.timestampWritesএবংGPURenderPassDescriptor.timestampWritesব্যবহার করুন। -
resolveQuerySet()ব্যবহার করে টাইমস্ট্যাম্প মানগুলিকে একটিGPUBufferএ রূপান্তর করুন। -
GPUBufferথেকে ফলাফলগুলো CPU-তে কপি করে টাইমস্ট্যাম্পের মানগুলো পুনরায় পড়ুন। - টাইমস্ট্যাম্প মানগুলিকে একটি
BigInt64Arrayহিসাবে ডিকোড করুন।
নিম্নলিখিত উদাহরণটি দেখুন এবং dawn:1800 ইস্যুটি করুন।
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("timestamp-query")) {
throw new Error("Timestamp query feature is not available");
}
// Explicitly request timestamp query feature.
const device = await adapter.requestDevice({
requiredFeatures: ["timestamp-query"],
});
const commandEncoder = device.createCommandEncoder();
// Create a GPUQuerySet which holds 2 timestamp query results: one for the
// beginning and one for the end of compute pass execution.
const querySet = device.createQuerySet({ type: "timestamp", count: 2 });
const timestampWrites = {
querySet,
beginningOfPassWriteIndex: 0, // Write timestamp in index 0 when pass begins.
endOfPassWriteIndex: 1, // Write timestamp in index 1 when pass ends.
};
const passEncoder = commandEncoder.beginComputePass({ timestampWrites });
// TODO: Set pipeline, bind group, and dispatch work to be performed.
passEncoder.end();
// Resolve timestamps in nanoseconds as a 64-bit unsigned integer into a GPUBuffer.
const size = 2 * BigInt64Array.BYTES_PER_ELEMENT;
const resolveBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.QUERY_RESOLVE | GPUBufferUsage.COPY_SRC,
});
commandEncoder.resolveQuerySet(querySet, 0, 2, resolveBuffer, 0);
// Read GPUBuffer memory.
const resultBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});
commandEncoder.copyBufferToBuffer(resolveBuffer, 0, resultBuffer, 0, size);
// Submit commands to the GPU.
device.queue.submit([commandEncoder.finish()]);
// Log compute pass duration in nanoseconds.
await resultBuffer.mapAsync(GPUMapMode.READ);
const times = new BigInt64Array(resultBuffer.getMappedRange());
console.log(`Compute pass duration: ${Number(times[1] - times[0])}ns`);
resultBuffer.unmap();
টাইমিং অ্যাটাকের উদ্বেগের কারণে, টাইমস্ট্যাম্প কোয়েরিগুলোকে ১০০ মাইক্রোসেকেন্ডের রেজোলিউশনে কোয়ান্টাইজ করা হয়, যা নির্ভুলতা এবং নিরাপত্তার মধ্যে একটি ভালো ভারসাম্য প্রদান করে। ক্রোম ব্রাউজারে, আপনার অ্যাপ তৈরির সময় chrome://flags/#enable-webgpu-developer-features লিঙ্কে থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করে আপনি টাইমস্ট্যাম্প কোয়ান্টাইজেশন নিষ্ক্রিয় করতে পারেন। আরও জানতে টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন দেখুন।
যেহেতু GPU মাঝেমধ্যে টাইমস্ট্যাম্প কাউন্টার রিসেট করতে পারে, যার ফলে টাইমস্ট্যাম্পগুলোর মধ্যে নেতিবাচক ডেল্টার মতো অপ্রত্যাশিত মান দেখা যেতে পারে, তাই আমি আপনাকে নিম্নলিখিত Compute Boids স্যাম্পলটিতে টাইমস্ট্যাম্প কোয়েরি সাপোর্ট যোগ করা গিট ডিফ পরিবর্তনগুলো দেখে নেওয়ার পরামর্শ দিচ্ছি।

শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
ডেভেলপার অভিজ্ঞতা উন্নত করার জন্য, এখন থেকে কম্পিউট বা রেন্ডার পাইপলাইন তৈরি করার সময় আপনি আপনার শেডার মডিউলের entryPoint বাদ দিতে পারেন। শেডার কোডে যদি শেডার স্টেজের জন্য কোনো স্বতন্ত্র এন্ট্রি পয়েন্ট খুঁজে না পাওয়া যায়, তাহলে একটি GPUValidationError দেখা দেবে। নিম্নলিখিত উদাহরণ এবং dawn:2254 ইস্যুটি দেখুন।
const code = `
@vertex fn vertexMain(@builtin(vertex_index) i : u32) ->
@builtin(position) vec4f {
const pos = array(vec2f(0, 1), vec2f(-1, -1), vec2f(1, -1));
return vec4f(pos[i], 0, 1);
}
@fragment fn fragmentMain() -> @location(0) vec4f {
return vec4f(1, 0, 0, 1);
}`;
const module = myDevice.createShaderModule({ code });
const format = navigator.gpu.getPreferredCanvasFormat();
const pipeline = await myDevice.createRenderPipelineAsync({
layout: "auto",
vertex: { module, entryPoint: "vertexMain" },
fragment: { module, entryPoint: "fragmentMain", targets: [{ format }] },
vertex: { module },
fragment: { module, targets: [{ format }] },
});
GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
এখন আপনি importExternalTexture() ব্যবহার করে HDR ভিডিও থেকে GPUExternalTexture ইম্পোর্ট করার সময় "display-p3" ডেস্টিনেশন কালার স্পেস সেট করতে পারবেন। WebGPU কীভাবে কালার স্পেস পরিচালনা করে তা দেখে নিন। নিম্নলিখিত উদাহরণ এবং chromium:1330250 ইস্যুটি দেখুন।
// Create texture from HDR video.
const video = document.querySelector("video");
const texture = myDevice.importExternalTexture({
source: video,
colorSpace: "display-p3",
});
মেমরি হিপস তথ্য
আপনার অ্যাপ তৈরির সময় বড় পরিমাণে মেমরি বরাদ্দ করার ক্ষেত্রে মেমরির সীমাবদ্ধতা আগে থেকে অনুমান করতে সাহায্য করার জন্য, requestAdapterInfo() এখন অ্যাডাপ্টারে উপলব্ধ মেমরি হিপের আকার এবং প্রকারের মতো memoryHeaps তথ্য প্রকাশ করে। এই পরীক্ষামূলক ফিচারটি শুধুমাত্র তখনই ব্যবহার করা যাবে যখন chrome://flags/#enable-webgpu-developer-features এ থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করা থাকবে। নিম্নলিখিত উদাহরণ এবং dawn:2249 ইস্যুটি দেখুন।
const adapter = await navigator.gpu.requestAdapter();
const adapterInfo = await adapter.requestAdapterInfo();
for (const { size, properties } of adapterInfo.memoryHeaps) {
console.log(size); // memory heap size in bytes
if (properties & GPUHeapProperty.DEVICE_LOCAL) { /* ... */ }
if (properties & GPUHeapProperty.HOST_VISIBLE) { /* ... */ }
if (properties & GPUHeapProperty.HOST_COHERENT) { /* ... */ }
if (properties & GPUHeapProperty.HOST_UNCACHED) { /* ... */ }
if (properties & GPUHeapProperty.HOST_CACHED) { /* ... */ }
}

ভোরের আপডেট
WGSL ল্যাঙ্গুয়েজ ফিচারগুলো হ্যান্ডেল করার জন্য wgpu::Instance এ HasWGSLLanguageFeature এবং EnumerateWGSLLanguageFeatures মেথডগুলো যোগ করা হয়েছে। dawn:2260 ইস্যুটি দেখুন।
অ-প্রমিত wgpu::Feature::BufferMapExtendedUsages বৈশিষ্ট্যটি আপনাকে wgpu::BufferUsage::MapRead বা wgpu::BufferUsage::MapWrite এবং অন্য যেকোনো wgpu::BufferUsage ব্যবহার করে একটি GPU বাফার তৈরি করতে দেয়। নিম্নলিখিত উদাহরণ এবং dawn:2204 ইস্যুটি দেখুন।
wgpu::BufferDescriptor descriptor = {
.size = 128,
.usage = wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::Uniform
};
wgpu::Buffer uniformBuffer = device.CreateBuffer(&descriptor);
uniformBuffer.MapAsync(wgpu::MapMode::Write, 0, 128,
[](WGPUBufferMapAsyncStatus status, void* userdata)
{
wgpu::Buffer* buffer = static_cast<wgpu::Buffer*>(userdata);
memcpy(buffer->GetMappedRange(), data, sizeof(data));
},
&uniformBuffer);
নিম্নলিখিত বৈশিষ্ট্যগুলি নথিভুক্ত করা হয়েছে: অ্যাঙ্গেল টেক্সচার শেয়ারিং , ডি৩ডি১১ মাল্টিথ্রেড সুরক্ষিত , ইমপ্লিসিট ডিভাইস সিনক্রোনাইজেশন , নর্ম১৬ টেক্সচার ফরম্যাট , পাসের ভিতরে টাইমস্ট্যাম্প কোয়েরি , পিক্সেল লোকাল স্টোরেজ , শেডার বৈশিষ্ট্য এবং মাল্টি প্ল্যানার ফরম্যাট ।
ক্রোম টিম ডন-এর জন্য একটি অফিশিয়াল গিটহাব রিপোজিটরি তৈরি করেছে।
এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।
WebGPU-তে নতুন কী আছে
'What's New in WebGPU' সিরিজে যা যা আলোচনা করা হয়েছে, তার একটি তালিকা।
ক্রোম ১৫১-১৫২
ক্রোম ১৪৯-১৫০
ক্রোম ১৪৭-১৪৮
ক্রোম ১৪৬
- OpenGL ES 3.1-এ WebGPU সামঞ্জস্যপূর্ণ মোড সমর্থন করে
- ক্ষণস্থায়ী সংযুক্তি
- WGSL টেক্সচার_এবং_স্যাম্পলার_লেট এক্সটেনশন
- ভোরের আপডেট
ক্রোম ১৪৫
- WGSL উপগোষ্ঠী_একরূপতা সম্প্রসারণ
- ওয়ার্কারদের মধ্যে পরীক্ষামূলক সিঙ্ক্রোনাস বাফার ম্যাপিং
- ভোরের আপডেট
ক্রোম ১৪৪
- WGSL উপগোষ্ঠী_আইডি এক্সটেনশন
- WGSL uniform_buffer_standard_layout এক্সটেনশন
- লিনাক্সে ওয়েবজিপিইউ
- দ্রুততর writeBuffer এবং writeTexture
- ভোরের আপডেট
ক্রোম ১৪৩
ক্রোম ১৪২
ক্রোম ১৪১
- টিন্ট আইআর সম্পন্ন হয়েছে
- WGSL কম্পাইলারে পূর্ণসংখ্যার পরিসর বিশ্লেষণ
- ভুলকান ব্যাকএন্ডের জন্য SPIR-V 1.4 আপডেট
- ভোরের আপডেট
ক্রোম ১৪০
- ডিভাইস অ্যাডাপ্টার ব্যবহারের অনুরোধ করে।
- যেখানে টেক্সচার ভিউ ব্যবহৃত হয়, সেখানে টেক্সচার ব্যবহারের সংক্ষিপ্ত রূপ।
- WGSL textureSampleLevel 1D টেক্সচার সমর্থন করে
- bgra8unorm রিড-অনলি স্টোরেজ টেক্সচারের ব্যবহার অপ্রচলিত করুন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি সরান
- ভোরের আপডেট
ক্রোম ১৩৯
- BC এবং ASTC কম্প্রেসড ফরম্যাটের জন্য 3D টেক্সচার সাপোর্ট
- নতুন 'কোর-ফিচার-অ্যান্ড-লিমিটস' ফিচার
- WebGPU সামঞ্জস্য মোডের জন্য Origin ট্রায়াল
- ভোরের আপডেট
ক্রোম ১৩৮
- বাইন্ডিং রিসোর্স হিসেবে বাফার ব্যবহারের সংক্ষিপ্ত রূপ
- তৈরির সময় ম্যাপ করা বাফারগুলির আকারের প্রয়োজনীয়তা পরিবর্তিত হয়।
- সাম্প্রতিক জিপিইউগুলির জন্য স্থাপত্য প্রতিবেদন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি অপ্রচলিত করুন
- ভোরের আপডেট
ক্রোম ১৩৭
- এক্সটার্নাল টেক্সচার বাইন্ডিং এর জন্য টেক্সচার ভিউ ব্যবহার করুন
- অফসেট এবং আকার নির্দিষ্ট না করে বাফার কপি করা হয়
- WGSL workgroupUniformLoad অ্যাটমিকের পয়েন্টার ব্যবহার করে
- GPUAdapterInfo powerPreference অ্যাট্রিবিউট
- GPURequestAdapterOptions-এর compatibilityMode অ্যাট্রিবিউটটি মুছে ফেলুন
- ভোরের আপডেট
ক্রোম ১৩৬
- GPUAdapterInfo isFallbackAdapter অ্যাট্রিবিউট
- D3D12-এ শেডার কম্পাইলেশন সময়ের উন্নতি
- ক্যানভাসের ছবিগুলো সংরক্ষণ ও কপি করুন
- লিফট সামঞ্জস্য মোড সীমাবদ্ধতা
- ভোরের আপডেট
ক্রোম ১৩৫
- নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরির অনুমতি দিন
- ভিউপোর্টগুলিকে রেন্ডার টার্গেটের সীমানা ছাড়িয়ে প্রসারিত করার অনুমতি দিন
- অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্য মোডে আরও সহজে প্রবেশ করা যায়
- maxInterStageShaderComponents সীমা অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৪
- সাবগ্রুপের মাধ্যমে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন
- ফ্লোট ফিল্টারযোগ্য টেক্সচার প্রকারের সমর্থন ব্লেন্ডেবল হিসেবে অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৩
- অতিরিক্ত unorm8x4-bgra এবং 1-কম্পোনেন্ট ভার্টেক্স ফরম্যাট
- অনির্ধারিত মান দিয়ে অজানা সীমা অনুরোধ করার অনুমতি দিন।
- WGSL অ্যালাইনমেন্ট নিয়মের পরিবর্তন
- বর্জনের মাধ্যমে WGSL-এর কর্মক্ষমতা বৃদ্ধি
- বাহ্যিক টেক্সচারের জন্য VideoFrame displaySize ব্যবহার করুন
- `copyExternalImageToTexture` ব্যবহার করে ডিফল্ট ওরিয়েন্টেশন ছাড়া অন্য ওরিয়েন্টেশনের ছবি পরিচালনা করুন।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- featureLevel-এর সাথে সামঞ্জস্য মোড সক্রিয় করুন
- পরীক্ষামূলক উপগোষ্ঠীর বৈশিষ্ট্য পরিষ্করণ
- maxInterStageShaderComponents সীমা বাতিল করুন
- ভোরের আপডেট
ক্রোম ১৩২
- টেক্সচার ভিউ ব্যবহার
- ৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং
- GPUDevice অ্যাডাপ্টারইনফো অ্যাট্রিবিউট
- ভুল ফরম্যাটে ক্যানভাস কনটেক্সট কনফিগার করলে জাভাস্ক্রিপ্ট ত্রুটি দেখা দেয়।
- টেক্সচারের উপর ফিল্টারিং স্যাম্পলারের সীমাবদ্ধতা
- বর্ধিত উপগোষ্ঠী পরীক্ষা
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ১৬-বিট নর্মালাইজড টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১৩১
- WGSL-এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং রেখা প্রিমিটিভগুলিতে গভীরতার পক্ষপাত থাকা উচিত নয়।
- উপগোষ্ঠীগুলির জন্য অন্তর্ভুক্তিমূলক স্ক্যান অন্তর্নির্মিত ফাংশন
- মাল্টি-ড্র ইনডিরেক্টের জন্য পরীক্ষামূলক সমর্থন
- শেডার মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩০
- দ্বৈত উৎস মিশ্রণ
- মেটালে শেডার কম্পাইলেশন সময়ের উন্নতি
- GPUAdapter requestAdapterInfo() এর অপ্রচলিতকরণ
- ভোরের আপডেট
ক্রোম ১২৯
ক্রোম ১২৮
- উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
- লাইন এবং পয়েন্টের জন্য ডেপথ বায়াস সেট করা অপ্রচলিত।
- preventDefault ব্যবহার করলে ক্যাপচার না করা ত্রুটির DevTools সতর্কতা লুকান
- WGSL প্রথমে ইন্টারপোলেট স্যাম্পলিং করে এবং হয়
- ভোরের আপডেট
ক্রোম ১২৭
- অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য অ্যাট্রিবিউট
- ওয়েবঅ্যাসেম্বলি ইন্টারঅপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম ১২৬
- maxTextureArrayLayers সীমা বৃদ্ধি করুন
- ভলকান ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশন
- শেডার কম্পাইলেশন সময়ের উন্নতি
- জমা দেওয়া কমান্ড বাফারগুলি অবশ্যই অনন্য হতে হবে।
- ভোরের আপডেট
ক্রোম ১২৫
ক্রোম ১২৪
- পঠন-যোগ্য এবং পঠন-লিখনযোগ্য স্টোরেজ টেক্সচার
- পরিষেবা কর্মী এবং ভাগাভাগি কর্মীদের সমর্থন
- নতুন অ্যাডাপ্টার তথ্যের বৈশিষ্ট্য
- বাগ সংশোধন
- ভোরের আপডেট
ক্রোম ১২৩
- WGSL-এ DP4a-এর অন্তর্নির্মিত ফাংশনগুলির সমর্থন
- WGSL-এ অবাধ পয়েন্টার প্যারামিটার
- WGSL-এ কম্পোজিট ডি-রেফারেন্সিং-এর জন্য সিনট্যাক্স সুগার
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য পৃথক পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম ১২২
- কম্প্যাটিবিলিটি মোডের মাধ্যমে পরিধি প্রসারিত করুন (ফিচারটি নির্মাণাধীন)
- maxVertexAttributes সীমা বৃদ্ধি করুন
- ভোরের আপডেট
ক্রোম ১২১
- অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
- উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
- কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
- শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
- মেমরি হিপস তথ্য
- ভোরের আপডেট
ক্রোম ১২০
- WGSL-এ ১৬-বিট ফ্লোটিং-পয়েন্ট মানের জন্য সমর্থন
- সীমা ছাড়িয়ে যান
- গভীরতা-স্টেনসিল অবস্থার পরিবর্তন
- অ্যাডাপ্টার তথ্যের আপডেট
- টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন
- বসন্তকালীন পরিষ্কার-পরিচ্ছন্নতার বৈশিষ্ট্য
ক্রোম ১১৯
- ফিল্টারযোগ্য ৩২-বিট ফ্লোট টেক্সচার
- অগঠিত১০-১০-১০-২ শীর্ষবিন্দু বিন্যাস
- rgb10a2uint টেক্সচার ফরম্যাট
- ভোরের আপডেট
ক্রোম ১১৮
-
copyExternalImageToTexture()ফাংশনে HTMLImageElement এবং ImageData-এর সাপোর্ট - রিড-রাইট এবং রিড-অনলি স্টোরেজ টেক্সচারের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১১৭
- আনসেট ভার্টেক্স বাফার
- আনসেট বাইন্ড গ্রুপ
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলো নীরব করুন
- SPIR-V শেডার মডিউল তৈরির আপডেট
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ ক্যাশিং পাইপলাইন
- ভোরের আপডেট
ক্রোম ১১৬
- ওয়েবকোডেকস ইন্টিগ্রেশন
- GPUAdapter
requestDevice()দ্বারা ফেরত দেওয়া হারানো ডিভাইস -
importExternalTexture()কল করা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - স্পেক সঙ্গতি
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৫
- সমর্থিত WGSL ভাষা এক্সটেনশন
- Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন
- এসি পাওয়ারে ডিফল্টভাবে ডেডিকেটেড জিপিইউ পাওয়া যায়।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৪
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- অকনফিগার করা ক্যানভাসে getCurrentTexture() কল করলে InvalidStateError থ্রো করে।
- WGSL আপডেট
- ভোরের আপডেট
ক্রোম ১১৩
,অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
ক্রোম টিম আনন্দের সাথে জানাচ্ছে যে, কোয়ালকম এবং এআরএম জিপিইউ দ্বারা চালিত অ্যান্ড্রয়েড ১২ ও তার পরবর্তী সংস্করণের ডিভাইসগুলিতে ক্রোম ১২১-এ এখন থেকে ওয়েবজিপিইউ ডিফল্টরূপে সক্রিয় থাকবে।
অদূর ভবিষ্যতে অ্যান্ড্রয়েড ১১ চালিত ডিভাইস সহ আরও বিস্তৃত পরিসরের অ্যান্ড্রয়েড ডিভাইসে এর সমর্থন ধীরে ধীরে প্রসারিত হবে। বিভিন্ন হার্ডওয়্যার কনফিগারেশনে একটি নির্বিঘ্ন অভিজ্ঞতা নিশ্চিত করার জন্য এই সম্প্রসারণটি আরও পরীক্ষা এবং অপ্টিমাইজেশনের উপর নির্ভরশীল হবে। ইস্যু chromium:1497815 দেখুন।

উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
SM6+ গ্রাফিক্স হার্ডওয়্যারযুক্ত উইন্ডোজ D3D12 মেশিনে শেডার কম্পাইল করার জন্য ক্রোম এখন DXC (ডাইরেক্টএক্স কম্পাইলার)-এর শক্তি ব্যবহার করে। পূর্বে, উইন্ডোজে শেডার কম্পাইলেশনের জন্য WebGPU FXC (এফএক্স কম্পাইলার)-এর উপর নির্ভর করত। কার্যকরী হলেও, FXC-তে DXC-তে থাকা ফিচার সেট এবং পারফরম্যান্স অপটিমাইজেশনের অভাব ছিল।
প্রাথমিক পরীক্ষায় দেখা গেছে যে, FXC-এর তুলনায় DXC ব্যবহার করলে কম্পিউট শেডার কম্পাইলেশনের গতি গড়ে ২০% বৃদ্ধি পায়।
কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
টাইমস্ট্যাম্প কোয়েরির মাধ্যমে ওয়েবজিপিইউ অ্যাপ্লিকেশনগুলো নির্ভুলভাবে (ন্যানোসেকেন্ড পর্যন্ত) পরিমাপ করতে পারে যে, তাদের জিপিইউ কমান্ডগুলো কম্পিউট এবং রেন্ডার পাসগুলো সম্পাদন করতে ঠিক কতটা সময় নেয়। জিপিইউ ওয়ার্কলোডগুলোর পারফরম্যান্স এবং আচরণ সম্পর্কে ধারণা পেতে এগুলো ব্যাপকভাবে ব্যবহৃত হয়।
যখন কোনো GPUAdapter এ "timestamp-query" ফিচারটি উপলব্ধ থাকে, তখন আপনি নিম্নলিখিত কাজগুলো করতে পারবেন:
-
"timestamp-query"বৈশিষ্ট্যসহ একটিGPUDeviceজন্য অনুরোধ করুন। -
"timestamp"টাইপের একটিGPUQuerySetতৈরি করুন। -
GPUQuerySetএ টাইমস্ট্যাম্প মানগুলি কোথায় লিখতে হবে তা নির্ধারণ করতেGPUComputePassDescriptor.timestampWritesএবংGPURenderPassDescriptor.timestampWritesব্যবহার করুন। -
resolveQuerySet()ব্যবহার করে টাইমস্ট্যাম্প মানগুলিকে একটিGPUBufferএ রূপান্তর করুন। -
GPUBufferথেকে ফলাফলগুলো CPU-তে কপি করে টাইমস্ট্যাম্পের মানগুলো পুনরায় পড়ুন। - টাইমস্ট্যাম্প মানগুলিকে একটি
BigInt64Arrayহিসাবে ডিকোড করুন।
নিম্নলিখিত উদাহরণটি দেখুন এবং dawn:1800 ইস্যুটি করুন।
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("timestamp-query")) {
throw new Error("Timestamp query feature is not available");
}
// Explicitly request timestamp query feature.
const device = await adapter.requestDevice({
requiredFeatures: ["timestamp-query"],
});
const commandEncoder = device.createCommandEncoder();
// Create a GPUQuerySet which holds 2 timestamp query results: one for the
// beginning and one for the end of compute pass execution.
const querySet = device.createQuerySet({ type: "timestamp", count: 2 });
const timestampWrites = {
querySet,
beginningOfPassWriteIndex: 0, // Write timestamp in index 0 when pass begins.
endOfPassWriteIndex: 1, // Write timestamp in index 1 when pass ends.
};
const passEncoder = commandEncoder.beginComputePass({ timestampWrites });
// TODO: Set pipeline, bind group, and dispatch work to be performed.
passEncoder.end();
// Resolve timestamps in nanoseconds as a 64-bit unsigned integer into a GPUBuffer.
const size = 2 * BigInt64Array.BYTES_PER_ELEMENT;
const resolveBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.QUERY_RESOLVE | GPUBufferUsage.COPY_SRC,
});
commandEncoder.resolveQuerySet(querySet, 0, 2, resolveBuffer, 0);
// Read GPUBuffer memory.
const resultBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});
commandEncoder.copyBufferToBuffer(resolveBuffer, 0, resultBuffer, 0, size);
// Submit commands to the GPU.
device.queue.submit([commandEncoder.finish()]);
// Log compute pass duration in nanoseconds.
await resultBuffer.mapAsync(GPUMapMode.READ);
const times = new BigInt64Array(resultBuffer.getMappedRange());
console.log(`Compute pass duration: ${Number(times[1] - times[0])}ns`);
resultBuffer.unmap();
টাইমিং অ্যাটাকের উদ্বেগের কারণে, টাইমস্ট্যাম্প কোয়েরিগুলোকে ১০০ মাইক্রোসেকেন্ডের রেজোলিউশনে কোয়ান্টাইজ করা হয়, যা নির্ভুলতা এবং নিরাপত্তার মধ্যে একটি ভালো ভারসাম্য প্রদান করে। ক্রোম ব্রাউজারে, আপনার অ্যাপ তৈরির সময় chrome://flags/#enable-webgpu-developer-features লিঙ্কে থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করে আপনি টাইমস্ট্যাম্প কোয়ান্টাইজেশন নিষ্ক্রিয় করতে পারেন। আরও জানতে টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন দেখুন।
যেহেতু GPU মাঝেমধ্যে টাইমস্ট্যাম্প কাউন্টার রিসেট করতে পারে, যার ফলে টাইমস্ট্যাম্পগুলোর মধ্যে নেতিবাচক ডেল্টার মতো অপ্রত্যাশিত মান দেখা যেতে পারে, তাই আমি আপনাকে নিম্নলিখিত Compute Boids স্যাম্পলটিতে টাইমস্ট্যাম্প কোয়েরি সাপোর্ট যোগ করা গিট ডিফ পরিবর্তনগুলো দেখে নেওয়ার পরামর্শ দিচ্ছি।

শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
ডেভেলপার অভিজ্ঞতা উন্নত করার জন্য, এখন থেকে কম্পিউট বা রেন্ডার পাইপলাইন তৈরি করার সময় আপনি আপনার শেডার মডিউলের entryPoint বাদ দিতে পারেন। শেডার কোডে যদি শেডার স্টেজের জন্য কোনো স্বতন্ত্র এন্ট্রি পয়েন্ট খুঁজে না পাওয়া যায়, তাহলে একটি GPUValidationError দেখা দেবে। নিম্নলিখিত উদাহরণ এবং dawn:2254 ইস্যুটি দেখুন।
const code = `
@vertex fn vertexMain(@builtin(vertex_index) i : u32) ->
@builtin(position) vec4f {
const pos = array(vec2f(0, 1), vec2f(-1, -1), vec2f(1, -1));
return vec4f(pos[i], 0, 1);
}
@fragment fn fragmentMain() -> @location(0) vec4f {
return vec4f(1, 0, 0, 1);
}`;
const module = myDevice.createShaderModule({ code });
const format = navigator.gpu.getPreferredCanvasFormat();
const pipeline = await myDevice.createRenderPipelineAsync({
layout: "auto",
vertex: { module, entryPoint: "vertexMain" },
fragment: { module, entryPoint: "fragmentMain", targets: [{ format }] },
vertex: { module },
fragment: { module, targets: [{ format }] },
});
GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
এখন আপনি importExternalTexture() ব্যবহার করে HDR ভিডিও থেকে GPUExternalTexture ইম্পোর্ট করার সময় "display-p3" ডেস্টিনেশন কালার স্পেস সেট করতে পারবেন। WebGPU কীভাবে কালার স্পেস পরিচালনা করে তা দেখে নিন। নিম্নলিখিত উদাহরণ এবং chromium:1330250 ইস্যুটি দেখুন।
// Create texture from HDR video.
const video = document.querySelector("video");
const texture = myDevice.importExternalTexture({
source: video,
colorSpace: "display-p3",
});
মেমরি হিপস তথ্য
আপনার অ্যাপ তৈরির সময় বড় পরিমাণে মেমরি বরাদ্দ করার ক্ষেত্রে মেমরির সীমাবদ্ধতা আগে থেকে অনুমান করতে সাহায্য করার জন্য, requestAdapterInfo() এখন অ্যাডাপ্টারে উপলব্ধ মেমরি হিপের আকার এবং প্রকারের মতো memoryHeaps তথ্য প্রকাশ করে। এই পরীক্ষামূলক ফিচারটি শুধুমাত্র তখনই ব্যবহার করা যাবে যখন chrome://flags/#enable-webgpu-developer-features এ থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করা থাকবে। নিম্নলিখিত উদাহরণ এবং dawn:2249 ইস্যুটি দেখুন।
const adapter = await navigator.gpu.requestAdapter();
const adapterInfo = await adapter.requestAdapterInfo();
for (const { size, properties } of adapterInfo.memoryHeaps) {
console.log(size); // memory heap size in bytes
if (properties & GPUHeapProperty.DEVICE_LOCAL) { /* ... */ }
if (properties & GPUHeapProperty.HOST_VISIBLE) { /* ... */ }
if (properties & GPUHeapProperty.HOST_COHERENT) { /* ... */ }
if (properties & GPUHeapProperty.HOST_UNCACHED) { /* ... */ }
if (properties & GPUHeapProperty.HOST_CACHED) { /* ... */ }
}

ভোরের আপডেট
WGSL ল্যাঙ্গুয়েজ ফিচারগুলো হ্যান্ডেল করার জন্য wgpu::Instance এ HasWGSLLanguageFeature এবং EnumerateWGSLLanguageFeatures মেথডগুলো যোগ করা হয়েছে। dawn:2260 ইস্যুটি দেখুন।
অ-প্রমিত wgpu::Feature::BufferMapExtendedUsages বৈশিষ্ট্যটি আপনাকে wgpu::BufferUsage::MapRead বা wgpu::BufferUsage::MapWrite এবং অন্য যেকোনো wgpu::BufferUsage ব্যবহার করে একটি GPU বাফার তৈরি করতে দেয়। নিম্নলিখিত উদাহরণ এবং dawn:2204 ইস্যুটি দেখুন।
wgpu::BufferDescriptor descriptor = {
.size = 128,
.usage = wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::Uniform
};
wgpu::Buffer uniformBuffer = device.CreateBuffer(&descriptor);
uniformBuffer.MapAsync(wgpu::MapMode::Write, 0, 128,
[](WGPUBufferMapAsyncStatus status, void* userdata)
{
wgpu::Buffer* buffer = static_cast<wgpu::Buffer*>(userdata);
memcpy(buffer->GetMappedRange(), data, sizeof(data));
},
&uniformBuffer);
নিম্নলিখিত বৈশিষ্ট্যগুলি নথিভুক্ত করা হয়েছে: অ্যাঙ্গেল টেক্সচার শেয়ারিং , ডি৩ডি১১ মাল্টিথ্রেড সুরক্ষিত , ইমপ্লিসিট ডিভাইস সিনক্রোনাইজেশন , নর্ম১৬ টেক্সচার ফরম্যাট , পাসের ভিতরে টাইমস্ট্যাম্প কোয়েরি , পিক্সেল লোকাল স্টোরেজ , শেডার বৈশিষ্ট্য এবং মাল্টি প্ল্যানার ফরম্যাট ।
ক্রোম টিম ডন-এর জন্য একটি অফিশিয়াল গিটহাব রিপোজিটরি তৈরি করেছে।
এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।
WebGPU-তে নতুন কী আছে
'What's New in WebGPU' সিরিজে যা যা আলোচনা করা হয়েছে, তার একটি তালিকা।
ক্রোম ১৫১-১৫২
ক্রোম ১৪৯-১৫০
ক্রোম ১৪৭-১৪৮
ক্রোম ১৪৬
- OpenGL ES 3.1-এ WebGPU সামঞ্জস্যপূর্ণ মোড সমর্থন করে
- ক্ষণস্থায়ী সংযুক্তি
- WGSL টেক্সচার_এবং_স্যাম্পলার_লেট এক্সটেনশন
- ভোরের আপডেট
ক্রোম ১৪৫
- WGSL উপগোষ্ঠী_একরূপতা সম্প্রসারণ
- ওয়ার্কারদের মধ্যে পরীক্ষামূলক সিঙ্ক্রোনাস বাফার ম্যাপিং
- ভোরের আপডেট
ক্রোম ১৪৪
- WGSL উপগোষ্ঠী_আইডি এক্সটেনশন
- WGSL uniform_buffer_standard_layout এক্সটেনশন
- লিনাক্সে ওয়েবজিপিইউ
- দ্রুততর writeBuffer এবং writeTexture
- ভোরের আপডেট
ক্রোম ১৪৩
ক্রোম ১৪২
ক্রোম ১৪১
- টিন্ট আইআর সম্পন্ন হয়েছে
- WGSL কম্পাইলারে পূর্ণসংখ্যার পরিসর বিশ্লেষণ
- ভুলকান ব্যাকএন্ডের জন্য SPIR-V 1.4 আপডেট
- ভোরের আপডেট
ক্রোম ১৪০
- ডিভাইস অ্যাডাপ্টার ব্যবহারের অনুরোধ করে।
- যেখানে টেক্সচার ভিউ ব্যবহৃত হয়, সেখানে টেক্সচার ব্যবহারের সংক্ষিপ্ত রূপ।
- WGSL textureSampleLevel 1D টেক্সচার সমর্থন করে
- bgra8unorm রিড-অনলি স্টোরেজ টেক্সচারের ব্যবহার অপ্রচলিত করুন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি সরান
- ভোরের আপডেট
ক্রোম ১৩৯
- BC এবং ASTC কম্প্রেসড ফরম্যাটের জন্য 3D টেক্সচার সাপোর্ট
- নতুন 'কোর-ফিচার-অ্যান্ড-লিমিটস' ফিচার
- WebGPU সামঞ্জস্য মোডের জন্য Origin ট্রায়াল
- ভোরের আপডেট
ক্রোম ১৩৮
- বাইন্ডিং রিসোর্স হিসেবে বাফার ব্যবহারের সংক্ষিপ্ত রূপ
- তৈরির সময় ম্যাপ করা বাফারগুলির আকারের প্রয়োজনীয়তা পরিবর্তিত হয়।
- সাম্প্রতিক জিপিইউগুলির জন্য স্থাপত্য প্রতিবেদন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি অপ্রচলিত করুন
- ভোরের আপডেট
ক্রোম ১৩৭
- এক্সটার্নাল টেক্সচার বাইন্ডিং এর জন্য টেক্সচার ভিউ ব্যবহার করুন
- অফসেট এবং আকার নির্দিষ্ট না করে বাফার কপি করা হয়
- WGSL workgroupUniformLoad অ্যাটমিকের পয়েন্টার ব্যবহার করে
- GPUAdapterInfo powerPreference অ্যাট্রিবিউট
- GPURequestAdapterOptions-এর compatibilityMode অ্যাট্রিবিউটটি মুছে ফেলুন
- ভোরের আপডেট
ক্রোম ১৩৬
- GPUAdapterInfo isFallbackAdapter অ্যাট্রিবিউট
- D3D12-এ শেডার কম্পাইলেশন সময়ের উন্নতি
- ক্যানভাসের ছবিগুলো সংরক্ষণ ও কপি করুন
- লিফট সামঞ্জস্য মোড সীমাবদ্ধতা
- ভোরের আপডেট
ক্রোম ১৩৫
- নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরির অনুমতি দিন
- ভিউপোর্টগুলিকে রেন্ডার টার্গেটের সীমানা ছাড়িয়ে প্রসারিত করার অনুমতি দিন
- অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্য মোডে আরও সহজে প্রবেশ করা যায়
- maxInterStageShaderComponents সীমা অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৪
- সাবগ্রুপের মাধ্যমে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন
- ফ্লোট ফিল্টারযোগ্য টেক্সচার প্রকারের সমর্থন ব্লেন্ডেবল হিসেবে অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৩
- অতিরিক্ত unorm8x4-bgra এবং 1-কম্পোনেন্ট ভার্টেক্স ফরম্যাট
- অনির্ধারিত মান দিয়ে অজানা সীমা অনুরোধ করার অনুমতি দিন।
- WGSL অ্যালাইনমেন্ট নিয়মের পরিবর্তন
- বর্জনের মাধ্যমে WGSL-এর কর্মক্ষমতা বৃদ্ধি
- বাহ্যিক টেক্সচারের জন্য VideoFrame displaySize ব্যবহার করুন
- `copyExternalImageToTexture` ব্যবহার করে ডিফল্ট ওরিয়েন্টেশন ছাড়া অন্য ওরিয়েন্টেশনের ছবি পরিচালনা করুন।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- featureLevel-এর সাথে সামঞ্জস্য মোড সক্রিয় করুন
- পরীক্ষামূলক উপগোষ্ঠীর বৈশিষ্ট্য পরিষ্করণ
- maxInterStageShaderComponents সীমা বাতিল করুন
- ভোরের আপডেট
ক্রোম ১৩২
- টেক্সচার ভিউ ব্যবহার
- ৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং
- GPUDevice অ্যাডাপ্টারইনফো অ্যাট্রিবিউট
- ভুল ফরম্যাটে ক্যানভাস কনটেক্সট কনফিগার করলে জাভাস্ক্রিপ্ট ত্রুটি দেখা দেয়।
- টেক্সচারের উপর ফিল্টারিং স্যাম্পলারের সীমাবদ্ধতা
- বর্ধিত উপগোষ্ঠী পরীক্ষা
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ১৬-বিট নর্মালাইজড টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১৩১
- WGSL-এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং রেখা প্রিমিটিভগুলিতে গভীরতার পক্ষপাত থাকা উচিত নয়।
- উপগোষ্ঠীগুলির জন্য অন্তর্ভুক্তিমূলক স্ক্যান অন্তর্নির্মিত ফাংশন
- মাল্টি-ড্র ইনডিরেক্টের জন্য পরীক্ষামূলক সমর্থন
- শেডার মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩০
- দ্বৈত উৎস মিশ্রণ
- মেটালে শেডার কম্পাইলেশন সময়ের উন্নতি
- GPUAdapter requestAdapterInfo() এর অপ্রচলিতকরণ
- ভোরের আপডেট
ক্রোম ১২৯
ক্রোম ১২৮
- উপগোষ্ঠী নিয়ে পরীক্ষা-নিরীক্ষা
- লাইন এবং পয়েন্টের জন্য ডেপথ বায়াস সেট করা অপ্রচলিত।
- preventDefault ব্যবহার করলে ক্যাপচার না করা ত্রুটির DevTools সতর্কতা লুকান
- WGSL প্রথমে ইন্টারপোলেট স্যাম্পলিং করে এবং হয়
- ভোরের আপডেট
ক্রোম ১২৭
- অ্যান্ড্রয়েডে OpenGL ES-এর জন্য পরীক্ষামূলক সমর্থন
- GPUAdapter তথ্য অ্যাট্রিবিউট
- ওয়েবঅ্যাসেম্বলি ইন্টারঅপ উন্নতি
- উন্নত কমান্ড এনকোডার ত্রুটি
- ভোরের আপডেট
ক্রোম ১২৬
- maxTextureArrayLayers সীমা বৃদ্ধি করুন
- ভলকান ব্যাকএন্ডের জন্য বাফার আপলোড অপ্টিমাইজেশন
- শেডার কম্পাইলেশন সময়ের উন্নতি
- জমা দেওয়া কমান্ড বাফারগুলি অবশ্যই অনন্য হতে হবে।
- ভোরের আপডেট
ক্রোম ১২৫
ক্রোম ১২৪
- পঠন-যোগ্য এবং পঠন-লিখনযোগ্য স্টোরেজ টেক্সচার
- পরিষেবা কর্মী এবং ভাগাভাগি কর্মীদের সমর্থন
- নতুন অ্যাডাপ্টার তথ্যের বৈশিষ্ট্য
- বাগ সংশোধন
- ভোরের আপডেট
ক্রোম ১২৩
- WGSL-এ DP4a-এর অন্তর্নির্মিত ফাংশনগুলির সমর্থন
- WGSL-এ অবাধ পয়েন্টার প্যারামিটার
- WGSL-এ কম্পোজিট ডি-রেফারেন্সিং-এর জন্য সিনট্যাক্স সুগার
- স্টেনসিল এবং গভীরতার দিকগুলির জন্য পৃথক পঠনযোগ্য অবস্থা
- ভোরের আপডেট
ক্রোম ১২২
- কম্প্যাটিবিলিটি মোডের মাধ্যমে পরিধি প্রসারিত করুন (ফিচারটি নির্মাণাধীন)
- maxVertexAttributes সীমা বৃদ্ধি করুন
- ভোরের আপডেট
ক্রোম ১২১
- অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
- উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
- কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
- শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
- GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
- মেমরি হিপস তথ্য
- ভোরের আপডেট
ক্রোম ১২০
- WGSL-এ ১৬-বিট ফ্লোটিং-পয়েন্ট মানের জন্য সমর্থন
- সীমা ছাড়িয়ে যান
- গভীরতা-স্টেনসিল অবস্থার পরিবর্তন
- অ্যাডাপ্টার তথ্যের আপডেট
- টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন
- বসন্তকালীন পরিষ্কার-পরিচ্ছন্নতার বৈশিষ্ট্য
ক্রোম ১১৯
- ফিল্টারযোগ্য ৩২-বিট ফ্লোট টেক্সচার
- অগঠিত১০-১০-১০-২ শীর্ষবিন্দু বিন্যাস
- rgb10a2uint টেক্সচার ফরম্যাট
- ভোরের আপডেট
ক্রোম ১১৮
-
copyExternalImageToTexture()ফাংশনে HTMLImageElement এবং ImageData-এর সাপোর্ট - রিড-রাইট এবং রিড-অনলি স্টোরেজ টেক্সচারের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১১৭
- আনসেট ভার্টেক্স বাফার
- আনসেট বাইন্ড গ্রুপ
- ডিভাইস হারিয়ে গেলে অ্যাসিঙ্ক পাইপলাইন তৈরির ত্রুটিগুলো নীরব করুন
- SPIR-V শেডার মডিউল তৈরির আপডেট
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- স্বয়ংক্রিয়ভাবে তৈরি লেআউট সহ ক্যাশিং পাইপলাইন
- ভোরের আপডেট
ক্রোম ১১৬
- ওয়েবকোডেকস ইন্টিগ্রেশন
- GPUAdapter
requestDevice()দ্বারা ফেরত দেওয়া হারানো ডিভাইস -
importExternalTexture()কল করা হলে ভিডিও প্লেব্যাক মসৃণ রাখুন - স্পেক সঙ্গতি
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৫
- সমর্থিত WGSL ভাষা এক্সটেনশন
- Direct3D 11 এর জন্য পরীক্ষামূলক সমর্থন
- এসি পাওয়ারে ডিফল্টভাবে ডেডিকেটেড জিপিইউ পাওয়া যায়।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ভোরের আপডেট
ক্রোম ১১৪
- জাভাস্ক্রিপ্ট অপ্টিমাইজ করুন
- অকনফিগার করা ক্যানভাসে getCurrentTexture() কল করলে InvalidStateError থ্রো করে।
- WGSL আপডেট
- ভোরের আপডেট
ক্রোম ১১৩
,অ্যান্ড্রয়েডে ওয়েবজিপিইউ সমর্থন করুন
ক্রোম টিম আনন্দের সাথে জানাচ্ছে যে, কোয়ালকম এবং এআরএম জিপিইউ দ্বারা চালিত অ্যান্ড্রয়েড ১২ ও তার পরবর্তী সংস্করণের ডিভাইসগুলিতে ক্রোম ১২১-এ এখন থেকে ওয়েবজিপিইউ ডিফল্টরূপে সক্রিয় থাকবে।
অদূর ভবিষ্যতে অ্যান্ড্রয়েড ১১ চালিত ডিভাইস সহ আরও বিস্তৃত পরিসরের অ্যান্ড্রয়েড ডিভাইসে এর সমর্থন ধীরে ধীরে প্রসারিত হবে। বিভিন্ন হার্ডওয়্যার কনফিগারেশনে একটি নির্বিঘ্ন অভিজ্ঞতা নিশ্চিত করার জন্য এই সম্প্রসারণটি আরও পরীক্ষা এবং অপ্টিমাইজেশনের উপর নির্ভরশীল হবে। ইস্যু chromium:1497815 দেখুন।

উইন্ডোজে শেডার কম্পাইলেশনের জন্য FXC-এর পরিবর্তে DXC ব্যবহার করুন।
SM6+ গ্রাফিক্স হার্ডওয়্যারযুক্ত উইন্ডোজ D3D12 মেশিনে শেডার কম্পাইল করার জন্য ক্রোম এখন DXC (ডাইরেক্টএক্স কম্পাইলার)-এর শক্তি ব্যবহার করে। পূর্বে, উইন্ডোজে শেডার কম্পাইলেশনের জন্য WebGPU FXC (এফএক্স কম্পাইলার)-এর উপর নির্ভর করত। কার্যকরী হলেও, FXC-তে DXC-তে থাকা ফিচার সেট এবং পারফরম্যান্স অপটিমাইজেশনের অভাব ছিল।
প্রাথমিক পরীক্ষায় দেখা গেছে যে, FXC-এর তুলনায় DXC ব্যবহার করলে কম্পিউট শেডার কম্পাইলেশনের গতি গড়ে ২০% বৃদ্ধি পায়।
কম্পিউট এবং রেন্ডার পাসে টাইমস্ট্যাম্প কোয়েরি
টাইমস্ট্যাম্প কোয়েরির মাধ্যমে ওয়েবজিপিইউ অ্যাপ্লিকেশনগুলো নির্ভুলভাবে (ন্যানোসেকেন্ড পর্যন্ত) পরিমাপ করতে পারে যে, তাদের জিপিইউ কমান্ডগুলো কম্পিউট এবং রেন্ডার পাসগুলো সম্পাদন করতে ঠিক কতটা সময় নেয়। জিপিইউ ওয়ার্কলোডগুলোর পারফরম্যান্স এবং আচরণ সম্পর্কে ধারণা পেতে এগুলো ব্যাপকভাবে ব্যবহৃত হয়।
যখন কোনো GPUAdapter এ "timestamp-query" ফিচারটি উপলব্ধ থাকে, তখন আপনি নিম্নলিখিত কাজগুলো করতে পারবেন:
-
"timestamp-query"বৈশিষ্ট্যসহ একটিGPUDeviceজন্য অনুরোধ করুন। -
"timestamp"টাইপের একটিGPUQuerySetতৈরি করুন। -
GPUQuerySetএ টাইমস্ট্যাম্প মানগুলি কোথায় লিখতে হবে তা নির্ধারণ করতেGPUComputePassDescriptor.timestampWritesএবংGPURenderPassDescriptor.timestampWritesব্যবহার করুন। -
resolveQuerySet()ব্যবহার করে টাইমস্ট্যাম্প মানগুলিকে একটিGPUBufferএ রূপান্তর করুন। -
GPUBufferথেকে ফলাফলগুলো CPU-তে কপি করে টাইমস্ট্যাম্পের মানগুলো পুনরায় পড়ুন। - টাইমস্ট্যাম্প মানগুলিকে একটি
BigInt64Arrayহিসাবে ডিকোড করুন।
নিম্নলিখিত উদাহরণটি দেখুন এবং dawn:1800 ইস্যুটি করুন।
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("timestamp-query")) {
throw new Error("Timestamp query feature is not available");
}
// Explicitly request timestamp query feature.
const device = await adapter.requestDevice({
requiredFeatures: ["timestamp-query"],
});
const commandEncoder = device.createCommandEncoder();
// Create a GPUQuerySet which holds 2 timestamp query results: one for the
// beginning and one for the end of compute pass execution.
const querySet = device.createQuerySet({ type: "timestamp", count: 2 });
const timestampWrites = {
querySet,
beginningOfPassWriteIndex: 0, // Write timestamp in index 0 when pass begins.
endOfPassWriteIndex: 1, // Write timestamp in index 1 when pass ends.
};
const passEncoder = commandEncoder.beginComputePass({ timestampWrites });
// TODO: Set pipeline, bind group, and dispatch work to be performed.
passEncoder.end();
// Resolve timestamps in nanoseconds as a 64-bit unsigned integer into a GPUBuffer.
const size = 2 * BigInt64Array.BYTES_PER_ELEMENT;
const resolveBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.QUERY_RESOLVE | GPUBufferUsage.COPY_SRC,
});
commandEncoder.resolveQuerySet(querySet, 0, 2, resolveBuffer, 0);
// Read GPUBuffer memory.
const resultBuffer = device.createBuffer({
size,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});
commandEncoder.copyBufferToBuffer(resolveBuffer, 0, resultBuffer, 0, size);
// Submit commands to the GPU.
device.queue.submit([commandEncoder.finish()]);
// Log compute pass duration in nanoseconds.
await resultBuffer.mapAsync(GPUMapMode.READ);
const times = new BigInt64Array(resultBuffer.getMappedRange());
console.log(`Compute pass duration: ${Number(times[1] - times[0])}ns`);
resultBuffer.unmap();
টাইমিং অ্যাটাকের উদ্বেগের কারণে, টাইমস্ট্যাম্প কোয়েরিগুলোকে ১০০ মাইক্রোসেকেন্ডের রেজোলিউশনে কোয়ান্টাইজ করা হয়, যা নির্ভুলতা এবং নিরাপত্তার মধ্যে একটি ভালো ভারসাম্য প্রদান করে। ক্রোম ব্রাউজারে, আপনার অ্যাপ তৈরির সময় chrome://flags/#enable-webgpu-developer-features লিঙ্কে থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করে আপনি টাইমস্ট্যাম্প কোয়ান্টাইজেশন নিষ্ক্রিয় করতে পারেন। আরও জানতে টাইমস্ট্যাম্প কোয়েরি কোয়ান্টাইজেশন দেখুন।
যেহেতু GPU মাঝেমধ্যে টাইমস্ট্যাম্প কাউন্টার রিসেট করতে পারে, যার ফলে টাইমস্ট্যাম্পগুলোর মধ্যে নেতিবাচক ডেল্টার মতো অপ্রত্যাশিত মান দেখা যেতে পারে, তাই আমি আপনাকে নিম্নলিখিত Compute Boids স্যাম্পলটিতে টাইমস্ট্যাম্প কোয়েরি সাপোর্ট যোগ করা গিট ডিফ পরিবর্তনগুলো দেখে নেওয়ার পরামর্শ দিচ্ছি।

শেডার মডিউলগুলির ডিফল্ট এন্ট্রি পয়েন্ট
ডেভেলপার অভিজ্ঞতা উন্নত করার জন্য, এখন থেকে কম্পিউট বা রেন্ডার পাইপলাইন তৈরি করার সময় আপনি আপনার শেডার মডিউলের entryPoint বাদ দিতে পারেন। শেডার কোডে যদি শেডার স্টেজের জন্য কোনো স্বতন্ত্র এন্ট্রি পয়েন্ট খুঁজে না পাওয়া যায়, তাহলে একটি GPUValidationError দেখা দেবে। নিম্নলিখিত উদাহরণ এবং dawn:2254 ইস্যুটি দেখুন।
const code = `
@vertex fn vertexMain(@builtin(vertex_index) i : u32) ->
@builtin(position) vec4f {
const pos = array(vec2f(0, 1), vec2f(-1, -1), vec2f(1, -1));
return vec4f(pos[i], 0, 1);
}
@fragment fn fragmentMain() -> @location(0) vec4f {
return vec4f(1, 0, 0, 1);
}`;
const module = myDevice.createShaderModule({ code });
const format = navigator.gpu.getPreferredCanvasFormat();
const pipeline = await myDevice.createRenderPipelineAsync({
layout: "auto",
vertex: { module, entryPoint: "vertexMain" },
fragment: { module, entryPoint: "fragmentMain", targets: [{ format }] },
vertex: { module },
fragment: { module, targets: [{ format }] },
});
GPUExternalTexture কালার স্পেস হিসেবে display-p3 সমর্থন করে।
এখন আপনি importExternalTexture() ব্যবহার করে HDR ভিডিও থেকে GPUExternalTexture ইম্পোর্ট করার সময় "display-p3" ডেস্টিনেশন কালার স্পেস সেট করতে পারবেন। WebGPU কীভাবে কালার স্পেস পরিচালনা করে তা দেখে নিন। নিম্নলিখিত উদাহরণ এবং chromium:1330250 ইস্যুটি দেখুন।
// Create texture from HDR video.
const video = document.querySelector("video");
const texture = myDevice.importExternalTexture({
source: video,
colorSpace: "display-p3",
});
মেমরি হিপস তথ্য
আপনার অ্যাপ তৈরির সময় বড় পরিমাণে মেমরি বরাদ্দ করার ক্ষেত্রে মেমরির সীমাবদ্ধতা আগে থেকে অনুমান করতে সাহায্য করার জন্য, requestAdapterInfo() এখন অ্যাডাপ্টারে উপলব্ধ মেমরি হিপের আকার এবং প্রকারের মতো memoryHeaps তথ্য প্রকাশ করে। এই পরীক্ষামূলক ফিচারটি শুধুমাত্র তখনই ব্যবহার করা যাবে যখন chrome://flags/#enable-webgpu-developer-features এ থাকা "WebGPU Developer Features" ফ্ল্যাগটি সক্রিয় করা থাকবে। নিম্নলিখিত উদাহরণ এবং dawn:2249 ইস্যুটি দেখুন।
const adapter = await navigator.gpu.requestAdapter();
const adapterInfo = await adapter.requestAdapterInfo();
for (const { size, properties } of adapterInfo.memoryHeaps) {
console.log(size); // memory heap size in bytes
if (properties & GPUHeapProperty.DEVICE_LOCAL) { /* ... */ }
if (properties & GPUHeapProperty.HOST_VISIBLE) { /* ... */ }
if (properties & GPUHeapProperty.HOST_COHERENT) { /* ... */ }
if (properties & GPUHeapProperty.HOST_UNCACHED) { /* ... */ }
if (properties & GPUHeapProperty.HOST_CACHED) { /* ... */ }
}

ভোরের আপডেট
WGSL ল্যাঙ্গুয়েজ ফিচারগুলো হ্যান্ডেল করার জন্য wgpu::Instance এ HasWGSLLanguageFeature এবং EnumerateWGSLLanguageFeatures মেথডগুলো যোগ করা হয়েছে। dawn:2260 ইস্যুটি দেখুন।
অ-প্রমিত wgpu::Feature::BufferMapExtendedUsages বৈশিষ্ট্যটি আপনাকে wgpu::BufferUsage::MapRead বা wgpu::BufferUsage::MapWrite এবং অন্য যেকোনো wgpu::BufferUsage ব্যবহার করে একটি GPU বাফার তৈরি করতে দেয়। নিম্নলিখিত উদাহরণ এবং dawn:2204 ইস্যুটি দেখুন।
wgpu::BufferDescriptor descriptor = {
.size = 128,
.usage = wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::Uniform
};
wgpu::Buffer uniformBuffer = device.CreateBuffer(&descriptor);
uniformBuffer.MapAsync(wgpu::MapMode::Write, 0, 128,
[](WGPUBufferMapAsyncStatus status, void* userdata)
{
wgpu::Buffer* buffer = static_cast<wgpu::Buffer*>(userdata);
memcpy(buffer->GetMappedRange(), data, sizeof(data));
},
&uniformBuffer);
নিম্নলিখিত বৈশিষ্ট্যগুলি নথিভুক্ত করা হয়েছে: অ্যাঙ্গেল টেক্সচার শেয়ারিং , ডি৩ডি১১ মাল্টিথ্রেড সুরক্ষিত , ইমপ্লিসিট ডিভাইস সিনক্রোনাইজেশন , নর্ম১৬ টেক্সচার ফরম্যাট , পাসের ভিতরে টাইমস্ট্যাম্প কোয়েরি , পিক্সেল লোকাল স্টোরেজ , শেডার বৈশিষ্ট্য এবং মাল্টি প্ল্যানার ফরম্যাট ।
ক্রোম টিম ডন-এর জন্য একটি অফিশিয়াল গিটহাব রিপোজিটরি তৈরি করেছে।
এখানে কেবল কয়েকটি মূল বিষয় তুলে ধরা হয়েছে। কমিটগুলোর বিস্তারিত তালিকাটি দেখুন।
WebGPU-তে নতুন কী আছে
'What's New in WebGPU' সিরিজে যা যা আলোচনা করা হয়েছে, তার একটি তালিকা।
ক্রোম ১৫১-১৫২
ক্রোম ১৪৯-১৫০
ক্রোম ১৪৭-১৪৮
ক্রোম ১৪৬
- OpenGL ES 3.1-এ WebGPU সামঞ্জস্যপূর্ণ মোড সমর্থন করে
- ক্ষণস্থায়ী সংযুক্তি
- WGSL টেক্সচার_এবং_স্যাম্পলার_লেট এক্সটেনশন
- ভোরের আপডেট
ক্রোম ১৪৫
- WGSL উপগোষ্ঠী_একরূপতা সম্প্রসারণ
- ওয়ার্কারদের মধ্যে পরীক্ষামূলক সিঙ্ক্রোনাস বাফার ম্যাপিং
- ভোরের আপডেট
ক্রোম ১৪৪
- WGSL উপগোষ্ঠী_আইডি এক্সটেনশন
- WGSL uniform_buffer_standard_layout এক্সটেনশন
- লিনাক্সে ওয়েবজিপিইউ
- দ্রুততর writeBuffer এবং writeTexture
- ভোরের আপডেট
ক্রোম ১৪৩
ক্রোম ১৪২
ক্রোম ১৪১
- টিন্ট আইআর সম্পন্ন হয়েছে
- WGSL কম্পাইলারে পূর্ণসংখ্যার পরিসর বিশ্লেষণ
- ভুলকান ব্যাকএন্ডের জন্য SPIR-V 1.4 আপডেট
- ভোরের আপডেট
ক্রোম ১৪০
- ডিভাইস অ্যাডাপ্টার ব্যবহারের অনুরোধ করে।
- যেখানে টেক্সচার ভিউ ব্যবহৃত হয়, সেখানে টেক্সচার ব্যবহারের সংক্ষিপ্ত রূপ।
- WGSL textureSampleLevel 1D টেক্সচার সমর্থন করে
- bgra8unorm রিড-অনলি স্টোরেজ টেক্সচারের ব্যবহার অপ্রচলিত করুন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি সরান
- ভোরের আপডেট
ক্রোম ১৩৯
- BC এবং ASTC কম্প্রেসড ফরম্যাটের জন্য 3D টেক্সচার সাপোর্ট
- নতুন 'কোর-ফিচার-অ্যান্ড-লিমিটস' ফিচার
- WebGPU সামঞ্জস্য মোডের জন্য Origin ট্রায়াল
- ভোরের আপডেট
ক্রোম ১৩৮
- বাইন্ডিং রিসোর্স হিসেবে বাফার ব্যবহারের সংক্ষিপ্ত রূপ
- তৈরির সময় ম্যাপ করা বাফারগুলির আকারের প্রয়োজনীয়তা পরিবর্তিত হয়।
- সাম্প্রতিক জিপিইউগুলির জন্য স্থাপত্য প্রতিবেদন
- GPUAdapter isFallbackAdapter অ্যাট্রিবিউটটি অপ্রচলিত করুন
- ভোরের আপডেট
ক্রোম ১৩৭
- এক্সটার্নাল টেক্সচার বাইন্ডিং এর জন্য টেক্সচার ভিউ ব্যবহার করুন
- অফসেট এবং আকার নির্দিষ্ট না করে বাফার কপি করা হয়
- WGSL workgroupUniformLoad অ্যাটমিকের পয়েন্টার ব্যবহার করে
- GPUAdapterInfo powerPreference অ্যাট্রিবিউট
- GPURequestAdapterOptions-এর compatibilityMode অ্যাট্রিবিউটটি মুছে ফেলুন
- ভোরের আপডেট
ক্রোম ১৩৬
- GPUAdapterInfo isFallbackAdapter অ্যাট্রিবিউট
- D3D12-এ শেডার কম্পাইলেশন সময়ের উন্নতি
- ক্যানভাসের ছবিগুলো সংরক্ষণ ও কপি করুন
- লিফট সামঞ্জস্য মোড সীমাবদ্ধতা
- ভোরের আপডেট
ক্রোম ১৩৫
- নাল বাইন্ড গ্রুপ লেআউট সহ পাইপলাইন লেআউট তৈরির অনুমতি দিন
- ভিউপোর্টগুলিকে রেন্ডার টার্গেটের সীমানা ছাড়িয়ে প্রসারিত করার অনুমতি দিন
- অ্যান্ড্রয়েডে পরীক্ষামূলক সামঞ্জস্য মোডে আরও সহজে প্রবেশ করা যায়
- maxInterStageShaderComponents সীমা অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৪
- সাবগ্রুপের মাধ্যমে মেশিন-লার্নিং ওয়ার্কলোড উন্নত করুন
- ফ্লোট ফিল্টারযোগ্য টেক্সচার প্রকারের সমর্থন ব্লেন্ডেবল হিসেবে অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩৩
- অতিরিক্ত unorm8x4-bgra এবং 1-কম্পোনেন্ট ভার্টেক্স ফরম্যাট
- অনির্ধারিত মান দিয়ে অজানা সীমা অনুরোধ করার অনুমতি দিন।
- WGSL অ্যালাইনমেন্ট নিয়মের পরিবর্তন
- বর্জনের মাধ্যমে WGSL-এর কর্মক্ষমতা বৃদ্ধি
- বাহ্যিক টেক্সচারের জন্য VideoFrame displaySize ব্যবহার করুন
- `copyExternalImageToTexture` ব্যবহার করে ডিফল্ট ওরিয়েন্টেশন ছাড়া অন্য ওরিয়েন্টেশনের ছবি পরিচালনা করুন।
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- featureLevel-এর সাথে সামঞ্জস্য মোড সক্রিয় করুন
- পরীক্ষামূলক উপগোষ্ঠীর বৈশিষ্ট্য পরিষ্করণ
- maxInterStageShaderComponents সীমা বাতিল করুন
- ভোরের আপডেট
ক্রোম ১৩২
- টেক্সচার ভিউ ব্যবহার
- ৩২-বিট ফ্লোট টেক্সচার ব্লেন্ডিং
- GPUDevice অ্যাডাপ্টারইনফো অ্যাট্রিবিউট
- ভুল ফরম্যাটে ক্যানভাস কনটেক্সট কনফিগার করলে জাভাস্ক্রিপ্ট ত্রুটি দেখা দেয়।
- টেক্সচারের উপর ফিল্টারিং স্যাম্পলারের সীমাবদ্ধতা
- বর্ধিত উপগোষ্ঠী পরীক্ষা
- ডেভেলপারদের অভিজ্ঞতা উন্নত করা
- ১৬-বিট নর্মালাইজড টেক্সচার ফরম্যাটের জন্য পরীক্ষামূলক সমর্থন
- ভোরের আপডেট
ক্রোম ১৩১
- WGSL-এ ক্লিপ দূরত্ব
- GPUCanvasContext getConfiguration()
- বিন্দু এবং রেখা প্রিমিটিভগুলিতে গভীরতার পক্ষপাত থাকা উচিত নয়।
- উপগোষ্ঠীগুলির জন্য অন্তর্ভুক্তিমূলক স্ক্যান অন্তর্নির্মিত ফাংশন
- মাল্টি-ড্র ইনডিরেক্টের জন্য পরীক্ষামূলক সমর্থন
- শেডার মডিউল সংকলন বিকল্প কঠোর গণিত
- GPUAdapter requestAdapterInfo() অপসারণ করুন
- ভোরের আপডেট
ক্রোম ১৩০
- দ্বৈত উৎস মিশ্রণ
- মেটালে শেডার কম্পাইলেশন সময়ের উন্নতি
- Deprecation of GPUAdapter requestAdapterInfo()
- Dawn updates
Chrome 129
Chrome 128
- Experimenting with subgroups
- Deprecate setting depth bias for lines and points
- Hide uncaptured error DevTools warning if preventDefault
- WGSL interpolate sampling first and either
- Dawn updates
Chrome 127
- Experimental support for OpenGL ES on Android
- GPUAdapter info attribute
- WebAssembly interop improvements
- Improved command encoder errors
- Dawn updates
Chrome 126
- Increase maxTextureArrayLayers limit
- Buffer upload optimization for Vulkan backend
- Shader compilation time improvements
- Submitted command buffers must be unique
- Dawn updates
Chrome 125
Chrome 124
- Read-only and read-write storage textures
- Service workers and shared workers support
- New adapter information attributes
- বাগ সংশোধন
- Dawn updates
Chrome 123
- DP4a built-in functions support in WGSL
- Unrestricted pointer parameters in WGSL
- Syntax sugar for dereferencing composites in WGSL
- Separate read-only state for stencil and depth aspects
- Dawn updates
Chrome 122
- Expand reach with compatibility mode (feature in development)
- Increase maxVertexAttributes limit
- Dawn updates
Chrome 121
- Support WebGPU on Android
- Use DXC instead of FXC for shader compilation on Windows
- Timestamp queries in compute and render passes
- Default entry points to shader modules
- Support display-p3 as GPUExternalTexture color space
- Memory heaps info
- Dawn updates
Chrome 120
- Support for 16-bit floating-point values in WGSL
- Push the limits
- Changes to depth-stencil state
- Adapter information updates
- Timestamp queries quantization
- Spring-cleaning features
Chrome 119
- Filterable 32-bit float textures
- unorm10-10-10-2 vertex format
- rgb10a2uint texture format
- Dawn updates
Chrome 118
- HTMLImageElement and ImageData support in
copyExternalImageToTexture() - Experimental support for read-write and read-only storage texture
- Dawn updates
Chrome 117
- Unset vertex buffer
- Unset bind group
- Silence errors from async pipeline creation when device is lost
- SPIR-V shader module creation updates
- Improving developer experience
- Caching pipelines with automatically generated layout
- Dawn updates
Chrome 116
- WebCodecs integration
- Lost device returned by GPUAdapter
requestDevice() - Keep video playback smooth if
importExternalTexture()is called - Spec conformance
- Improving developer experience
- Dawn updates
Chrome 115
- Supported WGSL language extensions
- Experimental support for Direct3D 11
- Get discrete GPU by default on AC power
- Improving developer experience
- Dawn updates
Chrome 114
- Optimize JavaScript
- getCurrentTexture() on unconfigured canvas throws InvalidStateError
- WGSL updates
- Dawn updates