Published: January 7, 2026
افزونهی زیرگروه_id در WGSL
افزونهی زبان WGSL subgroup_id به شما امکان میدهد در صورت فعال بودن افزونهی subgroups ، از مقادیر داخلی جدید زیر در گروههای کاری استفاده کنید:
-
subgroup_id: شناسه زیرگروه یک فراخوانی را در گروه کاری فعلی ارائه میدهد. -
num_subgroups: تعداد زیرگروههای موجود در گروه کاری را گزارش میدهد.
پیش از این، برای فهرستبندی حافظه با استفاده از شناسههای فراخوانی زیرگروه، شما مجبور بودید یک شناسه زیرگروه (معمولاً از طریق عملیات اتمی ) را بازسازی کنید تا از همپوشانی دسترسیهای حافظه جلوگیری شود. اکنون میتوانید subgroup_id برای پر کردن نیمه دیگر آن معادله استفاده کنید. از آنجا که این قابلیت هنوز در بکاند D3D در دسترس نیست، در آنجا شبیهسازی میشود. ایجاد یک معادل برای local_invocation_index به صورت subgroup_invocation_id + subgroup_size * subgroup_id باید ایمن باشد. توجه داشته باشید که ممکن است مواردی وجود داشته باشد که زیرگروهها پر نباشند.
این افزونه زبان را میتوان با استفاده از navigator.gpu.wgslLanguageFeatures شناسایی کرد. توصیه میشود از یک دستورالعمل require-برای نشان دادن احتمال عدم قابلیت حمل با requires subgroup_id; در بالای کد سایهزن WGSL خود استفاده کنید. به مثال زیر و intent to ship مراجعه کنید.
if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_id")) {
throw new Error(`WGSL subgroup_id and num_subgroups built-in values are not available`);
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });
const shaderModule = device.createShaderModule({ code: `
enable subgroups;
requires subgroup_id;
@compute @workgroup_size(64, 1, 1)
fn main(@builtin(subgroup_id) subgroup_id : u32,
@builtin(num_subgroups) num_subgroups : u32) {
// TODO: Use subgroup_id and num_subgroups values.
}`,
});
WGSL uniform_buffer_standard_layout extension
افزونهی زبان WGSL uniform_buffer_standard_layout به بافرهای uniform اجازه میدهد از همان محدودیتهای طرحبندی حافظه مانند بافرهای ذخیرهسازی استفاده کنند، که اشتراکگذاری ساختارهای داده را در هر دو نوع بافر آسانتر میکند. این بدان معناست که بافرهای uniform دیگر نیازی به ترازبندی ۱۶ بایتی روی عناصر آرایه یا قرار دادن آفستهای ساختارهای تو در تو در مضربی از ۱۶ بایت ندارند.
این افزونهی زبان را میتوان با استفاده از navigator.gpu.wgslLanguageFeatures شناسایی کرد. توصیه میشود از یک دستورالعمل requires برای نشان دادن احتمال عدم قابلیت حمل با requires uniform_buffer_standard_layout; در بالای کد سایهزن WGSL خود استفاده کنید. به مثال زیر و intent to ship مراجعه کنید.
if (!navigator.gpu.wgslLanguageFeatures.has("uniform_buffer_standard_layout")) {
throw new Error(`WGSL uniform buffer standard layout is not available`);
}
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const shaderModule = device.createShaderModule({ code: `
requires uniform_buffer_standard_layout;
struct S {
x: f32
}
struct Uniforms {
a: S,
b: f32
// b is at offset 4. Without standard layout, alignment rules would
// force b to be at offset 16 (or a multiple of 16), and you would have
// to add extra fields or use an @align attribute.
}
@group(0) @binding(0) var<uniform> u: Uniforms;
@fragment fn fs_main() -> @location(0) vec4<f32> {
return vec4<f32>(u.a.x);
}`,
});
WebGPU on Linux
تیم کروم با دقت در حال ارائه WebGPU برای لینوکس است و با پشتیبانی از پردازندههای گرافیکی نسل ۱۲+ اینتل شروع میکند، اما برنامهای آزمایشی برای گسترش آن به دستگاههای بیشتر (AMD، NVIDIA) دارد. این پیادهسازی از معماریای استفاده میکند که در آن WebGPU از Vulkan استفاده میکند و بقیه کرومیوم با استفاده از مسیرهای کد خوب و شناختهشده موجود، روی OpenGL باقی میماند. به شماره ۴۴۲۷۹۱۴۴۰ مراجعه کنید.
نوشتن بافر و نوشتن بافت سریعتر
writeBuffer() و writeTexture() در کروم بهینه شدهاند که منجر به افزایش عملکرد تا ۲ برابر بهتر از نسخه قبلی، بسته به اندازه دادههای منتقل شده، میشود. این تغییر بر همه کاربران پیادهسازی Dawn Wire نیز تأثیر میگذارد. به شماره ۴۴۱۹۰۰۷۴۵ مراجعه کنید.
Dawn updates
تیم Android GPU اولین نسخه آلفا از اتصالات Kotlin برای WebGPU در اندروید را که با استفاده از Jetpack در دسترس است، منتشر کرده است. بسته androidx.webgpu به توسعهدهندگان اندروید امکان دسترسی به یک API GPU مدرن با استفاده از Kotlin را میدهد و مشکلات قدیمی OpenGL یا پیچیدگی Vulkan را دور میزند - یک توسعه هیجانانگیز برای اکوسیستم!
این فقط برخی از نکات برجسته کلیدی را پوشش میدهد. لیست جامع کامیتها را بررسی کنید.
What's New in WebGPU
فهرستی از تمام مواردی که در مجموعه «ویژگیهای جدید WebGPU» پوشش داده شده است.
کروم ۱۴۴
- WGSL subgroup_id extension
- WGSL uniform_buffer_standard_layout extension
- وبجیپییو در لینوکس
- نوشتن بافر و نوشتن بافت سریعتر
- بهروزرسانیهای سپیدهدم
کروم ۱۴۳
Chrome 142
Chrome 141
- رنگ IR تکمیل شد
- تحلیل محدوده اعداد صحیح در کامپایلر WGSL
- بهروزرسانی SPIR-V 1.4 برای رابط کاربری Vulkan
- بهروزرسانیهای سپیدهدم
کروم ۱۴۰
- درخواستهای دستگاه، آداپتور را مصرف میکنند
- اختصار برای استفاده از بافت در جایی که از نمای بافت استفاده میشود
- WGSL textureSampleLevel از بافتهای تکبعدی پشتیبانی میکند.
- استفاده از بافت ذخیرهسازی فقط خواندنی bgra8unorm را منسوخ کنید
- ویژگی isFallbackAdapter مربوط به GPUAdapter را حذف کنید
- بهروزرسانیهای سپیدهدم
کروم ۱۳۹
- پشتیبانی از بافت سهبعدی برای فرمتهای فشرده BC و ASTC
- ویژگی جدید «ویژگیهای اصلی و محدودیتها»
- نسخه آزمایشی Origin برای حالت سازگاری با WebGPU
- بهروزرسانیهای سپیدهدم
کروم ۱۳۸
- مختصر نویسی برای استفاده از بافر به عنوان منبع اتصال
- تغییرات اندازه مورد نیاز برای بافرهای نگاشت شده در زمان ایجاد
- گزارش معماری برای پردازندههای گرافیکی اخیر
- منسوخ کردن ویژگی isFallbackAdapter در GPUAdapter
- بهروزرسانیهای سپیدهدم
کروم ۱۳۷
- استفاده از نمای بافت برای اتصال خارجی بافت
- بافرها بدون مشخص کردن آفستها و اندازه، کپی میکنند
- بارگذاری یکنواخت گروه کاری WGSL با استفاده از اشارهگر به اتمی
- ویژگی powerPreference آداپتور GPU
- ویژگی سازگاری GPURequestAdapterOptions را حذف کنید.
- بهروزرسانیهای سپیدهدم
کروم ۱۳۶
- GPUAdapterInfo ویژگی آداپتور برگشتی است
- بهبود زمان کامپایل شیدر در D3D12
- تصاویر بوم را ذخیره و کپی کنید
- محدودیتهای حالت سازگاری را بردارید
- بهروزرسانیهای سپیدهدم
کروم ۱۳۵
- اجازه ایجاد طرح خط لوله با طرح گروه اتصال تهی
- اجازه دهید نماها از مرزهای اهداف رندر فراتر روند
- دسترسی آسانتر به حالت سازگاری آزمایشی در اندروید
- حذف محدودیت maxInterStageShaderComponents
- بهروزرسانیهای سپیدهدم
کروم ۱۳۴
- بهبود حجم کار یادگیری ماشین با زیرگروهها
- حذف پشتیبانی از انواع بافتهای قابل فیلتر شدن با شناور به عنوان بافتهای قابل ترکیب
- بهروزرسانیهای سپیدهدم
کروم ۱۳۳
- فرمتهای رأس اضافی unorm8x4-bgra و 1-component
- اجازه دهید محدودیتهای ناشناخته با مقدار نامشخص درخواست شوند
- تغییرات قوانین ترازبندی WGSL
- افزایش عملکرد WGSL با حذف
- استفاده از VideoFrame displaySize برای بافتهای خارجی
- مدیریت تصاویر با جهتهای غیر پیشفرض با استفاده از copyExternalImageToTexture
- بهبود تجربه توسعهدهنده
- فعال کردن حالت سازگاری با featureLevel
- پاکسازی ویژگیهای زیرگروه آزمایشی
- محدودیت maxInterStageShaderComponents را منسوخ کنید
- بهروزرسانیهای سپیدهدم
کروم ۱۳۲
- استفاده از نمای بافت
- ترکیب بافتهای شناور ۳۲ بیتی
- ویژگی اطلاعات آداپتور GPUDevice
- پیکربندی زمینه بوم با قالب نامعتبر، خطای جاوا اسکریپت ایجاد میکند
- فیلتر کردن محدودیتهای نمونهبرداری روی بافتها
- آزمایش زیرگروههای توسعهیافته
- بهبود تجربه توسعهدهنده
- پشتیبانی آزمایشی از فرمتهای بافت نرمالشدهی ۱۶ بیتی
- بهروزرسانیهای سپیدهدم
کروم ۱۳۱
- فواصل برش در WGSL
- تابع ()GPUCanvasContext getConfiguration
- اشکال هندسی اولیه نقطه و خط نباید دارای بایاس عمق باشند.
- توابع داخلی اسکن فراگیر برای زیرگروهها
- پشتیبانی آزمایشی از چند ترسیم غیرمستقیم
- گزینه کامپایل ماژول شیدر با محاسبات دقیق
- حذف تابع requestAdapterInfo() در کارت گرافیک GPUAdapter
- بهروزرسانیهای سپیدهدم
کروم ۱۳۰
- ترکیب دو منبعی
- بهبود زمان کامپایل شیدر در Metal
- منسوخ شدن تابع GPUAdapter requestAdapterInfo()
- بهروزرسانیهای سپیدهدم
کروم ۱۲۹
کروم ۱۲۸
- آزمایش با زیرگروهها
- منسوخ کردن تنظیم بایاس عمق برای خطوط و نقاط
- اگر preventDefault خطای ضبط نشده را پنهان کنید، هشدار DevTools
- ابتدا نمونهبرداری درونیابی WGSL و یا
- بهروزرسانیهای سپیدهدم
کروم ۱۲۷
- پشتیبانی آزمایشی از OpenGL ES در اندروید
- ویژگی اطلاعات GPUAdapter
- بهبودهای تعامل وباسمبلی
- بهبود خطاهای انکودر فرمان
- بهروزرسانیهای سپیدهدم
کروم ۱۲۶
- افزایش محدودیت maxTextureArrayLayers
- بهینهسازی آپلود بافر برای بکاند ولکان
- بهبود زمان کامپایل سایهزن
- بافرهای دستور ارسالی باید منحصر به فرد باشند
- بهروزرسانیهای سپیدهدم
کروم ۱۲۵
کروم ۱۲۴
- بافتهای ذخیرهسازی فقط خواندنی و خواندنی-نوشتنی
- پشتیبانی از کارگران خدماتی و کارگران اشتراکی
- ویژگیهای اطلاعات آداپتور جدید
- رفع اشکالات
- بهروزرسانیهای سپیدهدم
کروم ۱۲۳
- پشتیبانی از توابع داخلی DP4a در WGSL
- پارامترهای اشارهگر بدون محدودیت در WGSL
- شکر نحوی برای ارجاعزدایی از ترکیبات در WGSL
- حالت فقط خواندنی جداگانه برای استنسیل و جنبههای عمق
- بهروزرسانیهای سپیدهدم
کروم ۱۲۲
- گسترش دسترسی با حالت سازگاری (ویژگی در حال توسعه)
- افزایش محدودیت maxVertexAttributes
- بهروزرسانیهای سپیدهدم
کروم ۱۲۱
- پشتیبانی از WebGPU در اندروید
- برای کامپایل سایهزن در ویندوز، به جای FXC از DXC استفاده کنید
- کوئریهای برچسب زمانی در پاسهای محاسبه و رندر
- نقاط ورودی پیشفرض به ماژولهای سایهزن
- پشتیبانی از display-p3 به عنوان فضای رنگی GPUExternalTexture
- اطلاعات مربوط به تودههای حافظه
- بهروزرسانیهای سپیدهدم
کروم ۱۲۰
- پشتیبانی از مقادیر ممیز شناور ۱۶ بیتی در WGSL
- محدودیتها را کنار بزنید
- تغییرات در حالت عمق شابلون
- بهروزرسانیهای اطلاعات آداپتور
- کوئستیزاسیون کوئستسنجی کوئستسنجی کوئستسنجی با مهر زمانی
- ویژگیهای نظافت بهاری
کروم ۱۱۹
- بافتهای شناور ۳۲ بیتی قابل فیلتر
- قالب رأس unorm10-10-10-2
- فرمت بافت rgb10a2uint
- بهروزرسانیهای سپیدهدم
کروم ۱۱۸
- پشتیبانی از HTMLImageElement و ImageData در
copyExternalImageToTexture() - پشتیبانی آزمایشی از بافت ذخیرهسازی خواندنی-نوشتنی و فقط خواندنی
- بهروزرسانیهای سپیدهدم
کروم ۱۱۷
- بافر رأس را غیرفعال کنید
- گروه اتصال را غیرفعال کنید
- خطاهای ناشی از ایجاد خط لوله ناهمگام را هنگام از دست رفتن دستگاه، بیصدا کنید
- بهروزرسانیهای ایجاد ماژول سایهزن SPIR-V
- بهبود تجربه توسعهدهنده
- ذخیره سازی خطوط لوله با طرح بندی خودکار تولید شده
- بهروزرسانیهای سپیدهدم
کروم ۱۱۶
- ادغام WebCodecs
- دستگاه گمشده توسط
requestDevice() از نوع GPUAdapter بازگردانده میشود. - اگر
importExternalTexture()فراخوانی شود، پخش ویدیو روان خواهد بود. - انطباق با مشخصات
- بهبود تجربه توسعهدهنده
- بهروزرسانیهای سپیدهدم
کروم ۱۱۵
- افزونههای زبان WGSL پشتیبانیشده
- پشتیبانی آزمایشی از Direct3D 11
- به طور پیش فرض از پردازنده گرافیکی مجزا با برق AC استفاده کنید
- بهبود تجربه توسعهدهنده
- بهروزرسانیهای سپیدهدم
کروم ۱۱۴
- بهینهسازی جاوا اسکریپت
- تابع ()getCurrentTexture روی بوم پیکربندی نشده، خطای InvalidStateError را نمایش میدهد.
- بهروزرسانیهای WGSL
- بهروزرسانیهای سپیدهدم