پشتیبانی از پسوندهای زبان WGSL
عضو wgslLanguageFeatures
شی GPU
نام پسوندهای زبان WGSL پشتیبانی شده را فهرست می کند. پسوندهای زبان WGSL پشتیبانی شده به طور خودکار فعال می شوند، بنابراین نیازی به درخواست صریح ندارید. این لیست در حال حاضر خالی است، اما میتوانید در آینده تعداد زیادی از آنها را انتظار داشته باشید (به عنوان مثال، do-while loops
). به شماره سپیده دم: 1777 مراجعه کنید.
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
پشتیبانی آزمایشی از Direct3D 11
تیم Chromium در حال کار بر روی افزودن پشتیبانی WebGPU برای Direct3D 11 است. اکنون میتوانید با اجرای Chrome در ویندوز با پرچمهای خط فرمان --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
به صورت محلی آن را آزمایش کنید. به شماره سپیده دم: 1705 مراجعه کنید.
GPU گسسته را به طور پیشفرض با برق AC دریافت کنید
در دستگاههای macOS دو GPU، اگر requestAdapter()
بدون گزینه powerPreference
فراخوانی شود، زمانی که دستگاه کاربر برق متناوب باشد، GPU گسسته برگردانده میشود. در غیر این صورت، GPU یکپارچه برگردانده می شود. تغییر 4499307 را ببینید.
بهبود تجربه توسعه دهندگان
هشدارهای جدید DevTools
اگر از کلید depth
در یک GPUExtend3DDict
استفاده شود، یک هشدار در DevTools Console نشان داده می شود زیرا کلید صحیح depthOrArrayLayers
است. به شماره chromium:1440900 مراجعه کنید.
همچنین اگر یک GPUBlendComponent
ترکیبی از اعضای صریح و پیشفرض داشته باشد، هشدار داده میشود. به شماره سپیده دم: 1785 مراجعه کنید.
حتی اگر ارسال ها و قرعه کشی های اندازه صفر معتبر هستند، یک هشدار توسعه دهندگان را تشویق می کند تا در صورت امکان از آنها اجتناب کنند. به شماره سپیده دم: 1786 مراجعه کنید.
پیام های خطای بهتر
در صورت استفاده از GPUCommandEncoder
اگر finish()
قبلاً فراخوانی شده باشد، اکنون یک پیام خطای بهبود یافته ارائه می شود. به شماره سپیده دم: 1736 مراجعه کنید.
هنگام ارسال بافرهای فرمان با اشیاء از بین رفته، برچسب های بافرهای فرمان که در submit()
استفاده می شد اکنون در پیام خطا قابل مشاهده است. به شماره سپیده دم: 1747 مراجعه کنید.
بخش نامعتبر حالت استنسیل عمق اکنون در پیام خطا هنگام اعتبارسنجی depthStencil
مشخص شده است. به شماره سپیده دم: 1735 مراجعه کنید.
اکنون پیام خطای اعتبارسنجی minBindingSize
گروه و تعداد اتصالی را که اعتبارسنجی ناموفق بوده و همچنین بافر را گزارش می دهد. به شماره سپیده دم: 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
به شما امکان میدهد برچسبهای شی را به باطن ارسال کنید تا در ابزارهای اشکالزدایی خاص پلتفرم مانند RenderDoc، PIX یا Instruments دیده شوند. از این پس، هنگامی که آن را برای اشکال زدایی فعال کنید، تجربه اشکال زدایی بهتری در macOS ارائه می شود. به شماره سپیده دم: 1784 مراجعه کنید
اگر کامپایل نشد، HLSL را وارد کنید
جابجایی اشکالزدایی dump_shaders
به شما امکان میدهد سایهبانهای WGSL ورودی و سایهبانهای باطنی ترجمهشده را ثبت کنید. از این پس، هنگامی که آن را برای اشکال زدایی فعال می کنید، در صورت عدم موفقیت در کامپایل، HLSL حذف می شود. به شماره سپیده دم: 1681 مراجعه کنید
به روز رسانی سحر
بافر راس را تنظیم نکنید
ارسال nullptr
به جای wgpu::Buffer
به SetVertexBuffer()
در wgpu::RenderPassEncoder
یا wgpu::RenderBundleEncoder
به شما این امکان را می دهد که یک بافر راس از قبل تنظیم شده را در یک شکاف مشخص تنظیم کنید. به شماره سپیده دم: 1675 مراجعه کنید.
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
پیوست های گذرا
میتوانید پیوستهایی ایجاد کنید که به عملیاتهای رندر پاس اجازه میدهد در حافظه کاشی باقی بمانند، از ترافیک VRAM اجتناب میکنند و به طور بالقوه از تخصیص VRAM برای بافتها با تنظیم wgpu::TextureUsage::TransientAttachment
استفاده میکنند. این ویژگی فقط برای متال و ولکان پشتیبانی می شود. رجوع کنید به شماره سپیده دم: 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
توسط همه پروژه هایی که به آن وابسته هستند، واکشی کنید. تغییر 131750 را ببینید.
چه چیزی در WebGPU جدید است
فهرستی از همه چیزهایی که در سری What's New in WebGPU پوشش داده شده است.
کروم 131
- فاصله های کلیپ در WGSL
- GPUCanvasContext getConfiguration()
- نقطه و خط اولیه نباید بایاس عمق داشته باشند
- توابع داخلی اسکن جامع برای زیرگروه ها
- پشتیبانی آزمایشی برای چند قرعه کشی غیر مستقیم
- گزینه کامپایل ماژول Shader ریاضی سخت
- حذف GPUAdapter requestAdapterInfo()
- به روز رسانی سحر
کروم 130
- ترکیب منبع دوگانه
- بهبود زمان کامپایل شیدر در فلز
- منسوخ شدن GPUAdapter requestAdapterInfo()
- به روز رسانی سحر
کروم 129
کروم 128
- آزمایش با زیر گروه ها
- بایاس عمق تنظیم را برای خطوط و نقاط منسوخ کنید
- در صورت جلوگیری از Default، هشدار DevTools خطای ضبط نشده را مخفی کنید
- WGSL ابتدا نمونهگیری را درونیابی میکند و هر کدام را
- به روز رسانی سحر
کروم 127
- پشتیبانی آزمایشی از OpenGL ES در اندروید
- ویژگی اطلاعات GPUAdapter
- بهبودهای WebAssembly interop
- خطاهای رمزگذار فرمان بهبود یافته است
- به روز رسانی سحر
کروم 126
- حد maxTextureArrayLayers را افزایش دهید
- بهینه سازی بارگذاری بافر برای باطن Vulkan
- بهبود زمان کامپایل شیدر
- بافرهای فرمان ارسالی باید منحصر به فرد باشند
- به روز رسانی سحر
کروم 125
کروم 124
- بافت های ذخیره سازی فقط خواندنی و خواندنی و نوشتنی
- پشتیبانی کارگران خدماتی و کارگران مشترک
- ویژگی های اطلاعات آداپتور جدید
- رفع اشکال
- به روز رسانی سحر
کروم 123
- توابع داخلی DP4a در WGSL پشتیبانی می کند
- پارامترهای اشاره گر نامحدود در WGSL
- قند نحوی برای عدم ارجاع کامپوزیت ها در WGSL
- حالت فقط خواندنی را برای جنبه های استنسیل و عمق جدا کنید
- به روز رسانی سحر
کروم 122
- گسترش دسترسی با حالت سازگاری (ویژگی در حال توسعه)
- حد maxVertexAttributes را افزایش دهید
- به روز رسانی سحر
کروم 121
- پشتیبانی از WebGPU در اندروید
- برای کامپایل شیدر در ویندوز به جای FXC از DXC استفاده کنید
- پرس و جوهای مهر زمانی در گذرنامه های محاسبه و ارائه
- نقاط ورودی پیش فرض به ماژول های سایه زن
- پشتیبانی از display-p3 به عنوان فضای رنگی GPUExternalTexture
- اطلاعات انبوه حافظه
- به روز رسانی سحر
کروم 120
- پشتیبانی از مقادیر ممیز شناور 16 بیتی در WGSL
- محدودیت ها را فشار دهید
- تغییرات در حالت عمقی-استنسیل
- به روز رسانی اطلاعات آداپتور
- کوانتیزاسیون پرس و جوهای مهر زمانی
- ویژگی های تمیز کردن فنری
کروم 119
کروم 118
- پشتیبانی از HTMLImageElement و ImageData در
copyExternalImageToTexture()
- پشتیبانی آزمایشی از بافت ذخیرهسازی خواندنی-نوشتنی و فقط خواندنی
- به روز رسانی سحر
کروم 117
- بافر راس را تنظیم نکنید
- گروه bind را تنظیم نکنید
- هنگام گم شدن دستگاه، خطاهای ایجاد خط لوله ناهمگام را خاموش کنید
- به روز رسانی های ایجاد ماژول سایه زن SPIR-V
- بهبود تجربه توسعه دهندگان
- ذخیره سازی خطوط لوله با طرح تولید خودکار
- به روز رسانی سحر
کروم 116
- یکپارچه سازی WebCodecs
- دستگاه گمشده توسط GPUAdapter
requestDevice()
برگردانده شد - در صورت فراخوانی
importExternalTexture()
پخش ویدیو را روان نگه دارید - مطابقت با مشخصات
- بهبود تجربه توسعه دهندگان
- به روز رسانی سحر
کروم 115
- پشتیبانی از پسوندهای زبان WGSL
- پشتیبانی آزمایشی از Direct3D 11
- GPU گسسته را به طور پیشفرض با برق AC دریافت کنید
- بهبود تجربه توسعه دهندگان
- به روز رسانی سحر
کروم 114
- بهینه سازی جاوا اسکریپت
- getCurrentTexture() روی بوم پیکربندی نشده خطای InvalidState را ایجاد می کند
- به روز رسانی WGSL
- به روز رسانی سحر