کنسرسیوم Khronos که استانداردهای گرافیکی را توسعه می دهد،
مشخصات که یک API برای دسترسی به قابلیتهای گرافیکی و محاسباتی GPU تعریف میکند. مشخصات جدید شامل دو سال اصلاحات و اصلاحات انباشته شده است. درایورهایی که از نسخه جدید Vulkan پشتیبانی میکنند، از قبل در دسترس هستند. شرکت اینتل، ، ARM، Imagination Technologies و پشتیبانی از Vulkan 1.2 برای درایورهای Mesa ارائه میشود. (کارتهای AMD) و (اینتل). پشتیبانی از Vulkan 1.2 نیز در دیباگر پیادهسازی شده است. , و مجموعهای از مثالها .
اصلی :
- پیادهسازی زبان برنامهنویسی شیدر تا زمانی که برای استفاده گسترده آماده شود توسط مایکروسافت برای DirectX توسعه داده شده است. پشتیبانی HLSL در Vulkan امکان استفاده از سایهزنهای HLSL یکسان را در برنامههای مبتنی بر Vulkan و DirectX فراهم میکند و همچنین ترجمه از HLSL به SPIR-V را ساده میکند. توصیه میشود از کامپایلر داخلی برای کامپایل سایهزن استفاده شود.
که در سال ۲۰۱۷ توسط مایکروسافت متنباز شد و مبتنی بر فناوری LLVM است. پشتیبانی از Vulkan از طریق یک backend جداگانه پیادهسازی شده است که امکان ترجمه HLSL به نمایش میانی SPIR-V از shaderها را فراهم میکند. این پیادهسازی نه تنها تمام قابلیتهای داخلی را پوشش میدهد، بلکه...
HLSL، شامل انواع ریاضی، جریانهای کنترل، توابع، مجموعهها، انواع منابع، فضاهای نام، مدل سایهزن ۶.۲، ساختارها و روشها، همچنین امکان استفاده از افزونههای خاص Vulkan مانند VKRay انویدیا را فراهم میکند. بازیهایی مانند Destiny 2، Red Dead Redemption II، Assassin's Creed Odyssey و Tomb Raider با موفقیت در حالت HLSL بر روی Vulkan پیادهسازی شدند. - مشخصات بهروزرسانی شد که یک نمایش واسط جهانی از سایهزنها را در تمام پلتفرمها تعریف میکند که میتوانند هم برای گرافیک و هم برای محاسبات موازی استفاده شوند.
SPIR-V فرآیند کامپایل شیدرها را به نمایش میانی (IR) تفکیک میکند و امکان ایجاد رابطهای کاربری برای زبانهای سطح بالای مختلف را فراهم میکند. بر اساس پیادهسازیهای مختلف سطح بالا، یک کد میانی واحد به طور جداگانه تولید میشود که میتواند توسط درایورهای OpenGL، Vulkan و OpenCL بدون نیاز به کامپایلر شیدر داخلی استفاده شود.
- رابط برنامهنویسی کاربردی (API) هسته ولکان شامل ۲۳ افزونه است که عملکرد را بهبود میبخشند، کیفیت تجسم را افزایش میدهند و توسعه را ساده میکنند. افزونههای جدید عبارتند از:
- (سمافور Timeline)، که همگامسازی با صفهای میزبان و دستگاه را یکپارچه میکند (و امکان همگامسازی همهجانبه بین دستگاه و میزبان را با یک عنصر اولیه واحد فراهم میکند و نیاز به عناصر اولیه جداگانه VkFence و VkSemaphore را از بین میبرد). سمافورهای جدید با یک مقدار ۶۴ بیتی که به صورت یکنواخت افزایش مییابد، نمایش داده میشوند که میتواند در چندین نخ نظارت و بهروزرسانی شود.

