حد maxTextureArrayLayers را افزایش دهید
حداکثر مقدار مجاز برای عمق یا تعداد لایه یک بافت دو بعدی به طور پیش فرض 256 است. اکنون می توان با استفاده از محدودیت maxTextureArrayLayers در صورت پشتیبانی تا 2048 درخواست کرد. مثال زیر و شماره 42241514 را ببینید.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxTextureArrayLayers < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max texture array layers attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxTextureArrayLayers: 2048 }
});
بهینه سازی بارگذاری بافر برای باطن Vulkan
یک مسیر سریع اکنون هنگام فراخوانی متد writeBuffer() در GPUQueue برای باطن Vulkan در دسترس است. اکنون ممکن است داده ها مستقیماً در بافر مقصد نوشته شوند و نیاز به کپی اضافی و همگام سازی را از بین ببرند. این بهینه سازی ترافیک حافظه مورد نیاز برای آپلود داده ها در GPU را کاهش می دهد.
بهینهسازی مسیر سریع نیازمند آن است که حافظه بافر میزبان قابل مشاهده و بدون هیچ گونه عملیات GPU معلق روی آن باشد. شماره 42242084 را ببینید.
بهبود زمان کامپایل شیدر
تیم Chrome در حال افزایش کارایی Tint ، کامپایلر زبان سایه زن WebGPU است. Tint در حال حاضر درخت نحو انتزاعی کد سایه زن (AST) را چندین بار قبل از تولید کد ماشین تغییر میدهد، فرآیندی که در برخی از پلتفرمها نیازمند منابع زیادی بوده است. برای بهینه سازی این امر، یک نمایش میانی جدید (IR) همراه با باطن های بازطراحی شده که از آن استفاده می کنند، معرفی شده است. هدف این تغییر تسریع در کامپایل سایه زن است.
این پیشرفتها که قبلاً در Android قابل دسترسی هستند، به تدریج به دستگاههای ChromeOS که از WebGPU با باطن Vulkan پشتیبانی میکنند، گسترش مییابد. شماره 42250751 را ببینید.
بافرهای فرمان ارسالی باید منحصر به فرد باشند
هر GPUCommandBuffer ارسال شده به GPUQueue با متد submit()
باید منحصر به فرد باشد، در غیر این صورت یک خطای اعتبارسنجی ایجاد می شود. این یک اشکال مشخصات بود. به شماره 42241492 مراجعه کنید.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const commandEncoder = device.createCommandEncoder();
const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer, commandBuffer]);
// ⚠️ Validation fails because command buffers are not unique.
به روز رسانی سحر
C++ wrapper webgpu_cpp.h اکنون فقط هدر است، استفاده از آن را ساده کرده و امکان یکپارچه سازی آسان تر با بسته های C++ جایگزین را فراهم می کند. به شماره 40195122 مراجعه کنید.
webgpu.h C API دیگر مفهوم اشیاء Swapchain را آشکار نمی کند. این تغییر برای همسویی نزدیک با JavaScript API است. پیکربندی داخلی اکنون از طریق متد Configure()
شیء جدید wgpu::Surface
انجام میشود، که در معرض تغییرات بعدی است. نمونهای را در ساخت برنامه با مستندات WebGPU بررسی کنید. به شماره 42241264 مراجعه کنید.
فهرست جامع تعهدات را بررسی کنید.
چه چیزی در 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
- به روز رسانی سحر