درایور Vulkan اکنون از Backend ACO ساخت Valve استفاده می کند

در کد کد مورد استفاده برای تشکیل نسخه Mesa 20.2 ، راننده RADV ، Vulkan برای تراشه های AMD تغییر حالت داد پیش فرض برای تدوین سایه بان ها »ACO« ، ساخته شده توسط Valve به عنوان جایگزینی برای کامپایلر سایه زن LLVM.

این تغییر مشخص شده با پایان رسیدن به افزایش بهره وری از بازی ها انجام شد و کاهش زمان راه اندازی آن.

تغییر از کنترل کننده RADV به backend جدید پس از دستیابی به برابری در عملکرد ACO با AMD باطن توسعه یافته امکان پذیر شد برای درایور AMDGPU ، که همچنان در درایور RadeonSI OpenGL استفاده می شود.

آزمایش توسط Valve نشان داد که ACO تقریباً دو برابر سریعتر از کامپایلر ساخت shader AMDGPU است و نشان دهنده افزایش FPS در برخی از بازی ها هنگام اجرای سیستم با درایور RADV است.

درایورهای AMD OpenGL و Vulkan در حال حاضر از کامپایلر سایه بان استفاده می کنند که بخشی از پروژه بالادستی LLVM است. این پروژه عظیم است و اهداف مختلفی دارد و جمع آوری آنلاین سایه بان های بازی فقط یکی از آنهاست. 

این می تواند منجر به جابجایی های توسعه شود ، جایی که بهبود عملکرد خاص بازی دشوارتر از آن است ، یا ویژگی های خاص بازی اغلب به طور تصادفی توسط توسعه دهندگان LLVM که روی چیزهای دیگر کار می کنند شکسته می شود.

باطن از ACO قصد دارد اطمینان حاصل کند که کد به بهترین شکل تولید می شود برای سایه بانهای برنامه بازی امکان پذیر است و سرعت جمع آوری بسیار بالایی را به دست می آورد.

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

نمایش میانی کد کاملاً مبتنی بر SSA (تخصیص استاتیک واحد) است و امکان تخصیص سوابق را با محاسبه دقیق رکورد بر اساس سایه بان فراهم می کند.

در حال حاضر فقط پیکسل پشتیبانی می شود (قطعات) و سایه بان ها را روی GPU های گسسته AMD محاسبه کنید (dGPU VI +). با این حال ، ACO قبلاً به درستی سایه بان ها را برای همه بازی های آزمایش شده ، از جمله سایه بان های پیچیده Shadow of the Tomb Raider و Wolfenstein II ، جمع آوری می کند.

نمونه اولیه پیشنهادی ACO برای آزمون سرعت آن تقریباً دو برابر کامپایلر سایه زن AMDGPU است و افزایش FPS را در برخی از بازیها هنگام اجرای سیستم با کنترلر RADV نشان می دهد.

برای درک کمی بیشتر در مورد ارتباط با استفاده از کد Valve ، مهم است که پیش زمینه این موضوع باشد هدف تضمین بهینه ترین تولید کد ممکن است برای سایه بانهای برنامه بازی و همچنین سرعت تدوین بسیار بالا.

کامپایلر سایه بان موجود در Mesa از اجزای LLVM استفاده می کند ، که اجازه نمی دهد به سرعت کامپایل مورد نظر برسیم و اجازه کنترل کامل جریان کنترل را نمی دهند ، که در گذشته باعث خطاهای جدی شده است.

علاوه بر این، اجتناب از LLVM امکان اجرای تجزیه و تحلیل تهاجمی تر را فراهم می کند اختلافات و مدیریت بارگذاری دقیق ورود به سیستم ، امکان ایجاد فایل های اجرایی کارآمد تر.

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

چقدر کسانی که ترجیح می دهند با باطنی که قبلاً استفاده شده بود ادامه دهند از کامپایلر LLVM shader ، آنها می توانند به آن برگردند ، فقط باید یک متغیر را تغییر دهند.

متغیر محیطی که برای ایجاد این تغییر ارائه شده است "RADV_DEBUG = llvm".


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

نظر بدهید ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   VaryHeavy dijo

    و چگونه کاربر انتخاب می کند که باطن بازی را اجرا کند؟ چه پرونده هایی باید اصلاح کند؟