Vulkan nedir ve OpenGL'den farkı nedir?


150

Khronos Group (OpenGL'in arkasındaki standartlar organı) Vulkan’ı yeni duyurdu :

Vulkan, modern GPU'larda grafiklere ve hesaplamalara yüksek verimli erişim için yeni nesil, açık standart API'dir. Önceden Yeni Nesil OpenGL Girişimi olarak adlandırılan bu temel tasarım, uygulamalara maksimum performans ve öngörülebilirlik için GPU hızlandırma üzerinde doğrudan kontrol sağlar.

Sayfaları oldukça pazarcı / jargon- basın açıklaması gibi ağır, … Basit anlamda Vulkan oyun geliştiricileri için ne ifade ediyor? (Gabe Newell, daha fazla açıklama yapmadan lehine güçlü bir şekilde ifade edilir.)

Vulkan'ın OpenGL ile olan ilişkisi tam olarak nedir? Önceki adı "glNext" ("Yeni Nesil OpenGL Girişimi" için kısa) yerine bir yedek gibi geliyor.


Güncelleme: Vulkan 1.0 spec 16-02-2016 tarihinde yayımlandı.


3
Qo'noS ve Vulcan ...
IllidanS4

14
Yakalamak olmayan insanlar için Çeviri Uzay Yolu sürüklenme: Khronos ve Vulkan gibi ses Qo'noS ve Vulcan ; Klingon ve Vulcan yarışlarının anavatan gezegenleri. Spock'ın oyuncusu (çok popüler bir karakter) olan Leonard Nimoy , yakın zamanda 2015-02-27'de öldü, bu yüzden spekülasyon, adın bir hediye olduğunu kabul ediyor. Ancak, rastlantı: Vulkan ticari marka istek 2015-02-19 tarihinde açılmıştı; Nimoy'un ölümünden önce.
Anko

7
Ayrıca Manto -> Lav -> Volkan -> Vulkan.
jmegaffin

1
@Boreal Vulkan == Volcano birçok dilde (Almanca, Rusça (cyr. İçin ayarlanmış), vb.) Yani bu Mantle -> Lava -> Vulkan (Volcano) gerçekten :)
user362515

Yanıtlar:


118

Vulkan, geleneksel GPU'lar aracılığıyla donanım hızlandırmalı grafikler (ve genel hesaplama) için yeni bir API'dir. OpenGL, Vulkan’ın öngördüğünden daha yüksek bir API olduğu için geliştirilmeye devam edecek. Başlangıçta "glNext" olarak adlandırılan, Vulkan'ın muhtemelen "OpenGL 5" olacağı sonucuna varabilir, ancak standartlar organı sonunda yeni bir ismin mevcut API’nin varolduğunu yapmak için gösterdiği nispeten temiz bir kırılma ile daha iyi uyuşacağına karar vermiştir. OpenGL paradigmaları.

