کنسرسیوم Khronos که استانداردهای گرافیکی را توسعه می دهد، منتشر شده مشخصات Vulkan 1.2که یک API برای دسترسی به گرافیک و قابلیت های محاسباتی GPU تعریف می کند. مشخصات جدید شامل اصلاحات انباشته شده طی دو سال و انبساط. درایورهایی که از نسخه جدید Vulkan پشتیبانی می کنند، در حال حاضر هستند منتشر شد شرکت اینتل، AMD, ARM, Imagination Technologies و NVIDIA. Mesa پشتیبانی Vulkan 1.2 را برای درایورها ارائه می دهد RADV (کارت های AMD) و ANV (اینتل). پشتیبانی از Vulkan 1.2 نیز در دیباگر اجرا شده است RenderDoc 1.6, LunarG Vulkan SDK و مجموعه ای از مثال ها Vulkan-Samples.
برای شما آورده است پیاده سازی یک زبان برنامه نویسی شیدر تا زمانی که برای استفاده گسترده آماده شود HLSL، توسط مایکروسافت برای DirectX توسعه یافته است. پشتیبانی از HLSL در Vulkan امکان استفاده از همان سایه زن های HLSL را در برنامه های مبتنی بر Vulkan و DirectX فراهم می کند و همچنین ترجمه از HLSL به SPIR-V را ساده می کند. برای کامپایل شیدرها استفاده از کامپایلر استاندارد پیشنهاد می شود DXCکه در سال 2017 توسط مایکروسافت افتتاح شد و مبتنی بر فناوری LLVM است. پشتیبانی Vulkan از طریق یک باطن جداگانه اجرا می شود، که به شما امکان می دهد HLSL را به یک نمایش متوسط از سایه زن های SPIR-V ترجمه کنید. پیاده سازی نه تنها تمام قابلیت های داخلی را پوشش می دهد
HLSL شامل انواع ریاضی، جریانهای کنترل، توابع، مجموعهها، انواع منابع، فضاهای نام، مدل Shader 6.2، ساختارها و روشها میشود، اما امکان استفاده از پسوندهای خاص Vulkan مانند VKRay از NVIDIA را نیز فراهم میکند. در حالت HLSL در بالای Vulkan، امکان سازماندهی کار بازی هایی مانند Destiny 2، Red Dead Redemption II، Assassin's Creed Odyssey و Tomb Raider وجود داشت.
مشخصات به روز شد SPIR-V 1.5، که یک نمایش متوسط از سایه زن ها را تعریف می کند که برای همه پلتفرم ها جهانی است و می تواند هم برای گرافیک و هم برای محاسبات موازی استفاده شود.
SPIR-V شامل جداسازی یک مرحله کامپایل سایهزن جداگانه به یک نمایش متوسط است که به شما امکان میدهد برای زبانهای سطح بالا مختلف ایجاد کنید. بر اساس پیاده سازی های مختلف در سطح بالا، یک کد میانی به طور جداگانه تولید می شود که می تواند توسط درایورهای OpenGL، Vulkan و OpenCL بدون استفاده از کامپایلر سایه زن داخلی استفاده شود.
هسته Vulkan API شامل 23 افزونه است که عملکرد را افزایش می دهد، کیفیت رندر را بهبود می بخشد و توسعه را ساده می کند. از جمله پسوندهای اضافه شده:
سمافورهای زمانی (سمافور خط زمانی)، هماهنگ سازی با صف های میزبان و دستگاه (به شما امکان می دهد از یک اولیه برای همگام سازی همه جانبه بین دستگاه و میزبان استفاده کنید، بدون استفاده از VkFence و VkSemaphore اولیه). سمافورهای جدید با یک مقدار 64 بیتی به طور یکنواخت در حال افزایش نشان داده می شوند که می تواند در چندین رشته ردیابی و به روز شود.
امکان استفاده از انواع عددی با دقت کمتر در شیدرها.
گزینه چیدمان حافظه سازگار با HLSL.
منابع نامحدود (بدون اتصال)، که با استفاده از فضای مجازی مشترک حافظه سیستم و حافظه GPU، محدودیت تعداد منابع موجود برای سایه بان ها را از بین می برد.
مدل حافظه رسمی، که تعریف می کند که چگونه رشته های همزمان می توانند به داده های مشترک و عملیات همگام سازی دسترسی داشته باشند.
نمایه سازی توصیفگر برای استفاده مجدد از توصیفگرهای چیدمان در چندین سایه زن.
نسخههای کوتاهشده مشخصات برای پلتفرمهای هدف معمولی آماده شدهاند، کار بر روی پلتفرمهایی را که هنوز همه برنامههای افزودنی برای آنها پشتیبانی نمیشوند، ساده میکند و به فرد اجازه میدهد بدون فعالسازی انتخابی قابلیتهای اساسی Vulkan API انجام دهد.
کار بر روی پروژه برای اطمینان از قابلیت حمل با دیگر APIهای گرافیکی ادامه دارد. به عنوان مثال، Vulkan پسوندهایی را ارائه می دهد که ترجمه OpenGL را امکان پذیر می کند (روی), OpenCL (clspv, clvk)، OpenGL ES (GLOVE، Angle) و DirectX (DXVK, vkd3d(gfx-rs и خاکستر برای کار بر روی OpenGL و DirectX، MoltenVK و gfx-rs برای کار بر روی فلز).
افزودن پسوندها برای بهبود سازگاری با DirectX و HLSL
VK_KHR_host_query_reset، VK_KHR_uniform_buffer_standard_layout، VK_EXT_scalar_block_layout، VK_KHR_separate_stencil_usage، VK_KHR_separate_depth_stencil_layouts، و SPIR-V capabilities خاص HL را پیاده سازی می کند.
برنامههای آینده شامل توسعه برنامههای افزودنی برای یادگیری ماشین، ردیابی پرتو، رمزگذاری و رمزگشایی ویدیو، پشتیبانی از VRS (سایهزنی با نرخ متغیر) و سایهزنهای مش است.
به یاد بیاورید که Vulkan API قابل توجه ساده سازی اساسی درایورها، انتقال تولید دستورات GPU به سمت برنامه، توانایی اتصال لایه های اشکال زدایی، یکپارچه سازی API برای پلتفرم های مختلف و استفاده از یک نمایش میانی از پیش کامپایل شده کد برای اجرا در سمت GPU. برای اطمینان از کارایی و قابلیت پیشبینی بالا، Vulkan برنامههایی را با کنترل مستقیم بر عملیات GPU و پشتیبانی بومی از GPU Multi-threading ارائه میکند که سربار راننده را به حداقل میرساند و قابلیتهای سمت راننده را بسیار سادهتر و قابل پیشبینیتر میکند. به عنوان مثال، عملیاتی مانند مدیریت حافظه و مدیریت خطا، که در OpenGL در سمت راننده پیادهسازی شدهاند، به سطح برنامه در Vulkan منتقل میشوند.
Vulkan همه پلتفرمهای موجود را پوشش میدهد و یک API واحد برای دسکتاپ، موبایل و وب ارائه میکند، که اجازه میدهد از یک API مشترک در چندین GPU و برنامه استفاده شود. به لطف معماری چند لایه Vulkan، که به معنای ابزارهایی است که با هر GPU کار می کنند، OEM ها می توانند از ابزارهای استاندارد صنعتی برای بررسی کد، اشکال زدایی و پروفایل در طول توسعه استفاده کنند. برای ایجاد سایه زن، یک نمایش میانی قابل حمل جدید، SPIR-V، پیشنهاد شده است که بر اساس LLVM و به اشتراک گذاری فناوری های هسته با OpenCL است. برای کنترل دستگاه ها و صفحه نمایش ها، Vulkan رابط WSI (یکپارچه سازی سیستم پنجره) را ارائه می دهد که تقریباً همان مشکلات EGL را در OpenGL ES حل می کند. پشتیبانی WSI در Wayland در دسترس است - همه برنامههایی که از Vulkan استفاده میکنند میتوانند در محیطی از سرورهای Wayland اصلاح نشده اجرا شوند. قابلیت کار از طریق WSI برای اندروید، X11 (با DRI3)، ویندوز، تایزن، macOS و iOS نیز ارائه شده است.