درایور RADV Vulkan برای استفاده از پشتیبان کامپایل سایه زن ACO تغییر وضعیت داد

در پایگاه کد مورد استفاده برای تشکیل نسخه Mesa 20.2، اجرا شد تغییر RADV، درایور Vulkan برای تراشه‌های AMD، برای استفاده از backend پیش‌فرض برای کامپایل کردن سایه‌زن‌ها.ACOکه توسط Valve به عنوان جایگزینی برای کامپایلر سایه زن LLVM در حال توسعه است. این تغییر منجر به افزایش عملکرد بازی و کاهش زمان راه اندازی خواهد شد. برای برگرداندن باطن قدیمی، متغیر محیطی "RADV_DEBUG=llvm" ارائه شده است.

تغییر درایور RADV به باطن جدید پس از اینکه ACO به یکسانی در عملکرد با باطن قدیمی توسعه یافته توسط AMD برای درایور AMDGPU، که همچنان در درایور RadeonSI OpenGL استفاده می‌شود، امکان پذیر شد. تست توسط Valve آشکار شدسرعت کامپایل ACO تقریبا دو برابر کامپایلر سایه زن AMDGPU از نظر سرعت کامپایل است و افزایش FPS را در برخی بازی ها هنگام اجرا بر روی سیستم هایی با درایور RADV نشان می دهد.

درایور RADV Vulkan برای استفاده از پشتیبان کامپایل سایه زن ACO تغییر وضعیت داد

درایور RADV Vulkan برای استفاده از پشتیبان کامپایل سایه زن ACO تغییر وضعیت داد

هدف پشتیبان ACO ایجاد کدی است که تا حد امکان برای سایه‌زنان برنامه‌های بازی بهینه باشد و همچنین سرعت کامپایل بسیار بالایی را به دست آورد. ACO به زبان C++ نوشته شده است، با در نظر گرفتن کامپایل JIT طراحی شده است و از ساختارهای داده تکراری سریع استفاده می کند و از ساختارهای مبتنی بر اشاره گر اجتناب می کند. نمایش میانی کد کاملاً بر اساس SSA (تخصیص منفرد استاتیک) است و امکان تخصیص رجیستر را با پیش محاسبه دقیق ثبات بسته به سایه زن فراهم می کند.

علاوه بر این: در حال حاضر، ACO فقط برای درایور Mesa RADV Vulkan کار می کند. اما توسعه دهندگان ACO تایید شدهکه گام بعدی آنها شروع کار بر روی گسترش قابلیت های ACO برای پشتیبانی از درایور RadeonSI OpenGL خواهد بود، به طوری که در آینده، برای این درایور، ACO بتواند جایگزین کامپایلر سایه زن پیش فرض LLVM شود.

منبع: opennet.ru

اضافه کردن نظر