Collabora NVK را معرفی کرده است، یک درایور منبع باز جدید برای Mesa که API گرافیکی Vulkan را برای کارت های ویدئویی NVIDIA پیاده سازی می کند. درایور از ابتدا با استفاده از فایل های هدر رسمی و ماژول های هسته منبع باز منتشر شده توسط NVIDIA نوشته شده است. کد راننده تحت مجوز MIT منبع باز است. این درایور در حال حاضر تنها از پردازندههای گرافیکی مبتنی بر ریزمعماری تورینگ و آمپر که از سپتامبر 2018 منتشر شدهاند، پشتیبانی میکند.
این پروژه توسط تیمی شامل Karol Herbst، توسعه دهنده Nouveau در Red Hat، David Airlie، نگهدارنده DRM در Red Hat و Jason Ekstrand، توسعه دهنده فعال Mesa در Collabora در حال توسعه است. هنگام توسعه یک درایور جدید، اجزای اصلی درایور Nouveau OpenGL در برخی مکانها استفاده میشود، اما به دلیل تفاوت نامها در فایلهای هدر NVIDIA و نامهایی که در Nouveau بر اساس مهندسی معکوس به دست آمدهاند، قرض گرفتن مستقیم کد مشکل است و در اکثر موارد لازم بود در بسیاری از موارد تجدید نظر شود و آنها را با صفر پیاده سازی کنیم.
توسعه همچنین با هدف ایجاد یک درایور Vulkan مرجع جدید برای Mesa در حال انجام است که کد آن را می توان هنگام ایجاد درایورهای دیگر قرض گرفت. برای انجام این کار، NVK در هنگام کار بر روی درایور، سعی کرد تمام تجربیات موجود در توسعه درایورهای Vulkan را در نظر بگیرد، پایه کد را در فرم بهینه حفظ کند و انتقال کد از سایر درایورهای ولکان را به حداقل برساند و برای بهینه سازی آن کاری که باید انجام دهد. و کار با کیفیت بالا و عدم کپی کورکورانه نحوه انجام آن در سایر درایورها.
درایور NVK تنها چند ماه است که در حال توسعه است، بنابراین عملکرد آن محدود است. راننده با اجرای 98 درصد از تست های Vulkan CTS (مجموعه تست سازگاری) 10٪ از تست ها را با موفقیت پشت سر می گذارد. به طور کلی، آمادگی راننده بین 20-25٪ از عملکرد درایورهای ANV و RADV تخمین زده می شود. از نظر پشتیبانی سخت افزاری، درایور در حال حاضر به کارت های مبتنی بر ریزمعماری تورینگ و آمپر محدود شده است. وصله هایی برای پشتیبانی از پردازنده های گرافیکی Kepler، Maxwell و Pascal در حال کار هستند، اما هنوز آماده نیستند.
در دراز مدت، انتظار می رود درایور NVK برای کارت های گرافیک NVIDIA به سطوحی از کیفیت و عملکرد مشابه درایور RADV برای کارت های AMD دست یابد. هنگامی که درایور NVK آماده شد، از کتابخانه های رایج ایجاد شده در طول توسعه آن می توان برای بهبود درایور Nouveau OpenGL برای کارت های ویدئویی NVIDIA استفاده کرد. امکان استفاده از پروژه Zink برای پیادهسازی درایور OpenGL کامل برای کارتهای ویدئویی NVIDIA، که از طریق پخش تماسها به Vulkan API کار میکند، نیز در نظر گرفته میشود.
منبع: opennet.ru