ویژگی‌های جدید WebGPU (‏Chrome 141)

François Beaufort
François Beaufort

منتشرشده: ۲۴ سپتامبر ۲۰۲۵

«سایه‌رنگ فروسرخ» تکمیل شد

پروژه‌ای طولانی‌مدت (بیش‌از ۲٫۵ سال) برای افزایش عملکرد بخش‌های داخلی Tint، کامپایلر WGSL تکمیل شده است. یک «نمایش میانه‌ای» (IR) در زیرینه بین «درخت نحو انتزاعی» (AST) کنونی و مولدهای کد زیرینه درج شده است. معرفی IR به تیم Chrome اجازه داد تا همه تبدیل‌های AST را بردارد و آن‌ها را به‌عنوان تبدیل‌های IR بازآفرینی کند که به‌دلیل تفاوت‌های معماری، به‌طور قابل‌توجهی سریع‌تر هستند. درون‌مایه‌های Tint در برخی‌از پلاتفرم‌ها با این تغییرات تا هفت برابر بهبود سرعت داشته است.

این IR جدید پتانسیل قابل‌توجهی برای تجزیه‌وتحلیل و تبدیل سایه‌زن‌های پیچیده و در مقیاس بزرگ ایجاد می‌کند و نه تنها افزایش عملکرد قابل‌توجهی را نوید می‌دهد، بلکه مسیری هموارتر برای Chrome فراهم می‌کند تا ویژگی‌های جدید و هیجان‌انگیز WebGPU را در آینده ارائه دهد.

از این نقطه عطف، همه مولدهای کد زیرینه از نمایش IR کار می‌کنند، همه تبدیل‌های AST حذف شده‌اند، و همه کد پشتیبانی AST برای اجرای تبدیل‌ها برداشته شده است.

به‌عنوان بخشی از کار بهبود IR، پیش‌کار SPIR-V (که توسط برنامه‌ها برای تبدیل SPIR-V به WGSL استفاده می‌شود) از تولید نمایش AST به تولید مستقیم به IR تبدیل شد. این بهبود همچنین ویژگی‌های دیرانتظاری مانند پشتیبانی از float 16 را به پیش‌کار SPIR-V معرفی می‌کند.

تجزیه‌وتحلیل محدوده عدد صحیح در گردآورنده WGSL

تیم Chrome به‌تدریج درحال عرضه تحلیل محدوده عدد صحیح جدیدی برای Tint، کامپایلر زبان سایه‌زن WebGPU است. تجزیه‌وتحلیل محدوده عدد صحیح مقادیر حداقل و حداکثر متغیر عدد صحیح را که می‌تواند درطول اجرای برنامه بدون اجرای واقعی برنامه بگیرد تخمین می‌زند.

هدف این ویژگی بهبود کارایی با کاهش نیاز به بررسی محدوده‌های پرهزینه است و به‌زودی به‌طور پیش‌فرض در همه پلاتفرم‌ها فعال خواهد شد. مشکل ۳۴۸۷۰۱۹۵۶ را ببینید.

به‌روزرسانی SPIR-V 1.4 برای زیرینه Vulkan

پشتیبانی از SPIR-V 1.4 در دستگاه‌های Android و ChromeOS که دردسترس باشد عرضه می‌شود. این به‌روزرسانی به Tint، گردآورنده WGSL، امکان می‌دهد از ویژگی‌های جدید SPIR-V، تسهیلات، و دستورالعمل‌های جدید برای تولید کد کارآمدتر در سناریوهای خاص هنگام گردآوری سایه‌زن‌های Vulkan بهره ببرد. مشکل ۴۲۷۷۱۷۲۶۷ را ببینید.

به‌روزرسانی‌های سپیده‌دم

سرصفحه استاندارد webgpu.h که API اصلی WebGPU C را تعریف می‌کند، اکنون سرانجام پایدار درنظر گرفته می‌شود. این پایداری به‌طور خاص برای میانای برنامه‌سازی کاربردی اصلی که در بالادست تعریف شده است اعمال می‌شود و شامل افزونه‌های پیاده‌سازی (برای نمونه، از Dawn یا Emdawnwebgpu) نمی‌شود، بنابراین بهتر است از webgpu.h ارائه‌شده توسط پیاده‌سازی دقیقی که به آن پیوند می‌دهید استفاده کنید. درحالی‌که سرایند پایدار است، ممکن است همچنان با تفاوت‌های ناخواسته بین پیاده‌سازی‌ها مواجه شوید زیرا ما به رفع اشکالات و رسیدگی به سازگاری در سراسر بوم‌سازگان ادامه می‌دهیم. اگر این کار را کردید، گزارش اشکال ثبت کنید.

به‌لطف همیار خارجی ویلیام کندیلیون، اکنون می‌توانید فایل‌های باینری Dawn ازپیش ساخته‌شده را به‌عنوان آرتیفکت در GitHub Actions پیدا کنید. این موارد شامل فایل‌های .lib ایستا برای Android، بسته .XCFramework برای Apple، و همه فایل‌های سرصفحه لازم می‌شود. Dawn PR #39 و مثالی از این آرتیفکت‌ها را ببینید.

این فقط برخی‌از نکات برجسته کلیدی را پوشش می‌دهد. فهرست کامل تعهدات را بررسی کنید.

ویژگی‌های جدید WebGPU

فهرستی از همه مواردی که در مجموعه ویژگی‌های جدید WebGPU پوشش داده شده است.

‫۱۵۵-۱۵۶ Chrome

‫۱۵۳-۱۵۴ Chrome

Chrome 151-152

‫۱۴۹-۱۵۰ Chrome

‫۱۴۷-۱۴۸ Chrome

‫۱۴۶ Chrome

‫Chrome 145

‫۱۴۴ Chrome

‫۱۴۳ Chrome

‫۱۴۲ Chrome

Chrome 141

‫۱۴۰ Chrome

Chrome 139

‫Chrome 138

Chrome 137

‫Chrome 136

‫۱۳۵ Chrome

‫۱۳۴ Chrome

‫Chrome 133

‫۱۳۲ Chrome

‫۱۳۱ Chrome

‫Chrome 130

‫Chrome 129

‫Chrome 128

‫Chrome 127

‫Chrome 126

‫Chrome 125

‫Chrome 124

‫Chrome 123

‫Chrome 122

Chrome 121

‫Chrome 120

‫Chrome 119

‫Chrome 118

Chrome 117

‫Chrome 116

‫Chrome 115

Chrome 114

‫Chrome 113