Vulkan'ın oyun geliştiricilerine uyguladığı pratik avantajlar, öncelikle kontrol ile ilgilidir (olduğu gibi, geliştiricinin bölümünde daha fazla ön çalışma maliyeti karşılığında daha iyi optimizasyonlara izin verme potansiyeli vardır). özellikle:

  • API, birden çok iş parçacığında asenkronize komut arabelleği oluşturma ve bu arabelleğin bir komut boru hattına sıralı işlenmesi etrafında yönlendirilir. Bu, modern donanımın gerçeklerini yansıtır. Bugün OpenGL üzerine kurulu en yüksek profilli ve / veya yüksek performanslı yazılımlar bu tür davranışları kendileri yerine getirir; API'nin kendisini desteklemesi, geliştiricilerin bu çerçeveyi kendileri uygulamamaları ve sürdürmeleri gerekmediği veya daha az çabayla bunu yapabilecekleri anlamına gelir.
  • Oyun geliştiricilerin bu davranışlar üzerinde daha fazla kontrol sahibi olmalarını ve böylece bu davranışların kendi oyunlarının ihtiyaçlarına göre daha hassas bir şekilde uyarlanmalarını sağlayan, iş parçacığı ve hafıza yönetimi görevleri sürücüye değil uygulamaya bırakılmıştır.
  • Doğrulama ve tanılama katmanları bağımsız olarak etkinleştirilebilir, teoride API ile daha iyi araçların entegrasyonu için (OpenGL'nin kendisinin uğradığı bir şey) ve aşırı onaylamanın devre dışı bırakılması, teoride " seviye 3'teki grafiklerin " çok daha fazla performans göstermesine izin verilebilir.
  • Mobil ve masaüstü sürümleri arasında zor bir API farkı yoktur; teorik olarak platformlar arası oyunların taşınmasını kolaylaştıracak ve başka hiçbir şey herkesin nefret ettiği sürüm denetleme baş ağrısını azaltamazsa.

Yüzeysel yapıda Vulkan'ın çok C-benzeri / OpenGL-benzeri (API çağrıları ve hisleri, et cetera. intEtkisi daha iyi yazılmıştır) (her şey çıplak değildir ; ilgili tip tanımları vb. Vardır).

OpenGL'den çok daha düşük seviyede. Biri GPU cihazının operasyonunun altında kalan ayrıntılarının API istemcisine daha fazla maruz kaldığı D3D9 - D3D10 geçişinde görüldüğü gibi OpenGL ve Vulkan arasındaki operasyonel kurulum ve karmaşıklıkta bir sıçrama bekleyebilir. Geçiş aslında D3D11'den 12'ye daha yakındır, çünkü D3D12'nin kendisi Vulkan'a göre oldukça benzer bir API'dir.


18
Vulkan temelde Manto oldukça yineledi versiyonu olduğunu işaret etmek faydalı olacaktır: community.amd.com/community/amd-blogs/amd-gaming/blog/2015/03/... API kuralları DSA biraz benzer görünüyor OpenGL, her yerde bulunan glönek ile değiştirilmeden önce vk: blog.imgtec.com/powervr/…
jmegaffin

Bunun böyle olacağını varsayıyordum, ancak bu bağlantıya kadar herhangi bir kanıt görmedim, teşekkürler.
Josh

3
Bilginize, Valve'ın Perşembe günkü sunumundan ve (çoğu zaman) daha fazla ayrıntıyı açığa vuran Khronos üyelerindeki moratoryumun kaldırılmasından sonra (bazı) sert gerçek ile spekülasyon ve tahminin yerini alabileceksiniz.
Sean Middleditch

4
Gölgelendirici bayt kodu olayını biraz eğlenceli buluyorum, eskiden gölgelendiriciler için basit bir montaj benzeri dil olduğunu düşünmüştük ve sonra bunun yerine karmaşık bir dil (GLSL) kullandık ve şimdi basit bir bytecode diline geri dönüyoruz.
immibis

2
Mantle gibi Vulkan'ın daha düşük seviyeli erişim için OpenGL'in yanında durduğunu, tamamen değiştirmeyeceğini düşündüm. En azından şu ana kadar okudum. Yoksa Vulkan hem düşük hem de üst düzey işlemleri kapsayacak mı?
Roy T.

18

OpenGL’nin geleceğini ele almak için:

OpenGL, Vulkan'la, saniyede sesli aramalarda, aynı zamanda genel sürücü ek yükü ile karşılaştırılabilir bir performans elde edebilir:


11
Bu aslında tek başına sorunun cevabı değil.
MichaelHouse

1

Khronos geçenlerde OpenGL ve OpenGL ES'yi tamamlayacak (ve bazı durumlarda yerine geçecek) yepyeni Vulkan API'sinin serbest bırakıldığını duyurdu. Vulkan, kodu "metale yaklaştırmak", performans ve verimliliği arttırmak için tasarlanmış düşük maliyetli bir API'dir. AMD'nin Mantle API'sine dayanıyor ve nihai spesifikasyon bu yılın sonunda bekleniyor.

Bu yazıda - Vulkan API'sine Kısa Bir Bakış - Toptal Teknik Editör Nermin Hajdarbegoviç, Vulkan'ın uzun vadede neden bu kadar önemli olabileceğini açıklıyor. Biraz zaman alabilir, ancak bu çapraz platform API belirli aygıtlarda, özellikle de milyarlarca akıllı telefon ve tablette kullanılan çok çekirdekli uygulama işlemcilerinde 3B performansını önemli ölçüde artırabilir.


2
"Khronos geçenlerde yepyeni Vulkan API'sinin serbest bırakıldığını açıkladı" Um, 18 Ağustos itibariyle değil. Bu terimin herhangi bir tanımı ile "serbest bırakılmadı". Şimdi 8 Aralık oldu ve hala serbest bırakılmadı.
Nicol Bolas,

2
@NicolBolas - Şimdi var. Bugün başlatıldı: khronos.org/vulkan
beatgammit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.