Vulkan API
Vulkan düşük maliyetli ve Çapraz platform 3D 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.[1][2] 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.[3]
Geliştirici(ler) | Khronos Group |
---|---|
İlk yayınlanma | 16 Şubat 2016 |
Güncel sürüm | 1.0.32 / 25 Ekim 2016) |
Geliştirme durumu | Aktif |
İşletim sistemi | Android, Linux, Tizen, Microsoft Windows |
Platform | uyumlu donanım |
Tür | 3D grafik ve işlem API |
Resmî sitesi | Resmi Sitesi |
Kod deposu |
Tarihi
Khronos Group, Temmuz 2014'te Valve Corporation ile bir sonraki nesil grafik API oluşturmak için bir proje başladı.[4] SIGGRAPH 2014'te proje katılımcılar için bir çağrı ile açıklandı.[5] 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ı.[6] 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).[7]
- 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.[8]
- Vulkan Windows 7, Windows 8, Windows 8.1, Windows 10, Tizen, Linux ve Androidde çalışabilir.
- 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ı.[9]
- 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.[10] Ö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.[11][12][13]
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.[14] 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.
Şirket | Donanım | |||
---|---|---|---|---|
Mikromimari | Mevcut | GPUs (Die) | Graphic cards / SoCs | |
AMD | ||||
GCN 4 | Haziran 2016 | Polaris 10, Polaris 11, Vega 10 | Radeon Rx 400 Serisi | |
GCN 3 | Ağustos 2014 | Tonga, Fiji, Carrizo | Radeon R9 Serisi | |
GCN 2 | Mart 2013 | Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L | Radeon HD 7790, PlayStation 4, Xbox One | |
GCN 1 | Şubat 2012 | Oland, Cape Verde, Pitcairn, Tahiti | Radeon HD 77xx-7900 Series | |
TeraScale 3 "Northern Islands" |
Aralık 2010 | Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman | Radeon HD 7xxx-76xx Series, Radeon HD 6000 Serisi | |
TeraScale 2 "Evergreens" |
Eylül 2009 | Cedar, Cypress, Juniper, Redwood, Palm, Sumo | Radeon HD 5000 Serisi | |
TeraScale 1 | Mayıs 2007 | R600, RV630, RV610, RV790, RV770, … | Radeon HD 2000 Serisi, HD 3000, HD 4000 | |
Nvidia | ||||
Pascal | Mayıs 2016 | GP100, GP104, GP106, GP107 | GeForce 10 serisi, Tegra X2 | |
Maxwell 2.0 | Eylül 2014 | GM200, GM204, GM206, GM20B | GeForce 900 series, Tegra X1 | |
Maxwell 1.0 | Şubat 2014 | GM107, GM108 | GeForce GTX 750 Ti, GTX 750, GTX 860M | |
Kepler | Mart 2012 | GK110, GK104, GK106, GK107, GK208 | GeForce 600 serisi, GeForce 700 serisi, Tegra K1 | |
Fermi | Mart 2010 | GF100, GF104, GF106, GF108, GF110, GF114, GF116, GF119 | GeForce 400 serisi, GeForce 500 serisi | |
Tesla 2.0 | Haziran 2008 | GT200, GT215, GT216, GT218, | GeForce 200 serisi, GeForce 300 serisi | |
Tesla 1.0 | Kasım 2006 | G80, G84, G86, G92, G94, G96, G98 | GeForce 8 serisi, GeForce 9 serisi, GeForce 100 serisi | |
Intel | ||||
Kaby Lake | 2016 | |||
Skylake | Ağustos 2015 | Core i3-/i5-/i7-6000, Pentium G4xxx, Celeron G39xx | ||
Broadwell | Eylül 2014 | Core M-5Yxx, Core i3-/i5-/i7-5000 | ||
Haswell | Eylül 2012 | Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx | ||
Ivy Bridge | Nisan 2012 | Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx | ||
Sandy Bridge | Ocak 2011 | Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx | ||
Westmere | Ocak 2010 | Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101 | ||
Imagination Technologies | ||||
PowerVR 8XE Serisi | Şubat 2016 | GE8200, GE8300 | ||
PowerVR 7XT Serisi | Kasım 2014 | GT7200, GT7400, GT7600, GT7800, GT7900 | Apple A9, Helio X30 (MT679?) | |
PowerVR 7XE Serisi | Kasım 2014 | GE7400, GE7800 | ||
PowerVR 6XT Serisi | Ocak 2014 | GX6240, GX6250, GX6450, GX6650 | Apple A8, A8X, MediaTek MT8173, MT8176, | |
PowerVR 6XE Serisi | Ocak 2014 | G6050, G6060, G6100 (XE), G6110 | RK3368 | |
PowerVR 6 Serisi (Rogue) | Ocak 2012 | G6100, G6200, G6230, G6400, G6430, G6630 | MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Apple A7, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580 | |
PowerVR 5XT Serisi | Ocak 2009 | SGX543, SGX544, SGX554 | Apple S1, A5, A5X, A6, A6X, NovaThor L8540, L8580, L9540, TI OMAP 4470, 5430, 5432, MediaTek MT5327, MT6589M, MT6589T, MT6589, MT8117, MT8121, MT8125, MT8389, Atom Z2460, Z2520, Z2560, Z2580, Z2760, Exynos 5410 | |
Qualcomm | ||||
Adreno 500 serisi | Adreno 510, Adreno 530 | Snapdragon 430, 625, 650, 652, 820 | ||
Adreno 400 serisi | Snapdragon 415, 615, 616, 617, 805, 808, 810 | |||
Adreno 300 serisi | Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 | |||
ARM mimarisi | ||||
Bifrost[15] | Haziran 2016 | Mali-G71, … | Duyurulacak | |
Midgard 4th | Q4 2015 | Mali-T860, Mali-T830, Mali-T880 | Exynos 8890, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757) | |
Midgard 3rd | Ekim 2013 | Mali-T760, … | Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288 | |
Midgard 2nd | Ağustos 2012 | Mali-T600 series, T720 | Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 |
Kaynakça
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 14 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya" (PDF). 11 Ağustos 2016 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 7 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- http://www.tomshardware.com/news/khronos-group-vulkan-graphics-api,28678.html
- "Arşivlenmiş kopya". 26 Kasım 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "Arşivlenmiş kopya". 29 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
- "ARM Bifrost GPU Architecture". 30 Mayıs 2016. 21 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Ekim 2016.
Dış bağlantılar
- Resmi Sitesi 25 Ekim 2016 tarihinde Wayback Machine sitesinde arşivlendi.
- Vulkan 1.0 27 Temmuz 2016 tarihinde Wayback Machine sitesinde arşivlendi.
Ayrıca bakınız
- OpenGL - Khronos Group tarafından başka grafik API
- OpenCL - Khronos Group tarafından başka grafik API
- Mantle API - AMD-den düşük seviyeli grafik ve işlem API, Vulkan temeli
- Direct3D - Windows ve yalnızca Xbox grafik API. Sürüm 12 Vulkana benzer bir düşük düzeyli API-dir.
- AMDGPU - Linux için AMD'nin tamamen açık kaynak kodlu birleşik grafik sürücüsü