OpenGL mi Vulkan mı? Farkları neler?

Vulkan nedir?

Vulkan mı OpenGL mi sorusunu cevaplamadan önce, Vulkan API’ını biraz tanıyalım. Vulkan, geleneksel ekran kartları kullanılarak, donanım ivmelenmesi (hardware acceleration) ile grafik ve/veya hesaba dayalı programlama için kullanılan yeni bir API’dir.

Vulkan’dan ilk başlarda ‘glNext’ olarak bahsediliyordu ve ‘OpenGL 5’ olacağı düşünülüyordu. Fakat daha sonra, köklü değişimlerin gözlemlendiği bu API’ye yeni bir isimin daha da uygun olacağı düşünüldü.

Vulkan ismi nereden gelmektedir?

Vulkan ismi bir nevi bir kelime oyununun eseridir. Star Trek dizisine aşina olanlarınız Qo’nos gezegenini hatırlayacaktır. Buradaki Qo’nos OpenGL ve Vulkan’ın da dahil olduğu onlarca grafik ve paralel hesaba dayalı API’nin yaratıcısı olan Khronos Group Inc.‘i andırmaktadır. Vulkan ismi ise, aynı dizideki bir diğer gezegen olan Vulcanian adı verilen halka ev sahipliği yapan Vulcan gezegenine bir atıftır.

Khronos Group Inc. Wikipedi.org sayfası

Oyun geliştiricileri için Vulkan’ın ne gibi avantajları var?

Vulkan’ın, oyun geliştiricilerine sağladığı en temel avantajlar aşağıdaki gibidir:

  • Vulkan, birden çok iş arasında eşzamansız komut arabelleklerinin üretilmesi ve bu arabelleklerin bir komut satırına sıralı olarak işlenmesine olanak sağlar.
  • Bu mekanizma aslında günümüzdeki OpenGL ile yazılmış, dünyada rüştünü ıspatlamış, yüksek profilli grafikler içeren yazılımlarda zaten uygulanmış haldedir. Fakat Vulkan sayesinde, geliştiriciler bu gibi birçok optimizasyon yükünden kurtarılmış oluyor.
  • Vulkan ile birlikte thread ve kaynak (memory) kullanımı yönetimi sürücülere (driver) değil, uygulamanın kendisine verilmeye başlamış oldu. Bu da oyun geliştiricilerine, hangi durumda oyunun ne miktarda kaynak kullanımına ihtiyaç duyacağını belirleyip yönetmekte büyük kolaylık sağlamaktadır.
  • Vulkan’ın mobil ve masaüstü sürümleri arasında platformlar-arası oyunların geçişinde hiç zorluk çıkmayacak, birden fazla platform için tasarlanmış oyunlardaki en büyük dertlerden olan versiyon kontrolü gibi gereksiz baş ağrılarına sebep olmayacaktır.

Vulkan’a geçişte yabancılık çeker misiniz?

Vulkan, API fonksiyonlarının çağırılışı, görüntüsü, verdiği his ve bir bütün olarak OpenGL’i andırıyor fakat OpenGL’den farklı olarak birçok yeni, kullanışlı typedef API call vs. sunuyor.

Vulkan, OpenGL’e kıyasla çok daha düşük seviye bir arayüzdür. OpenGL’den Vulkan’a geçerken yaşanacak sıçrama, D3D9’dan D3D10’a yapılan geçişe benzetilebilir. Burada özellikle ekran kartında üstü kapalı yapılan birçok işlem artık API istemcisinde görülebilir hale getirilmişti.

Dota 2 ve diğer oyunlar için hangisi daha iyi?

Dota 2 oyuncularının sıkça sorduğu sorulardan birisi de bu. Windows kullanıcıları DirectX 11, OpenGL, Vulkan arasında kalırken; Linux kullanıcıları da OpenGL ve Vulkan arasında bir seçim yapmakta zorlanıyor. Peki bu API’lardan hangisi sisteminiz için daha uygun? Eğer eski nesil (örneğin: 600/700 serisi) NVIDIA grafik kartı kullanıcısıysanız Vulkan ile OpenGL’in vereceği performansı elde edemeyebilirsiniz. Yeni nesil grafik kartları için ise aşağıdaki grafikleri inceleyebilirsiniz.

OpenGLVulkanOpenBenchmarking.orgFrames Per Second, More Is BetterDota 2Resolution: 2880 x 1800macOS 10.13Windows 10Ubuntu 18.04714212835SE +/- 0.07SE +/- 0.03SE +/- 0.15SE +/- 0.00SE +/- 0.072127.3328.2725.6727.4028.03Phoronix Test Suite 8.0.0m5

OpenCL ile CUDA arasındaki farklar nedir? Hangisi tercih edilmeli, bu linkten veya aşağıdaki görsele tıklayarak öğrenin.