ক্যানভাস টোন ম্যাপিং মোড সহ HDR সমর্থন
ওয়েব ডেভেলপারদের সীমিত বিকল্প আছে HDR সামগ্রী সরবরাহ করার জন্য, প্রাথমিকভাবে <img>
এবং <video>
উপাদানগুলির উপর নির্ভর করে। <canvas>
উপাদান, তবে, এসডিআর-এ সীমাবদ্ধ থাকে। একটি ক্যানভাসের মধ্যে গতিশীল এইচডিআর সামগ্রী তৈরি করার জন্য এটি প্রদর্শন করার আগে এটির বিষয়বস্তুগুলিকে একটি HDR চিত্র হিসাবে এনকোড করা প্রয়োজন (উদাহরণস্বরূপ এই ডেমোটি দেখুন)।
WebGPU ক্যানভাস কনফিগারেশনের নতুন GPUCanvasToneMappingMode
প্যারামিটার এখন WebGPU-কে সাদা ( #FFFFFF
) থেকে উজ্জ্বল রং আঁকতে দেয়। এটি নিম্নলিখিত মোডগুলির মাধ্যমে এটি করে:
"standard"
: ডিফল্ট আচরণ স্ক্রীনের SDR পরিসরে বিষয়বস্তুকে সীমাবদ্ধ করে। এই মোডটি স্ক্রিনের রঙের স্থানের সমস্ত রঙের মানগুলিকে[0, 1]
ব্যবধানে আটকে দিয়ে সম্পন্ন করা হয়।"extended"
: স্ক্রিনের সম্পূর্ণ HDR পরিসর আনলক করে। এই মোডটি স্ক্রিনের[0, 1]
পরিসরে"standard"
সাথে মেলে। ক্ল্যাম্পিং বা প্রজেকশন স্ক্রিনের বর্ধিত গতিশীল পরিসরে করা হয় কিন্তু[0, 1]
নয়।
নিম্নলিখিত কোড স্নিপেট আপনাকে উচ্চ গতিশীল পরিসরের জন্য একটি ক্যানভাস কনফিগার করতে দেখায়।
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const canvas = document.querySelector("canvas");
const context = canvas.getContext("webgpu");
context.configure({
device,
format: "rgba16float",
toneMapping: { mode: "extended" },
});
কণা (HDR) নমুনা এবং WebGPU HDR উদাহরণ পরীক্ষা করে WebGPU দিয়ে HDR অন্বেষণ করুন এবং ক্রোমেস্ট্যাটাস এন্ট্রি দেখুন।
প্রসারিত সাবগ্রুপ সমর্থন
সাবগ্রুপ পরীক্ষা-নিরীক্ষার ঘোষণার পর, সাবগ্রুপ বিল্ট-ইন ফাংশনগুলি এখন কম্পিউট শেডার এবং ফ্র্যাগমেন্ট শেডার উভয় ক্ষেত্রেই ব্যবহারের জন্য উপলব্ধ। তারা আর শুধু গণনা শেডারে সীমাবদ্ধ নয়। সংখ্যা 354738715 দেখুন।
মনে রাখবেন যে subgroup_size
অন্তর্নির্মিত মান বর্তমানে খণ্ড শেডারে বগি । আপাতত এড়িয়ে চলুন।
উপরন্তু, নিম্নলিখিত সাবগ্রুপ বিল্ট-ইন ফাংশন যোগ করা হয়েছে:
-
subgroupAdd(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আহ্বানেরvalue
সমষ্টি প্রদান করে। -
subgroupExclusiveAdd(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আহ্বানেরvalue
একচেটিয়া স্ক্যান সমষ্টি প্রদান করে। -
subgroupMul(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আমন্ত্রণvalue
গুন দেখায়। -
subgroupExclusiveMul(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আহ্বানেরvalue
একচেটিয়া স্ক্যান গুণিতক প্রদান করে। -
subgroupAnd(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আহবানেরvalue
বাইনারি AND ফেরত দেয়। -
subgroupOr(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আমন্ত্রণvalue
বাইনারি OR প্রদান করে। -
subgroupXor(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আমন্ত্রণvalue
বাইনারি XOR প্রদান করে। -
subgroupMin(value)
: সাবগ্রুপ জুড়ে সমস্ত সক্রিয় আহ্বানেরvalue
ন্যূনতম মান প্রদান করে। -
subgroupMax(value)
: উপগোষ্ঠী জুড়ে সমস্ত সক্রিয় আহ্বানেরvalue
সর্বাধিক মান প্রদান করে। -
subgroupAll(value)
: সাবগ্রুপের সমস্ত সক্রিয় আহ্বানের জন্যvalue
সত্য হলে সত্য প্রদান করে। -
subgroupAny(value)
: সাবগ্রুপের যেকোন সক্রিয় আহ্বানের জন্যvalue
সত্য হলে সত্য প্রদান করে। -
subgroupElect()
: সাবগ্রুপে সক্রিয় আমন্ত্রণগুলির মধ্যে এই আহ্বানের সর্বনিম্নsubgroup_invocation_id
থাকলে সত্য ফেরত দেয়। -
subgroupBroadcastFirst(value)
: সাবগ্রুপের সর্বনিম্নsubgroup_invocation_id
সহ সক্রিয় আমন্ত্রণ থেকে অন্য সমস্ত সক্রিয় আহ্বানে সম্প্রচারিতvalue
। -
subgroupShuffle(value, id)
: সক্রিয় আমন্ত্রণ থেকেvalue
প্রদান করে যারsubgroup_invocation_id
id
মেলে। -
subgroupShuffleXor(value, mask)
: সক্রিয় আমন্ত্রণ থেকেvalue
প্রদান করে যারsubgroup_invocation_id
subgroup_invocation_id ^ mask
সাথে মেলে।mask
গতিশীলভাবে অভিন্ন হতে হবে। -
subgroupShuffleUp(value, delta)
: সক্রিয় আহ্বান থেকেvalue
ফেরত দেয় যারsubgroup_invocation_id
subgroup_invocation_id - delta
সাথে মেলে। -
subgroupShuffleDown(value, delta)
: সক্রিয় আমন্ত্রণ থেকেvalue
প্রদান করে যারsubgroup_invocation_id
এর সাথেsubgroup_invocation_id + delta
মেলে। -
quadBroadcast(value, id)
: id এর সমানid
সহ কোয়াড আমন্ত্রণ থেকে সম্প্রচারেরvalue
।id
অবশ্যই একটি ধ্রুবক-প্রকাশ্য হতে হবে। -
quadSwapX(value)
: X দিকের চতুর্ভুজের আমন্ত্রণের মধ্যেvalue
অদলবদল করে। -
quadSwapY(value)
: ওয়াই দিকের চতুর্ভুজে আহ্বানের মধ্যেvalue
অদলবদল করে। -
quadSwapDiagonal(value)
: চতুর্ভুজ তির্যকভাবে আমন্ত্রণের মধ্যেvalue
অদলবদল করে।
ভোরের আপডেট
wgpu::PrimitiveState
struct এখন সরাসরি গভীরতা ক্লিপ নিয়ন্ত্রণ সেটিং অন্তর্ভুক্ত করে, একটি পৃথক wgpu::PrimitiveDepthClipControl
স্ট্রাকটের প্রয়োজনীয়তা দূর করে। আরও জানতে, নিম্নলিখিত কোড স্নিপেট এবং webgpu-হেডার PR দেখুন।
// Before
wgpu::PrimitiveState primitive = {};
wgpu::PrimitiveDepthClipControl depthClipControl;
depthClipControl.unclippedDepth = true;
primitive.nextInChain = &depthClipControl;
// Now
wgpu::PrimitiveState primitive = {};
primitive.unclippedDepth = true;
এটি শুধুমাত্র কিছু মূল হাইলাইট কভার করে। কমিটের সম্পূর্ণ তালিকা দেখুন।
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 আপডেট
- ভোরের আপডেট