- امکان استفاده از انواع عددی با دقت پایین در سایهزنها؛
- طرح حافظه سازگار با HLSL؛
- منابع بدون محدودیت، که با استفاده از فضای مجازی مشترک حافظه سیستم و حافظه GPU، محدودیت تعداد منابع موجود برای سایهزنها را از بین میبرد.
- که تعریف میکند چگونه نخهای در حال اجرای همزمان میتوانند به دادههای مشترک و عملیات همگامسازی دسترسی داشته باشند؛
- برای استفاده مجدد از توصیفگرهای طرحبندی در چندین سایهزن؛
- لینکهای بافر.
لیست کامل افزونههای اضافه شده:
- (سمافور Timeline)، که همگامسازی با صفهای میزبان و دستگاه را یکپارچه میکند (و امکان همگامسازی همهجانبه بین دستگاه و میزبان را با یک عنصر اولیه واحد فراهم میکند و نیاز به عناصر اولیه جداگانه VkFence و VkSemaphore را از بین میبرد). سمافورهای جدید با یک مقدار ۶۴ بیتی که به صورت یکنواخت افزایش مییابد، نمایش داده میشوند که میتواند در چندین نخ نظارت و بهروزرسانی شود.
- بیش از ۵۰ سازه و ۱۳ عملکرد جدید؛
- ما نسخههای کوتاهشدهای از مشخصات را برای پلتفرمهای هدف معمول آماده کردهایم که کار روی پلتفرمهایی که هنوز از همه افزونهها پشتیبانی نمیکنند را ساده کرده و نیاز به فعالسازی گزینشی قابلیتهای پایه API ولکان را از بین میبرد.
- کار روی این پروژه ادامه یافت تا قابلیت حمل آن با سایر APIهای گرافیکی تضمین شود. برای مثال، Vulkan افزونههایی را پیشنهاد کرده است که امکان ترجمه OpenGL را فراهم میکنند ()، اوپنسیال (, )، OpenGL ES (GLOVE، Angle) و DirectX (, ) از طریق رابط برنامهنویسی کاربردی Vulkan، و همچنین، برعکس، برای اطمینان از عملکرد Vulkan در پلتفرمهایی بدون پشتیبانی بومی آن ( и برای کار بر روی OpenGL و DirectX، و gfx-rs برای کار روی فلز).
افزونههایی برای بهبود سازگاری با DirectX و HLSL اضافه شدهاند.
VK_KHR_host_query_reset، VK_KHR_uniform_buffer_standard_layout، VK_EXT_scalar_block_layyou، VK_KHR_separate_stencil_usage، VK_KHR_separate_depth_stencil_layouts و SPIR-V ویژگیهای خاص HLSL را پیادهسازی میکنند.
برنامههای آینده شامل توسعه افزونههایی برای یادگیری ماشین، ردیابی پرتو، رمزگذاری و رمزگشایی ویدیو، پشتیبانی از VRS (سایهزنی با نرخ متغیر) و سایهزنهای مش است.
یادآوری میکنیم که رابط برنامهنویسی کاربردی Vulkan با سادهسازی اساسی درایورها، انتقال تولید دستورات GPU به سمت برنامه، فعال کردن لایههای اشکالزدایی، یکپارچهسازی API در پلتفرمهای مختلف و استفاده از نمایشهای میانی از پیش کامپایل شده کد برای اجرای GPU. برای اطمینان از عملکرد بالا و قابلیت پیشبینی، Vulkan ابزارهایی را برای کنترل مستقیم عملیات GPU و پشتیبانی داخلی از پردازش دستورات GPU چند رشتهای در اختیار برنامهها قرار میدهد که سربار درایور را به حداقل میرساند، در حالی که قابلیتهای سمت راننده را به طور قابل توجهی ساده و پیشبینی میکند. به عنوان مثال، عملیاتی مانند مدیریت حافظه و مدیریت خطا، که در OpenGL در سمت راننده پیادهسازی شدهاند، در Vulkan به لایه برنامه منتقل میشوند.
Vulkan охватывает все доступные платформы и предоставляет единый API для настольных, мобильных систем и Web, позволяя использовать один общий API для различных графических процессоров и областей применения. Благодаря многослойной архитектуре Vulkan, подразумевающей создание инструментов, работающих с любыми GPU, производители оборудования могут использовать при разработке типовые инструменты для проверки кода, отладки и профилирования. Для создания шейдеров предлагается новое переносимое промежуточное представление SPIR-V, основанное на LLVM и использующее общие с OpenCL базовые технологии. Для управления устройствами и экранами в Vulkan предлагается интерфейс WSI (Window System Integration), решающий примерно те же задачи, что и EGL в OpenGL ES. Поддержка WSI из коробки доступна в Wayland — все приложения, использующие Vulkan, могут запускаться в окружении немодифицированных серверов Wayland. Возможность работы через WSI также обеспечена для Android، X11 (با DRI3)، Windows، تایزن، macOS و آیاواس.
منبع: opennet.ru


