Vulkan düşük maliyetli ve Çapraz platform3D grafik ve işlem API-sidir. İlk kez Khronos Group tarafından GDC 2015'te açıklandı. Vulkan API başlangıçta, Khronos tarafından yeni nesil "OpenGL girişimi" veya "OpenGL-in sonrakısı" olarak sevk edildi. Vulkan, AMD'nin Mantle API bileşenleri üzerine türetilmiş ve inşa edilmiştir.[2][3] Khronos'a, bir vakıf niyetiyle AMD tarafından bağışlanmıştır. OpenGL gibi, Vulkan da yüksek performanslı video oyunu ve interaktif medya gibi, gerçek zamanlı 3D grafik uygulamalara hedeflenir ve Direct3D 12 ve Mantle gibi, daha yüksek performans ve daha düşük CPU kullanımı sunuyor. Vulkanın ayrıca 2D grafik uygulamaları işlemek için yeteneği vardır, ancak genellikle 3D için uygundur. Alt CPU kullanımı yanı sıra, Vulkan da daha Çok çekirdekli işlemciler arasında eser yapabiliyor.[4]
Tarihi
Khronos Group, Temmuz 2014'te Valve Corporation ile bir sonraki nesil grafik API oluşturmak için bir proje başladı.[5]SIGGRAPH 2014'te proje katılımcılar için bir çağrı ile açıklandı.[6] ABD Patent ve Marka Ofisine göre, Vulkan için marka, 19 Şubat 2015'te açılmıştı. Vulkan 2015 Game Developers Conference'nda resmen adlandırıldı ve açıklandı. 2015 yılının başlarında, LunarG (Valve tarafından finanse edildi) geliştirildi ve HD 4000 serisi entegre grafik üzerinde Vulkan uyumluluk sağlayan Intel için Linux sürücüsü gösterildi. 10 Ağustos 2015 tarihinde, Google Androidin gelecekteki sürümlerinde Vulkana destek vereceğini açıkladı.[7] 22 Ağustos 2016 tarihinde Vulkan ilk kez Android Nougatda destek aldı. 18 Aralık 2015 tarihinde, Khronos Group Vulkan şartnamesinin 1.0 sürümünün neredeyse tamam olduğunu ve uyumlu sürücüler mevcut olduğunda serbest olacağını duyurdu. Açık kaynaklı Vulkan SDK, 16 Şubat 2016 yılında serbest bırakıldı.
.
Özellikleri
Vulkan diğer API'ler yanı sıra, selefi OpenGL üzerinde çeşitli avantajlar sağlamak için tasarlanmıştır. Vulkan alt yük, GPU üzerinde daha fazla denetim ve daha düşük CPU kullanımı sunuyor. Amaçlanan avantajları şunlardır:
Vulkan API mobil cihazlarda iyi high-end grafik kartları için uygundur, hem de grafik çözümü için de mevcuttur. (OpenGL-in OpenGL ES denilen mobil cihazlar için özel bir alt kümesi vardır).[8]
DirectX 12-in aksine, Vulkan birden fazla modern işletim sistemlerinde kullanılabilir; OpenGL gibi, Vulkan API tek bir işletim sistemi veya cihaz form faktörüne kilitli değil.[9]
Sürücü havai CPU iş yüklerini azaltarak azaltıldı.
Harmanlama kullanımı yoluyla ek hesaplama yapmak için ücretsiz CPU bırakarak ya da herhangi bir şekilde render yapma ile CPU üzerindeki yükü azaltıldı.[10]
Daha çok çekirdekli işlemciler üzerinde ölçekleme. Direct3D 11 ve OpenGL 4 başlangıçta tek çekirdekli işlemciler ile kullanılmak üzere tasarlanmış ve sadece çok çekirdeklerde çalıştırılması gereken şekilde büyüme aldı..
OpenGL GLSL için kendi derleyici uygulamak için her OpenGL sürücüsünü zorlayan shader için yüksek seviyeli GLSL dil kullanır. Bir Vulkan sürücü sadece GPU özel optimizasyonu ve kod üretimi yapması gerekir. Kolay sürücü onarımında ve teoride daha küçük sürücü paketleri ile sonuçlanır.
SIGGRAPH 2016-da, Khronos, DirectX 12 tarafından sunulmasına benzer, Vulkanın otomatik çoklu-GPU özellikleri için destek alacağını duyurdu. Dahil olan çoklu-GPU desteği SLI ya da Crossfire ihtiyacını ortadan kaldırır ve aynı model olmasını grafik kartları gerektirir. API çoklu-GPU bu kısıtlamayı ortadan kaldırır ve API-ye akıllıca iki veya daha fazla tamamen farklı GPU'lar arasında iş yükü bölümü sağlar.[11] Örneğin, CPU-da dahil olan entegre GPU'lar hafif bir performans artışı için bir high-end özel GPU ile birlikte kullanılabilir. GPU PerfStudio 3.6 (CodeXL) Windows ve Linux üzerinde Vulkan destekler. EGL-in OpenGL ES için yaptığı gibi, Vulkan Pencere Sistemi Arabirimi (WSI) Vulkan için yapır. EGL yerel platform pencere sistemi ile arabirim oluşturmak için OpenGL ES programları tarafından kullanılır.[12][13][14]
Uyumluluk
İlk özellikler Vulkanın şu anda OpenGL ES 3.1 veya OpenGL 4.x ve yukarını destekleyen donanım üzerinde çalışacağı oldu.[15] Vulkan desteği yeni grafik sürücüleri gerektirdiğinden, bu mutlak anlamına gelmez. OpenGL ES 3.1 veya OpenGL 4.x destekleyen mevcut her aygıt Vulkan sürücülerine sahip olacaktır. Android 7.0 Nougat tamamen Vulkanı destekler. iOS ve MacOS için Vulkan desteği, Apple tarafından henüz ilan edilmedi, ama en azından şirket iOS ve macOS cihazları üzerinde Metal API üstünde çalışan bir Vulkan uygulamasını sağlar.