منتشر شده: ۳۰ ژوئیه ۲۰۲۵
پشتیبانی از بافت سهبعدی برای فرمتهای فشرده BC و ASTC
ویژگیهای WebGPU با نامهای "texture-compression-bc-sliced-3d" و "texture-compression-astc-sliced-3d" پشتیبانی از بافتهای سهبعدی با استفاده از فرمتهای Block Compression (BC) و Adaptive Scalable Texture Compression (ASTC) را فراهم میکنند. این قابلیت به شما امکان میدهد از قابلیتهای فشردهسازی کارآمد فرمتهای BC و ASTC برای دادههای بافت حجمی بهرهمند شوید و کاهش قابل توجهی در فضای حافظه و پهنای باند مورد نیاز بدون افت قابل توجه کیفیت بصری ارائه دهید. این قابلیت به ویژه در زمینههایی مانند مصورسازی علمی، تصویربرداری پزشکی و تکنیکهای رندر پیشرفته ارزشمند است.
قطعه کد زیر بررسی میکند که آیا آداپتور از بافتهای سهبعدی با فرمتهای فشرده BC و ASTC پشتیبانی میکند یا خیر و در صورت وجود، دستگاهی با این ویژگیها را درخواست میکند.
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-bc",
"texture-compression-bc-sliced-3d",
);
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-astc",
"texture-compression-astc-sliced-3d",
);
}
const device = await adapter?.requestDevice({ requiredFeatures });
// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
// Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
// Create a 3D texture using BC compression
} else {
// Fallback: Create an uncompressed 3D texture
}
با بررسی نمونهی Volume Rendering - Texture 3D WebGPU و مشاهدهی ورودی chromestatus ، اسکنهای سهبعدی مغز را بررسی کنید.

ویژگی جدید «ویژگیهای اصلی و محدودیتها»
یک ویژگی جدید "core-features-and-limits" برای حالت سازگاری WebGPU که به زودی عرضه میشود، معرفی شده است. این ویژگی نشان میدهد که آداپتور یا دستگاه از ویژگیها و محدودیتهای اصلی مشخصات WebGPU پشتیبانی میکند. WebGPU «هسته» تنها نسخه موجود در حال حاضر است، بنابراین همه پیادهسازیهای WebGPU باید "core-features-and-limits" در ویژگیهای پشتیبانیشده خود داشته باشند.
در آینده، هنگامی که حالت سازگاری WebGPU منتشر شود، ممکن است یک آداپتور یا دستگاه این ویژگی را نداشته باشد تا نشان دهد که یک آداپتور یا دستگاه حالت سازگاری است و نه یک آداپتور یا دستگاه اصلی. وقتی این ویژگی در یک دستگاه فعال شود، تمام محدودیتهای حالت سازگاری (ویژگیها و محدودیتها) برداشته میشود.
برای توضیح دقیق و نحوهی استفاده در حالت سازگاری WebGPU، به توضیحدهنده و بخش بعدی مراجعه کنید. به شمارهی ۴۱۸۰۲۵۷۲۱ مراجعه کنید.
نسخه آزمایشی Origin برای حالت سازگاری با WebGPU
WebGPU یک API قدرتمند است که برای گرافیک مدرن طراحی شده و با فناوریهایی مانند Vulkan، Metal و Direct3D 12 هماهنگ است. با این حال، تعداد قابل توجهی از دستگاهها هنوز از این APIهای جدیدتر پشتیبانی نمیکنند. به عنوان مثال، در ویندوز، ۳۱٪ از کاربران کروم Direct3D 11.1 یا بالاتر ندارند. در اندروید، ۱۵٪ از کاربران اندروید Vulkan 1.1 را ندارند، از جمله ۱۰٪ که اصلاً Vulkan ندارند.
این موضوع برای توسعهدهندگانی که میخواهند دامنهی کاربرد برنامهی خود را به حداکثر برسانند، چالشی ایجاد میکند. آنها اغلب مجبور میشوند پیادهسازیهای متعددی (مثلاً WebGPU و WebGL) توسعه دهند، مخاطبان محدودتری را با WebGPU اصلی بپذیرند، یا به WebGL پایبند بمانند و از ویژگیهای پیشرفتهی WebGPU مانند محاسبات GPU بیبهره بمانند.

حالت سازگاری WebGPU با ارائه یک نسخه اختیاری و کمی محدود از API WebGPU، راهحلی ارائه میدهد. این حالت برای اجرای APIهای گرافیکی قدیمیتر مانند OpenGL ES 3.1 و Direct3D11 طراحی شده است و به طور قابل توجهی دامنه دسترسی برنامه شما را به دستگاههایی که از APIهای گرافیکی مدرن و صریح مورد نیاز WebGPU اصلی پشتیبانی نمیکنند، گسترش میدهد.
از آنجا که حالت سازگاری زیرمجموعهای از WebGPU است، برنامههای ساخته شده با آن، برنامههای معتبر "هسته" WebGPU نیز هستند. این بدان معناست که آنها حتی در مرورگرهایی که به طور خاص از حالت سازگاری پشتیبانی نمیکنند، به طور یکپارچه اجرا میشوند.
برای بسیاری از برنامههای ساده، فعال کردن حالت سازگاری به سادگی ارسال featureLevel: "compatibility" هنگام فراخوانی requestAdapter() است. برنامههای پیچیدهتر ممکن است برای تطبیق با محدودیتهای این حالت به تنظیمات جزئی نیاز داشته باشند. نمونه Generate Mipmap WebGPU مثال خوبی است.
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
featureLevel: "compatibility",
});
const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});
if (device?.features.has("core-features-and-limits")) {
// Compatibility mode restrictions will apply
}
فعال کردن ویژگی
به طور پیشفرض، حالت سازگاری WebGPU در کروم فعال نیست، اما میتوان آن را در کروم ۱۳۹ با فعال کردن صریح این قابلیت آزمایش کرد. میتوانید آن را به صورت محلی با فعال کردن پرچم "ویژگیهای پلتفرم وب آزمایشی" در chrome://flags/#enable-experimental-web-platform-features فعال کنید.
برای فعال کردن آن برای همه بازدیدکنندگان برنامه شما، یک دوره آزمایشی origin در حال انجام است و قرار است در Chrome 145 (21 آوریل 2026) به پایان برسد. برای شرکت در این دوره آزمایشی، به پست « شروع با origin trials» مراجعه کنید.
بهروزرسانیهای سپیدهدم
یک آرگومان message به تابع WGPUQueueWorkDoneCallback اضافه شده است تا با سایر توابع فراخوانی که وضعیت را نیز دریافت میکنند، سازگارتر باشد. به webgpu-headers PR مراجعه کنید.
وقتی emdawnwebgpu با -sSHARED_MEMORY لینک میشود، فایل webgpu.cpp آن نیز با این پرچم کامپایل میشود. به Dawn CL 244075 مراجعه کنید.
این فقط برخی از نکات برجسته کلیدی را پوشش میدهد. لیست جامع کامیتها را بررسی کنید.
ویژگیهای جدید WebGPU
فهرستی از تمام مواردی که در مجموعه «ویژگیهای جدید WebGPU» پوشش داده شده است.
کروم ۱۴۲
کروم ۱۴۱
- رنگ 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
- بهروزرسانیهای سپیدهدم