افزونههای زبان WGSL پشتیبانیشده
عضو wgslLanguageFeatures
از شیء GPU
، نام افزونههای زبان WGSL پشتیبانیشده را فهرست میکند. افزونههای زبان WGSL پشتیبانیشده بهطور خودکار فعال میشوند، بنابراین نیازی نیست که بهطور صریح درخواست یکی از آنها را بدهید. این لیست در حال حاضر خالی است، اما میتوانید انتظار داشته باشید که در آینده تعداد زیادی از آنها (مثلاً do-while loops
) اضافه شوند. به شماره dawn:1777 مراجعه کنید.
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
پشتیبانی آزمایشی از Direct3D 11
تیم کرومیوم در حال کار بر روی اضافه کردن پشتیبانی از WebGPU برای Direct3D 11 است. اکنون میتوانید با اجرای کروم روی ویندوز با استفاده از پرچمهای خط فرمان --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
آن را به صورت محلی آزمایش کنید. به شماره dawn:1705 مراجعه کنید.
به طور پیش فرض از پردازنده گرافیکی مجزا با برق AC استفاده کنید
در دستگاههای macOS با دو پردازنده گرافیکی، اگر requestAdapter()
بدون گزینه powerPreference
فراخوانی شود، پردازنده گرافیکی مجزا زمانی که دستگاه کاربر به برق AC متصل است، بازگردانده میشود. در غیر این صورت، پردازنده گرافیکی مجتمع بازگردانده میشود. به تغییر ۴۴۹۹۳۰۷ مراجعه کنید.
بهبود تجربه توسعهدهنده
هشدارهای جدید DevTools
اگر از کلید depth
در یک GPUExtend3DDict
استفاده شود، یک هشدار در کنسول DevTools نشان داده میشود زیرا کلید صحیح depthOrArrayLayers
است. به مشکل Chrome:1440900 مراجعه کنید.
همچنین اگر یک GPUBlendComponent
ترکیبی از اعضای صریح و پیشفرض داشته باشد، هشداری ایجاد میشود. به شماره dawn:1785 مراجعه کنید.
اگرچه ارسالها و دریافتهای با اندازه صفر معتبر هستند، یک هشدار به توسعهدهندگان توصیه میکند تا حد امکان از آنها اجتناب کنند. به شماره dawn:1786 مراجعه کنید.
پیامهای خطای بهتر
اکنون در صورت استفاده از GPUCommandEncoder
در صورتی که finish()
قبلاً فراخوانی شده باشد، یک پیام خطای بهبود یافته ارائه میشود. به شماره dawn:1736 مراجعه کنید.
هنگام ارسال بافرهای فرمان با اشیاء تخریبشده، برچسبهای بافرهای فرمانی که در submit()
استفاده شدهاند، اکنون در پیام خطا قابل مشاهده هستند. به شماره dawn:1747 مراجعه کنید.
بخش نامعتبر حالت استنسیل عمق، اکنون هنگام اعتبارسنجی depthStencil
در پیام خطا مشخص میشود. به شماره dawn:1735 مراجعه کنید.
پیام خطای اعتبارسنجی minBindingSize
اکنون گروه و شماره اتصالی که اعتبارسنجی آن با شکست مواجه شده است، و همچنین بافر را گزارش میدهد. به شماره dawn:1604 مراجعه کنید.
پیامهای خطایی که توسط متد mapAsync()
در یک شیء GPUBuffer
برگردانده میشوند، برای کمک به توسعهدهندگان در هنگام اشکالزدایی بهبود یافتهاند. به مثال زیر و خطای chromium:1431622 مراجعه کنید.
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
برچسبها در ابزارهای اشکالزدایی macOS
گزینه اشکالزدایی use_user_defined_labels_in_backend
به شما امکان میدهد برچسبهای اشیاء را به backend منتقل کنید تا بتوان آنها را در ابزارهای اشکالزدایی مخصوص پلتفرم مانند RenderDoc، PIX یا Instruments مشاهده کرد. از این پس، با فعال کردن این گزینه برای اشکالزدایی ، تجربه اشکالزدایی بهتری در macOS ارائه میشود. به شماره dawn:1784 مراجعه کنید.

در صورت عدم موفقیت در کامپایل، HLSL را ثبت کنید
گزینه اشکالزدایی dump_shaders
به شما امکان میدهد تا ورودیهای سایهزن WGSL و سایهزنهای backend ترجمهشده را ثبت کنید. از این پس، وقتی آن را برای اشکالزدایی فعال میکنید، در صورت عدم موفقیت در کامپایل، HLSL حذف میشود. به شماره dawn:1681 مراجعه کنید.
بهروزرسانیهای سپیدهدم
بافر رأس را غیرفعال کنید
ارسال nullptr
به جای wgpu::Buffer
به SetVertexBuffer()
در wgpu::RenderPassEncoder
یا wgpu::RenderBundleEncoder
به شما امکان میدهد یک بافر رأس که قبلاً در یک اسلات مشخص تنظیم شده است را از حالت تنظیم خارج کنید. به شماره dawn:1675 مراجعه کنید.
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
پیوستهای گذرا
شما میتوانید ضمیمههایی ایجاد کنید که به عملیات رندرینگ اجازه میدهند در حافظه کاشی باقی بمانند و با تنظیم مقدار wgpu::TextureUsage::TransientAttachment
usage از ترافیک VRAM و تخصیص VRAM برای بافتها جلوگیری کنند. این ویژگی فقط برای Metal و Vulkan پشتیبانی میشود. به شماره dawn: 1695 مراجعه کنید.
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
ساخت و ساز بدون depot_tools
گزینه جدید DAWN_FETCH_DEPENDENCIES
در CMake به شما امکان میدهد وابستگیهای Dawn را با استفاده از یک اسکریپت پایتون که فایلهای DEPS را میخواند، دریافت کنید، به جای اینکه نیاز به نصب depot_tools
توسط تمام پروژههایی که به آن وابسته هستند، داشته باشید. به تغییر ۱۳۱۷۵۰ مراجعه کنید.
ویژگیهای جدید 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
- بهروزرسانیهای سپیدهدم