Vulkan API

Vikipedi, özgür ansiklopedi
Gezinti kısmına atla Arama kısmına atla
Vulkan API
Vulkan.svg
Geliştirici(ler) Khronos Group
İlk yayınlanma 16 Şubat 2016
Kararlı sürüm 1.0.32 / 25 Ekim 2016 (2 yıl önce) (2016-10-25)
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

Vulkan düşük maliyetli ve Çapraz platform 3D grafik ve işlem API-sidir. İlk kez Khronos Group tarafından GDC 2015-de 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] Bu, Khronosa bir vakıf niyetiyle AMD tarafından bağışlanmışdı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]

Tarihi[değiştir | kaynağı değiştir]

Khronos Group, Temmuz 2014-de Valve Corporation ile bir sonraki nesil grafik API oluşturmak için bir proje başladı.[4] SIGGRAPH 2014-de 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-de 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ı.

OpenGL ve Vulkan API-leri

.

Özellikleri[değiştir | kaynağı değiştir]

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[değiştir | kaynağı değiştir]

İ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 02016-6 Haziran 2016 Polaris 10, Polaris 11, Vega 10 Radeon Rx 400 Serisi
GCN 3 02014-8 Ağustos 2014 Tonga, Fiji, Carrizo Radeon R9 Serisi
GCN 2 02013-3 Mart 2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One
GCN 1 02012-2 Şubat 2012 Oland, Cape Verde, Pitcairn, Tahiti Radeon HD 77xx–7900 Series
TeraScale 3
"Northern Islands"
02010-12 Aralık 2010 Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman Radeon HD 7xxx–76xx Series, Radeon HD 6000 Serisi
TeraScale 2
"Evergreens"
02009-9 Eylül 2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 Serisi
TeraScale 1 02007-5 Mayıs 2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 Serisi, HD 3000, HD 4000
Nvidia
Pascal 02016-5 Mayıs 2016 GP100, GP104, GP106, GP107 GeForce 10 serisi, Tegra X2
Maxwell 2.0 02014-9 Eylül 2014 GM200, GM204, GM206, GM20B GeForce 900 series, Tegra X1
Maxwell 1.0 02014-2 Şubat 2014 GM107, GM108 GeForce GTX 750 Ti, GTX 750, GTX 860M
Kepler 02012-3 Mart 2012 GK110, GK104, GK106, GK107, GK208 GeForce 600 serisi, GeForce 700 serisi, Tegra K1
Fermi 02010-3 Mart 2010 GF100, GF104, GF106, GF108, GF110, GF114, GF116, GF119 GeForce 400 serisi, GeForce 500 serisi
Tesla 2.0 02008-6 Haziran 2008 GT200, GT215, GT216, GT218, GeForce 200 serisi, GeForce 300 serisi
Tesla 1.0 02006-11 Kasım 2006 G80, G84, G86, G92, G94, G96, G98 GeForce 8 serisi, GeForce 9 serisi, GeForce 100 serisi
Intel
Kaby Lake 2016
Skylake 02015-8 Ağustos 2015 Core i3-/i5-/i7-6000, Pentium G4xxx, Celeron G39xx
Broadwell 02014-9 Eylül 2014 Core M-5Yxx, Core i3-/i5-/i7-5000
Haswell 02012-9 Eylül 2012 Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx
Ivy Bridge 02012-4 Nisan 2012 Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx
Sandy Bridge 02011-1 Ocak 2011 Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx
Westmere 02010-1 Ocak 2010 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101
Imagination Technologies
PowerVR 8XE Serisi 02016-2 Şubat 2016 GE8200, GE8300
PowerVR 7XT Serisi 02014-11 Kasım 2014 GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9, Helio X30 (MT679?)
PowerVR 7XE Serisi 02014-11 Kasım 2014 GE7400, GE7800
PowerVR 6XT Serisi 02014-1 Ocak 2014 GX6240, GX6250, GX6450, GX6650 Apple A8, A8X, MediaTek MT8173, MT8176,
PowerVR 6XE Serisi 02014-1 Ocak 2014 G6050, G6060, G6100 (XE), G6110 RK3368
PowerVR 6 Serisi (Rogue) 02012-1 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 02009-1 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] 02016-6 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 02013-10 Ekim 2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288
Midgard 2nd 02012-8 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[değiştir | kaynağı değiştir]

Dış bağlantılar[değiştir | kaynağı değiştir]

Ayrıca bakınız[değiştir | kaynağı değiştir]

  • 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ü